Đầu năm 2023, Google vừa phát hành Flutter 3.7. Với các tính năng mới trong phiên bản lần này, các developer có thể nâng cao khả năng viết code của mình. Ngoài ra, Flutter đã cải tiến và tối ưu hóa các tính năng hiện có. Tuy nhiên, bản phát hành ổn định Dart 3 vẫn chưa được công bố nhưng nó sẽ mang lại năng suất và tính di động (portability) trong tương lai.

1. Những tính năng mới trong Flutter 3.7

1.1. Menu Bar và Cascade menu

- Các developer có thể tạo Menu Bar và Cascading menu bằng cách sử dụng Flutter. Đối với macOS, các bạn có thể sử dụng tiện ích PlatformMenuBar để tạo thanh menu được macOS hiển thị sẵn, thay vì Flutter. 

- Đối với các nền tảng khác, bạn có thể sử dụng menu Material Design cung cấp các thanh cascade menu (MenuBar) hoặc các cascade menu riêng lẻ được trigger bởi UI Element khác (MenuAnchor). 

- Các menu này hoàn toàn có thể tùy chỉnh hoặc bạn có thể sử dụng các menu item widget mới (MenuItemButton, SubmenuButton).

1.2. Impeller Preview

- Một công cụ render Impeller mới hiện đã có sẵn để preview trên iOS trong các kênh ổn định. Hiệu suất của Impeller được cho là có thể sánh ngang hoặc tốt hơn trình render Skia (Skia là một thư viện đồ họa 2D nguồn mở cung cấp các API phổ biến hoạt động trên nhiều nền tảng phần cứng và phần mềm khác nhau) cho hầu hết các ứng dụng, tuy nhiên nó vẫn còn một vài lỗ hổng trong phạm vi API.

- Trong trường hợp có bất kỳ vấn đề nào, bạn có thể tham khảo Sự cố tệp tại đây.

- Impeller hiện vẫn chưa có mặt trên Android, nhưng team flutter sẽ sớm ra mắt trong thời gian sắp tới.

1.3. iOS release validation (Xác thực bản phát hành iOS)

- Lệnh flutter build ipa hiện bao gồm một tính năng là kiểm tra và xác thực các cài đặt nhất định cho các ứng dụng iOS trước khi gửi đến App Store. 

- Điều này giúp đảm bảo rằng ứng dụng đã sẵn sàng để phát hành bằng cách thông báo cho lập trình viên về bất kỳ thay đổi nào cần được thực hiện trước khi gửi. 

- Tính năng mới này là danh sách kiểm tra các cài đặt cần cập nhật giúp các lập trình viên chuẩn bị ứng dụng để phát hành.

1.4. Tùy chỉnh context menu

- Bạn có thể tạo menu tùy chỉnh ở bất cứ đâu bạn muốn trong ứng dụng của mình, nó cho phép bạn kiểm soát nhiều hơn trải nghiệm người dùng. Tính năng này hoạt động bằng cách thêm tham số contextMenuBuilder mới vào các widget có sẵn được hiển thị context menu theo mặc định, chẳng hạn như TextField

- Các bạn có thể trả lại bất kỳ widget con nào từ contextMenuBuilder, bao gồm sửa đổi context menu thích ứng với nền tảng mặc định. Tính năng này cũng có thể được sử dụng bên ngoài text selection, chẳng hạn như tạo tiện ích “Hình ảnh hiển thị nút”, “Lưu khi nhấp chuột phải hoặc nhấn và giữ”.

1.5. Devtools updates

- SDK mới này bao gồm một số tính năng và cải tiến công cụ mới. Một trong những cải tiến lớn là trong công cụ gỡ lỗi bộ nhớ DevTools, đã trải qua một cuộc đại tu hoàn chỉnh và bao gồm ba tab tính năng mới: Profile, Trace và Diff. Các tab này hỗ trợ tất cả các tính năng gỡ lỗi bộ nhớ được hỗ trợ trước đó và thêm nhiều tính năng khác để giúp việc gỡ lỗi dễ dàng hơn. 

- Các tính năng mới bao gồm khả năng phân tích phân bổ bộ nhớ hiện tại cho ứng dụng theo lớp và loại bộ nhớ, giúp tìm tới các đường dẫn code đang phân bổ bộ nhớ cho một tập hợp các lớp trong thời gian chạy và tìm ra điểm khác nhau giữa 2 memory snapshot, theo đó, sẽ giúp bạn hiểu hơn về việc cấp phát bộ nhớ ở hai thời điểm.

2. Những cải thiện mới trong Flutter 3.7

2.1. Cập nhật material 3

Trong Flutter 3.7, Google đã nâng cao hỗ trợ material 3 và di chuyển một loạt các widget. Để sử dụng, bạn phải chỉ định useMaterial3 trong các ứng dụng ThemeData widget. Một tip cho bạn dễ nhận biết rằng bạn đã kích hoạt Material 3 thành công đó là FAB (Floating action button) sẽ có hình chữ nhật thay vì hình tròn như thường thấy.

2.2. Scrolling Improvements

- Thay đổi này sẽ cho phép người dùng trả về null từ itemBuilder và chỉ ra phần cuối của danh sách, giúp bạn làm việc với các widget cuộn như ListView dễ dàng hơn. 

- Ngoài ra, các tiện ích Scrollbars và DraggableScrollableSheet mới sẽ cung cấp nhiều tùy chọn kiểm soát và tùy chỉnh hơn cho chế độ xem cuộn, đồng thời việc xử lý được cải thiện để lựa chọn văn bản trong scrolling contexts sẽ giúp bạn dễ dàng chọn văn bản trong chế độ xem cuộn.

2.3. Internationalization Tools and Docs (Công cụ và văn bản đa ngôn ngữ)

Hỗ trợ đa ngôn ngữ đã được cải thiện hoàn chỉnh. Công cụ gen-l10n hiện hỗ trợ:

- Lỗi cú pháp mô tả.

- Các message phức tạp liên quan đến nested/multiple plurals, selects, và placeholders.

2.4. Text magnifier

Kính lúp xuất hiện trong quá trình chọn văn bản trên Android và iOS hiện hoạt động trong Flutter. Tính năng này được bật ngay lập tức cho tất cả các ứng dụng có lựa chọn văn bản, nhưng nếu bạn muốn tắt hoặc tùy chỉnh nó, hãy xem thuộc tính magnifierConfiguration.

2.5. Giảm độ trễ hoạt ảnh trên thiết bị iOS

Chất lượng hoạt ảnh đã được cải thiện đáng kể với phiên bản mới của Flutter, nhờ những người đóng góp mã nguồn mở.

2.6. Ngoài ra còn một số cập nhật khác như:

- Ngừng hỗ trợ các phiên bản macOS 10.11, 10.12 và 10.13. 

- Cải thiện hỗ trợ Custom Shader

- Một số cải thiện đối với quản lý bộ nhớ nhằm giảm độ trễ do garbage collection pauses, sử dụng CPU thấp hơn do tốc độ phân bổ và luồng GC nền, giảm memory footprint tổng thể. 

- Plugin quick_actions được di chuyển từ Objective C sang Swift, cung cấp các cập nhật và phương pháp tốt nhất cho lập trình viên. 

- Trong Xcode 14, bitcode không còn quan trọng trong khi xây dựng ứng dụng cho watchOS và tvOS. Cửa hàng ứng dụng không chấp nhận bitcoder nữa trong quá trình gửi.

Nguồn: Tổng hợp

VietnamWorks inTECH