Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Flutter cho phép xây dựng ứng dụng di động cho nhiều nền tảng từ một mã nguồn, nên được nhiều công ty và startup lựa chọn. Phỏng vấn Flutter thường xoay quanh Dart, widget, quản lý trạng thái và cách giữ giao diện mượt. Dưới đây là những câu hỏi hay gặp.
Dart có hệ thống null safety giúp phát hiện lỗi truy cập giá trị rỗng ngay lúc biên dịch. Kiểu không nullable như String không được nhận null; kiểu nullable viết là String?. Bạn dùng toán tử ?. để truy cập an toàn, ?? để đặt giá trị mặc định, và ! để khẳng định giá trị không null (nên hạn chế vì có thể gây lỗi lúc chạy).
Future đại diện cho kết quả sẽ có trong tương lai, async và await giúp viết code bất đồng bộ dễ đọc. Stream là chuỗi các sự kiện theo thời gian, hữu ích cho dữ liệu liên tục như vị trí hay tin nhắn.
final chỉ gán một lần nhưng giá trị có thể xác định lúc chạy. const là hằng số biết ngay lúc biên dịch. Dùng const cho widget bất biến giúp Flutter bỏ qua việc dựng lại và tăng hiệu năng.
Trong Flutter, mọi thứ là widget: nút, văn bản, bố cục, thậm chí cả padding. Giao diện là một cây widget lồng nhau.
class Greeting extends StatelessWidget { final String name; const Greeting({super.key, required this.name}); @override Widget build(BuildContext context) { return Text('Xin chào $name'); }}class Counter extends StatefulWidget { const Counter({super.key}); @override State<Counter> createState() => _CounterState();}class _CounterState extends State<Counter> { int count = 0; @override Widget build(BuildContext context) { return TextButton( onPressed: () => setState(() => count++), child: Text('Đã bấm $count lần'), ); }}Widget không có trạng thái thay đổi dùng StatelessWidget. Khi cần dữ liệu thay đổi theo thời gian, dùng StatefulWidget và gọi setState để báo cho Flutter dựng lại.
Các phương thức chính: initState (khởi tạo một lần), didChangeDependencies, build (gọi mỗi khi cần dựng), didUpdateWidget, dispose (giải phóng tài nguyên như controller, subscription). Quên dispose là nguyên nhân phổ biến gây rò rỉ bộ nhớ.
Widget là bản mô tả cấu hình bất biến, nhẹ. Element là thể hiện của widget trong cây, quản lý vòng đời. RenderObject chịu trách nhiệm bố cục và vẽ. Khi widget được dựng lại, Flutter so sánh để chỉ cập nhật phần thật sự thay đổi.
Đây là chủ đề được hỏi nhiều nhất. Bạn nên biết các hướng chính:
Không có câu trả lời duy nhất đúng. Hãy trình bày bạn chọn giải pháp nào trong dự án, vì sao (độ phức tạp, đội ngũ, khả năng kiểm thử) và nhược điểm bạn nhận thấy. Điều người phỏng vấn đánh giá cao là hiểu nguyên tắc: tách logic khỏi giao diện, trạng thái có một nguồn sự thật duy nhất, luồng dữ liệu rõ ràng.
const widget ở nơi có thể.ListView.builder cho danh sách dài để chỉ dựng phần đang hiển thị.build; chuyển tính toán nặng sang compute hoặc isolate.Hãy chuẩn bị một ứng dụng Flutter nhỏ có đăng nhập, gọi API, danh sách và lưu cục bộ, rồi tập giải thích kiến trúc của nó. Nếu bạn nói được vì sao chọn cách quản lý trạng thái đó, bạn đã vượt qua phần lớn câu hỏi.
Để học Flutter qua các dự án thực hành, bạn có thể tham khảo các khóa di động tại codebem.com.
Nguyễn Đình Cường
0 comment