Có nên viết ứng dụng mobile đa nền tảng bằng Flutter?

Flutter là một SDK phát triển ứng dụng di động được phát triển bởi Google. Nó phát hành lần đầu vào năm 2017, phiên bản ổn định gần đây nhất phát hành năm 2019. Tính tới thời điểm hiện tại năm 2020 thì Flutter phát triển khá mạnh cho việc lập trình ứng dụng mobile Android iOS.

Ngôn ngữ để phát triển cho ứng dụng Flutter là Dart, đây là một ngôn ngữ khá linh hoạt, cú pháp khá giống Java nhưng được cải tiến khá nhiều khiến nó dễ sử dụng hơn bao giờ hết.

Mình đang sử dụng Dart để lập trình Flutter và cảm thấy khá thích so với lập trình native. Google đưa khá nhiều thư viện hay khiến nó lập trình khá nhanh ở nhiều chức năng, view. Khi làm giao diện cho app thì được hỗ trợ thư viện Cupertino mặc định, khiến mọi thứ trở nên đẹp mắt mà ít phải tùy chỉnh nhiều, giao diện với các funtion viết cùng file mà không phải chia ra như lập trình Android với Java. Khi ta viết bằng Java thì ta phải chia mọi giao diện ra các file XML và file code chức năng riêng. Việc gộp mọi thứ vào một chỗ thì ta có thể xử lý view tương quan hơn, ta không phải chuyển đổi cửa sổ liên tục. Ngoài ra Fluttet còn có tính năng “Hot reload”, đây là tính năng mà bạn có thể thấy giao diện được thay đổi tức thì khi ta thay đổi code. Chính tính năng đó làm cho ta lập trình một cách nhanh chóng, ta không cần phải build lại code mỗi khi thay đổi như cách lập trình trước đây. Về IDE để lập trình cũng khá thoải mái, với các công cụ lập trình phổ biến như Android Studio / IntelliJ, Visual Studio Code bạn có thể lập trình ở bất kỳ IDE nào bạn thích.

Ở Flutter bạn có thể tương tác với native dễ dàng qua Platform channel, nôm ra là bạn thích tương tác với hệ thống Android bằng code native mà ở Flutter chạy không ổn định thì có thể làm điều đó. Hiện tại cộng đồng hỗ trợ cho Flutter cũng khá đông đảo rồi. Mình tìm tài liệu cho lập trình không quá khó khăn, điều đó cho thấy các lập trình viên quan tâm đến một ngôn ngữ lập trình mobile khá mới này ngày một tăng nhanh.

Về hiệu suất mà Flutter đem lại cũng khá tốt, so với các ứng dụng native thì không thể nào bằng được. Tuy vậy cái mà ta đánh đổi đó chính là ưu thế về đa nền tảng của nó. Chỉ cần thành thạo nó thì bạn có thể làm trên 2 hệ điều hành mobile phổ biến nhất hiện nay. Mình tin là Flutter sẽ là xu hướng mới trong thời gian tới so với các Framework khác như React native, Xamarin… Điều đáng vui mừng là Flutter được Google “bảo kê” nên sẽ rất phù hợp để viết các ứng dụng có liên quan đến các nền tảng trong hệ sinh thái của Google. Bạn nghĩ sao về những nhận định này của mình?