Những câu hỏi phỏng vấn lập trình Flutter

Cho dù bạn đang chuẩn bị cho một cuộc phỏng vấn công việc hay chỉ muốn tìm hiểu thêm về một ngôn ngữ lập trình mới, trong bài viết này sẽ giúp bạn thêm về một số câu hỏi về lập trình Flutter.

Flutter ra đời như thế nào?
Phiên bản alpha đầu tiên của Flutter đã xuất hiện cách đây gần ba năm – vào tháng 5 năm 2017. Không ai hồi đó nghĩ rằng nó lại trở nên phổ biến trong một khoảng thời gian ngắn như vậy. Nó đã nhận được nhiều “sao” đánh giá trên GitHub hơn đối thủ cạnh tranh lớn nhất của nó là React Native và kể từ khi phát hành ổn định vào tháng 12 năm 2018. Nhiều công ty bắt đầu nhận thấy tiềm năng của Flutter và đang tìm kiếm các nhà phát triển sẵn sàng viết ứng dụng.

Ai đã tạo ra Flutter?
Dart được Google tạo ra vào năm 2011. Đây là một ngôn ngữ lập trình mã nguồn mở, có thể mở rộng, với các thư viện và hiệu suất chạy khá tốt, để xây dựng web, máy chủ và ứng dụng di động. Flutter là một Framework sử dụng ngôn ngữ lập trình Dart để xây dựng các ứng dụng di động.

Phiên bản ổn định của Flutter được phát hành khi nào?
Tháng 12 năm 2019.

Toán tử nhận biết null là gì và chúng ta sử dụng nó như thế nào?
Có hai toán tử nhận biết null – toán tử đầu tiên là ?? và toán tử thứ hai là  ??=.
Ví dụ:  int x; x ??= 1, var x = y ?? 2

Sự khác biệt giữa statelessstateful widget là gì?
Các stateless widget chúng chỉ được tạo một lần, do đó trong phương thức build cũng chỉ được gọi một lần.
Ngược lại stateful widget có thể được rebuild lại khi có giá trị thay đổi.

Vòng đời của StatefulWidget là gì?
createState() – một phương thức trong một phương thức StatefulWidget được gọi ngay lập tức và sẽ trả về một State của các đối tượng widget.
initState() – phương thức đầu tiên được gọi trong State widget sau khi widget được tạo.
didChangeDependencies() – được gọi ngay sau initState() lần đầu tiên được gọi.
build() – rất giống với từ StatelessWidget . Nó được gọi ngay sau đó didChangeDependencies() . Nó được gọi mỗi khi giao diện người dùng cần hiển thị và trả về widget tree.
didUpdateWidget() – nó được gọi khi widget đã thay đổi và cần vẽ lại giao diện người dùng của nó
deactivate() – được gọi trước dispose() , khi đối tượng này được xóa ra khỏi cây widget.
dispose() – được gọi khi widget đã bị xóa khỏi state và không thể khởi tạo lại.

Tệp pubspec.yml là gì?
Đó là một tệp mà bạn có thể khai báo sử dụng tất cả các thư viện, plugin, font chữ, hình ảnh… của dự án Flutter của bạn. Đó cũng là nơi bạn định cấu hình tên và mô tả của dự án.

SafeArea widget là gì?
Đây là một widget bao ngoài tất cả widget khác, mục đích là để nó không chiếm vào thanh thông báo của thiết bị, ứng dụng sẽ nằm ở dưới thanh thông báo.

Flutter chỉ dành cho ứng dụng di động?
Không, bạn cũng có thể xây dựng các ứng dụng web – mặc dù nó vẫn đang trong giai đoạn thử nghiệm và chưa được phát hành chính thức.

Những cách nào để tạo navigation?
https://api.flutter.dev/flutter/widgets/Navigator-class.html

Flutter có thực sự là native không?
Ứng dụng Flutter được biên dịch thành một thư viện ARM và x86 native, vì vậy, về mặt kỹ thuật, nó như là native.

Làm cách nào để bạn đặt kích thước widget dựa trên kích thước màn hình?
MediaQuery.of(context).size

Lệnh để cập nhật tất cả các plugin là gì?
flutter pub upgrade

Lập trình bất đồng bộ trong Dart (Flutter) như thế nào? Future trong Flutter là gì?
https://dart.dev/codelabs/async-await

Factory trong Flutter là gì?
https://api.flutter.dev/flutter/foundation/Factory-class.html

Các loại tham số trong hàm flutter.

Dart Optional Named Parameters Function

Có cần biết về lập trình native (Java với Android và Swift với iOS) không?
Điều quan trọng là phải có hiểu biết cơ bản về từng nền tảng (iOS và Android) và biết một số câu hỏi dành riêng cho nền tảng. Ví dụ:
Tập tin AndroidManifest.xml là gì?
Tập tin Info.plist là gì?
Làm cách nào để bạn đặt biểu tượng ứng dụng trong Android và iOS?

Làm thế nào để tạo một TextField với giá trị ban đầu?
Chúng ta cần đặt một controller với giá trị ban đầu:

TextEditingController(text: ‘Giá trị ban đầu’); .

FocusScope.of(context).unfocus();

Làm thế nào để bạn tải một hình ảnh từ mạng?
Để hiển thị hình ảnh từ một URL, chúng ta có thể sử dụng hàm Image.network() .

Làm thế nào để bạn ghi đè nút back trên thiết bị?
Chúng ta có thể sử dụng WillPopScope widget cho việc này.

Mục đích của thuộc tính reverse trên một ListView widget là gì?
Nó hiển thị các item trong listview theo thứ tự đảo ngược.

Kết luận
Mặc dù Flutter đã có mặt trên thị trường từ tháng 5 năm 2017 và nó vẫn còn khá mới, nhưng các nhà tuyển dụng vẫn đang có xu hướng tăng dần việc tuyển dụng lập trình viên Flutter.
Nếu bạn đã có nền tảng và kiến ​​thức về bất kỳ nền tảng di động nào (iOS, Android hoặc cả hai), bạn có thể rất phù hợp để phát triển ứng dụng với Flutter ngay từ bây giờ.