Tiếp theo phần 2, cafedev tiếp tục chọn lọc và tổng hợp các câu hỏi hay và thường được dùng khi phỏng vấn Flutter developer hiện nay.
Nội dung chính
31) Tại sao chúng ta cần mixin?
Dart không hỗ trợ nhiều thừa kế. Vì vậy, để triển khai nhiều kế thừa trong Flutter / Dart, chúng ta cần các mixin. Mixins cung cấp một cách để viết code của lớp có thể sử dụng lại trong nhiều phân cấp lớp.
32) Tại sao chúng ta sử dụngTicker trong Flutter?
Ticker trong Flutter là tốc độ làm mới hình ảnh động của chúng ta. Nó là một lớp gửi tín hiệu ở một khoảng thời gian đều đặn, tức là khoảng 60 lần mỗi giây. Chúng ta có thể hiểu điều đó bằng đồng hồ của mình, đồng hồ này hoạt động đều đặn. Tại mỗi lần đánh dấu, Ticker cung cấp một phương thức gọi lại với khoảng thời gian kể từ lần đánh dấu đầu tiên vào mỗi giây, sau khi nó được bắt đầu. Ngay cả khi các code bắt đầu vào các thời điểm khác nhau, nó luôn được đồng bộ hóa tự động.
33) Các phím trong Flutter là gì, và sử dụng nó khi nào?
- Các phím trong Flutter được sử dụng làm code định danh cho Widget, Elements và SemanticsNodes. Chúng ta có thể sử dụng nó khi một widget mới cố gắng cập nhật một phần tử hiện có; sau đó, khóa của nó phải giống với khóa wedget hiện tại được liên kết với phần tử.
- Các khóa không được khác nhau giữa các Phần tử trong cùng một gốc.
- Các lớp con của Key phải là GlobalKey hoặc LocalKey.
- Phím rất hữu ích khi chúng ta cố gắng thao tác (chẳng hạn như thêm, xóa hoặc sắp xếp lại thứ tự) một tập hợp các widget cùng loại có trạng thái nào đó.
34) Làm thế nào bạn sẽ thực thi code chỉ trong chế độ gỡ lỗi?
Để thực thi code chỉ trong chế độ gỡ lỗi, trước tiên chúng ta cần nhập nền tảng phi tiêu như bên dưới:
CODE
Tiếp theo, chúng ta cần sử dụng kReleaseMode như bên dưới:
CODE
35) Chế độ profile là gì, và bạn sử dụng nó khi nào?
Chế độ hồ sơ(Profile) được sử dụng để đo hiệu suất của các ứng dụng của chúng ta. Trong chế độ này, một số khả năng gỡ lỗi được duy trì để xác định hiệu suất ứng dụng của bạn. Chế độ này bị tắt trên trình giả lập và trình mô phỏng vì chúng không đại diện cho hiệu suất thực.
Chúng ta có thể sử dụng lệnh dưới đây để biên dịch chế độ cấu hình:
CODE
36) Chế độ release là gì và bạn sử dụng nó khi nào?
Chế độ phát hành(release) cho phép chúng ta tối ưu hóa code và tạo chúng mà không có bất kỳ dữ liệu gỡ lỗi nào ở dạng được tối ưu hóa hoàn toàn. Trong chế độ này, nhiều code của ứng dụng sẽ bị xóa hoặc viết lại hoàn toàn.
Chúng ta sử dụng chế độ này khi chúng ta sẵn sàng phát hành ứng dụng. Nó cho phép tối ưu hóa tối đa và kích thước dấu chân tối thiểu của ứng dụng.
Chúng ta có thể sử dụng lệnh dưới đây để biên dịch chế độ phát hành:
CODE
37) Sự khác biệt giữa WidgetsApp và MaterialApp là gì?
Biểu đồ so sánh dưới đây giải thích sự khác biệt cơ bản giữa WidgesApp và MaterialApp:
WidgetsApp | MaterialApp |
WidgetsApp được sử dụng để điều hướng cơ bản. Nó bao gồm nhiều widget nền tảng cùng với thư viện widget mà Flutter sử dụng để tạo giao diện người dùng của ứng dụng của chúng ta. | MaterialApp, cùng với thư viện material, là một lớp được xây dựng trên đầu WidgetsApp và thư viện của nó. Nó triển khai thiết kế Material Design cung cấp giao diện thống nhất cho ứng dụng của chúng ta trên bất kỳ nền tảng nào. |
Lớp WidgetsApp là lớp cơ sở cho lớp MaterialApp. | Nó cung cấp nhiều công cụ thú vị như Bộ điều hướng hoặc Chủ đề để phát triển ứng dụng. |
Nó bao bọc một số wedget cần thiết để xây dựng ứng dụng. | Nó bao gồm một số wedget cần thiết cho các ứng dụng thiết kế vật liệu xây dựng. |
38) BuildContext là gì?
BuildContext trong Flutter là một phần của các widget trong cây Element để mỗi widget có BuildContext của riêng mình. Chúng ta chủ yếu sử dụng nó để tham chiếu đến một widget hoặc chủ đề khác. Ví dụ, nếu chúng ta muốn sử dụng một yếu tố thiết kế material design, thì nó bắt buộc phải tham chiếu nó đến Scaffold. Chúng ta có thể lấy nó bằng phương thức Scaffold.of (context).
39) Bạn có thể thực hiện những loại kiểm tra nào trong Flutter?
Kiểm tra là một hoạt động được sử dụng để xác minh và xác thực ứng dụng, không có lỗi và đáp ứng các yêu cầu của người dùng. Nói chung, chúng ta có thể sử dụng ba loại kiểm tra này trong Flutter:
Bài kiểm tra đơn vị: Nó kiểm tra một chức năng, phương thức hoặc lớp. Mục tiêu của nó là đảm bảo tính đúng đắn của code trong nhiều điều kiện khác nhau. Thử nghiệm này được sử dụng để kiểm tra tính hợp lệ của logic kinh doanh của chúng ta.
Kiểm tra wedget: Nó kiểm tra một wedget duy nhất. Mục tiêu của nó là đảm bảo rằng giao diện người dùng của wedget trông và tương tác với các wedget khác như mong đợi.
Kiểm tra tích hợp: Nó xác thực một ứng dụng hoàn chỉnh hoặc một phần lớn của ứng dụng. Mục tiêu của nó là đảm bảo rằng tất cả các wedget và dịch vụ cùng hoạt động như mong đợi.
Flutter cũng cung cấp một thử nghiệm bổ sung được gọi là thử nghiệm vàng. Mục tiêu của nó là đảm bảo rằng bạn có hình ảnh của wedget hoặc màn hình và kiểm tra xem wedget thực tế có khớp với nó hay không.
40) Toán tử nhận biết Null là gì?
Dart cung cấp một số thông tin hữu ích để xử lý các giá trị null.
1. Toán tử gán “?? =” chỉ gán giá trị cho một biến khi biến đó rỗng.
CODE
2. Dấu “??” toán tử nhận biết null được sử dụng để đánh giá và trả về giá trị giữa hai biểu thức. Đầu tiên, nó kiểm tra biểu thức 1 và nếu nó khác rỗng, trả về giá trị của nó; nếu không, nó sẽ đánh giá và trả về giá trị của biểu thức 2:
CODE
Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.
Tài liệu từ cafedev:
- Full series tự học Flutter từ cơ bản tới nâng cao tại đây nha.
- Các nguồn kiến thức MIỄN PHÍ VÔ GIÁ từ cafedev tại đây
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!