Những câu hỏi phỏng vấn Flutter thường gặp dành cho ứng viên

Đánh giá post

Nếu bạn đang quan tâm đến vị trí Flutter và chuẩn bị ứng tuyển trong doanh nghiệp nào đó thì chắc chắn không thể bỏ qua những câu hỏi phỏng vấn Flutter thường gặp nhất dưới đây. Bạn hãy cùng JobsGO tìm hiểu ngay nhé.

Câu 1: Flutter là gì? Flutter có những thành phần chính nào?

Gợi ý trả lời:

Flutter được biết là SDK mã nguồn mở dành phục vụ việc phát triển ứng dụng di động. Nó được phát hành bởi Google và viết bằng ngôn ngữ C++. Thực tế, Flutter giao tiếp với SDK của nền tảng mobile Android, IOS để tạo nên Flutter Engine hoàn chỉnh hơn.

Flutter có những thành phần chính như sau:

  • Dart
  • Flutter Engine
  • Foundation
  • Widget
Những câu hỏi phỏng vấn Flutter thường gặp

Câu 2: Dart là gì? Lý do gì khiến Google cho phép sử dụng Dart cho Flutter?

Gợi ý trả lời:

Dart là một ngôn ngữ lập trình hướng đối tượng. Nó ra đời nhằm tối ưu hóa client cho các nền tảng như: Desktop, web, server.

Google cho phép sử dụng Dart là vì nó cung cấp các lựa chọn hiện đại, tiên tiến hơn các ngôn ngữ kịch bản ở nền tảng web. Không chỉ vậy, nó còn đem lại hiệu quả, khả năng bảo vệ thông tin cao.

Xem thêm: Top 35+ câu hỏi phỏng vấn Java phổ biến nhất bạn nên tham khảo

Câu 3: Dart có những kiểu hỗ trợ dữ liệu nào?

Gợi ý trả lời:

Dart bao gồm những kiểu dữ liệu sau:

  • Numbers
  • String
  • Booleans
  • Collections
  • Runes
  • Symbols

Câu 4: Theo bạn, ba kiểu khai báo Dynamic, Var và Final có gì khác nhau?

Gợi ý trả lời:

Theo kiến thức mà tôi có được, 3 kiểu khai báo Dynamic, Var và Final khác nhau như sau:

  • Dynamic là khai báo 1 biến và có thể thay đổi được cả kiểu dữ liệu và giá trị sau.
  • Var là khai báo 1 biến với kiểu dữ liệu cố định và giá trị của biến có thể thay đổi được.
  • Final là khai báo bằng hằng số, không thay đổi được giá trị biến và kiểu dữ liệu.

Câu 5: Bạn hãy phân biệt Phân biệt Stateful Widget và Stateless Widget?

Gợi ý trả lời:

Stateless Widget được biết là Widget tĩnh, nó không tự thay đổi được cái mà nó hiển thị sau khi đã render xong. Hiểu theo các khác thì Stateful Widget không chứa biến sate cho quản lý trạng thái UI.

Còn Stateful Widget lại là một Widget động, nó chứa state và chủ động render khi state thay đổi.

Tổng hợp câu hỏi phỏng vấn Flutter dành cho các ứng viên

Câu 6: Bạn biết gì về vòng đời của vòng đời của một Stateful Widget?

Gợi ý trả lời:

Stateful Widget sẽ có 7 trạng thái sau:

  • Create State là khi class được khởi tạo thì hàm này được gọi đầu.
  • InitState sẽ được gọi ngay sau khi Widget khởi đạo.
  • Did Change Dependencies sẽ được gọi sau Initstate và nó cũng sẽ được gọi lại khi dependency của stare thay đổi.
  • Build được gọi sau hàm Did Change Dependencies để thực hiện render UI trên màn hình.
  • DidUpdate Widget sẽ được gọi khi hàm Widget configuration có thay đổi. Sau khi nó được gọi thì Build cũng được gọi để render lại UI.
  • Deactive được gọi khi Widget bị xóa khỏi cây Widget.
  • Dispose được gọi khi widget bị xóa vĩnh viễn.

Câu 7: Bạn hãy phân biệt các thuật ngữ Hot Reload, Hot Restart và Full Restart trong Flutter?

Gợi ý trả lời:

Hot Reload, Hot Restart và Full Restart trong Flutter khác nhau như sau:

  • Đối với Hot Reload nó có khả năng tải lại Source code ứng dụng và Rebuild lại Widget tree ngay cả khi không cần khởi động lại. Đặc biệt khi làm thao tác này cũng không làm chạy lại các hàm Main hay Initstate.
  • Đối với Hot Restart cần phải tải lại toàn bộ thay đổi, khởi động lại ứng dụng Flutter và khởi tạo lại trạng thái.
  • Còn Full Restart cần khởi động lại toàn bộ ứng dụng IOS, Android và web, công đoạn này tốn khá nhiều thời gian.

Xem thêm: 20+ câu hỏi về cấu trúc dữ liệu phỏng vấn và gợi ý trả lời

Câu 8: Theo bạn Stream trong Flutter là gì?

Gợi ý trả lời:

Stream chính là luồng data bất động bộ dữ liệu đầu vào và dữ liệu đầu ra cùng các xử lý thao tác bên trong nó. Để lấy được dữ liệu vào stream thì sử dụng thuộc tính sink, đồng thời publish sẽ giúp đưa giữ liệu ra ngoài.

Có 2 loại stream đó là:

  • Single: Được đăng ký lắng nghe dữ liệu 1 lần khi stream publish dữ liệu ra ngoài.
  • Broadcast: Được đăng ký nhiều chỗ lắng nghe sự kiện thay đổi dữ liệu của Stream. Vì vậy mà bạn cần phải hủy lắng nghe nếu không cần thiết để tránh bị memory leak.

Câu 9: Bạn hãy cho biết cách điều hướng màn hình trong Flutter?

Gợi ý trả lời:

Để điều hướng màn hình trong Flutter sẽ có 3 cách như sau:

  • Điều hướng trực tiếp: Chúng ta sử dụng Material PageRoute nhận tham số khởi tạo class màn hình điều hướng. Giá trị trả về của nó là một Route. Tiếp theo chúng ta sử dụng Navigator.push để điều hướng đến route vừa tạo ra.
  • Điều hướng tĩnh: Ta cần phải khai báo trước một map routes trong material app. Để điều hướng đến màn hình thì t sẽ sử dụng thông qua route name dùng phương thức Navigator.push Named.
  • Điều hướng động: MaterialApp sẽ cung cấp phương thức Generate Route để giúp tạo ra route dựa trên class Route Settings.

Câu 10: Bạn hãy giải thích về Block Pattern?

Các câu hỏi phỏng vấn Flutter

Gợi ý trả lời:

Block là một Pattern được sử dụng để quản lý state được đề xuất bởi Google developer dành cho ứng viên sử dụng Flutter. Block có khá nhiều điểm giống nhau với 2 Patterns là MVP và MVVM. Mục đích của nó chính là tách phần source code business logic ra khỏi UI.

Câu 11: Theo bạn Widget là gì? Có mấy loại widget?

Gợi ý trả lời:

Hiểu đơn giản nhất thì Widget chính là thành phần có liên quan đến giao diện người dùng, cái mà họ nhìn thấy trên màn hình. Hiện nay có 2 loại Widget đó là:

  • Stateless Widget
  • Stateful Widget

Câu 12: Theo bạn State nghĩa là gì? Công dụng của setState?

Gợi ý trả lời:

State là một bộ biến có chứa các giá trị, thuộc tính của một widget. Còn Setstate là một cách để chúng ta đưa ra yêu cầu refresh hoặc là rebuild màn hình ứng dụng với giá trị, thuộc tính mới.

SetState có công dụng là thay đổi widget, vì State object được tạo ra bởi framework.

Câu 13: Các chế độ build của Flutter là gì?

Gợi ý trả lời:

Chế độ build của Flutter có 3 chế độ như sau:

  • Chế độ Debug mode: Được sử dụng trong việc phát triển ứng dụng khi chúng ta đang dùng hot reload.
  • Chế độ Profile mode: Được dùng trong khi phân tích performance.
  • Chế độ Release mode: Được dùng khi app sẵn sàng cho việc sử dụng.

Câu 14: Các kiểu tham số bên trong Dart Function là gì?

Gợi ý trả lời:

Bên trong Dart Function có 2 kiểu tham số là bắt buộc và không bắt buộc. Trong đó, tham số không bắt thuộc thường thì không cần giá trị khi chúng ta gọi hàm và được khai báo ngay sau tham số bắt buộc. Nó cũng sẽ có giá trị mặc định cho tham số không bắt buộc.

Xem thêm: Tổng hợp các câu hỏi phỏng vấn Front End dành cho Intern

Câu 15: Theo bạn Flutter có lợi ích gì?

Gợi ý trả lời:

Flutter có những lợi ích cụ thể như sau:

  • Phát triển trên nhiều nền tảng và thực hiện rất nhanh.
  • Có một cộng đồng sử dụng rộng lớn.
  • Live, Hot Reloading giúp quá trình xây dựng ứng dụng thuận tiện hơn.
  • Quen thuộc với Performance.

Câu 16: Theo bạn, Async và Await là gì?

Gợi ý trả lời:

Async và Await là từ khóa cung cấp cách khai báo một chương trình bất động bộ. Cụ thể:

  • Async được đặt trước thân một hàm để nó trở nên bất đồng bộ.
  • Await chỉ được sử dụng ở bên trong Async, đánh dấu kết thúc quá trình bất đồng bộ.

Câu 17: Bạn hãy phân biệt Async và Async*?

Gợi ý trả lời:

  • Async nằm trong Class Future. Nếu chúng ta thêm từ khóa Async vào thân hàm nó sẽ return kết quả kiểu Future.
  • Async* nằm trong class Stream. Nếu chúng ta thêm từ khóa async* vào hàm thì sẽ có kết quả là rất nhiều future cùng lúc.

Như vậy, nội dung trên đây JobsGO đã giúp bạn tìm hiểu xong những câu hỏi phỏng vấn Flutter kèm gợi ý trả lời. Mong rằng với 17 câu hỏi thường gặp này sẽ giúp bạn có cuộc phỏng vấn tốt nhất.

Tham khảo thêm bí quyết trả lời phỏng vấn tại Blog JobsGO bạn nhé!

Tìm việc làm ngay!

(Theo JobsGO - Nền tảng tìm việc làm, tuyển dụng, tạo CV xin việc)

Chia sẻ bài viết này trên: