Flutter Google là gì?

Flutter Google được phát triển nhằm giải quyết bài toán thường gặp trong mobile là Native Performance và Fast Development. Bên cạnh đó, React Native chỉ đảm bảo Code Native và Fast Development thuần chỉ đảm bảo Native Performance thì Flutter thực hiện được cả 2 điều trên.

So sánh sự khác nhau giữ Flutter Google và Android

Câu hỏi mà chắc hẳn không ít người đang thắc mắc, chẳng phải Google đã có bộ SDK cho di động, có tên gọi Android tại sao lại cần Flutter? Trên thực tế, với Google thế giới mobile này là quá rộng chỉ với một giải pháp duy nhất là Android thì không đủng. Cùng với việc ra mắt phiên bản beta 1 này, giờ đây họ có trong tay hai bộ SDK cho ứng dụng di động: Flutter và Android. Bạn có thể hiểu đơn giản là giữa Flutter với Android: tạo ra các ứng dụng chạy trên cả iOS và Android trong khi Android chỉ có một.

Flutter là một bộ SDK đa nền tảng, bên cạnh đó các ứng dụng Flutter có thể hoạt động trên cả Android và iOS. Flutter giống như một thủ thuật khôn khéo để tương thích được với framework UI trên cả hai hệ điều hành Android và iOS. Bên cạnh đó, các ứng dụng này không biên dịch trực tiếp với các ứng dụng Native của iOS và Android.

Trang Hỏi đáp của Flutter cho biết, một ứng dụng “trống” thông thường sẽ chỉ khoảng 6-7MB trên Android, vì vậy dù là ứng dụng nào, phần kích thước tăng lên cũng là rất nhiều. Nhưng lợi ích của việc này là các ứng dụng này sẽ rất nhanh. Đóng gói cả một engine đi kèm cùng ứng dụng sẽ làm cho kích thước bộ cài đặt lớn hơn hẳn.

  • Flutter – Lập trình bất đồng bộ với Future, async, await
  • Flutter – kiến thức từ con số 0 đến 100

Trong khi đay không phải là một con số hiếm gặp trên iOS, nhưng với Android, bạn có thể cảm thấy sự khác biệt rõ rệt ngay lập tức. Flutter được thiết kế từ đầu để đạt tới tốc độ khung hình 60fps. Cũng với việc ra đời  cả một nền tảng cho ứng dụng của mình, các nhà phát triển sẽ tránh được nhiều vấn đề về sự phân mảnh của Android ở quá khứ.

Tại sao nên sử dụng Flutter Google?

Ngôn ngữ phát triển ứng dụng nhanh chóng: Tính năng hot reload của nó giúp bạn dễ dàng và nhanh chóng cho việc thử nghiệm, thêm tính năng và sửa lỗi nhanh hơn, xây dựng giao diện người dùng. Khi bạn reload lại lần thứ hai, mà không làm mất trạng thái, trên device cho iOS, Android và emulator, simulator.

Biểu cảm và UI đẹp: Người dùng sẽ thỏa mãn với các widget built-in đẹp mắt theo Cupertino (iOS-flavor) và Material Design, bên cạnh đó các API chuyển động phong phú, scroll tự nhiên mượt mà và tự nhận thức được nền tảng của mình đang thực hiện.

Nó cho phép bạn sử dụng lại mã Java, ObjC, Swift hiện tại của mình và truy cập các tính năng và SDK native trên Android và iOS. Bên cạnh đó, truy cập các SDK native và các tính năng: Khiến cho ứng dụng của bạn trở nên sống động với API của Platform, và Native code, SDK của bên thứ ba.

Phát triển ứng dụng Mobile thống nhất: Flutter sở hữu các thư viện và công cụ để giúp bạn dễ dàng đưa ý tưởng của mình vào cuộc sống trên Android và iOS. Trong trường hợp nếu bạn chưa có kinh nghiệm phát triển trên thiết bị di động, thì Flutter Google là một cách nhanh chóng và dễ dàng để xây dựng các ứng dụng di động tuyệt đẹp theo nhu cầu của bạn. Bên cạnh đó, nếu bạn là một nhà phát triển Android hay iOS có kinh nghiệm, thì bạn có thể sử dụng Flutter cho các View của bạn và tận dụng nhiều code Kotlin / ObjC / Swift/ Java hiện có..

Flutter cho ứng dụng Mobile – Quá tốt so với phần còn lại

Tóm tắt một vài ưu điểm khi sử dụng flutter cho ứng dụng mobile:

1. Ngôn ngữ DART – Một ngôn ngữ lập trình hướng đối tượng do Google phát hành và phát triển. Bên cạnh đó, DART là AOT (Ahead of Time), compile xong hết rồi mới chạy hoặc còn gọi là static type language. Bên cạnh đó, nó cũng là JIT (Just in Time) giống như các dynamic type language khác. Phát triển bằng cách sử dụng JIT để hỗ trợ Hot Load và build release thì dùng AOT để tối ưu hiệu năng như một native code thông thường.

2. Hiện tại DART có thể transpile ra các ngôn ngữ khác như JS để chạy trên trình duyệt. Mặc dù cái này không liên quan mobile lắm nhưng đây cũng là 1 ưu điểm lớn của ngôn ngữ này nên không thể bỏ qua chúng. Bên cạnh đó, DART cũng hướng tới việc trở thành một ngôn ngữ có thể chạy trên nhiều platform khác nhau, cùng với đó là nó cũng có máy ảo (VM) làm nhiệm vụ dịch source code sang bytecode giống như ngôn ngữ Java.

3. Native module là gì? Khác với Flutter , JS Bridge “nói chuyện” với các native module bằng chính các native interface. Bên cạnh đó, mặc dù vẫn được gọi là “bridge”, tuy nhiên nó nhanh hơn rất nhiều và gần như không bị “thắc cổ chai” như React Native trước đó. Bên cạnh đó, các module này được kiến trúc theo “plugin”, cùng với các module viết cho Flutter phải tuân thủ các yêu cầu trong này.

4. Các threads này độc lập và không share memory với nhau, chúng giao tiếp với nhau thông qua channels… tới đây ai fan golang sẽ hiểu và rất thích pattern này. Theo doc của Flutter Engine, có tới 4 threads (runners) được sử dụng trong app: Platform Task Runner, UI Task Runner, IO Task Runner và GPU Task Runner.

5. Về document: Bộ profiling của Flutter cũng cực kì hay dùng để đo đạc các chỉ số về performance khá chi tiết. Sở hữu bộ doc phải nói là không bỏ sót thứ gì. Bắt đầu từ cài đặt, hướng dẫn viết app cơ bản cho tới CI/CD, debug, profiling, test.

6. Kiến trúc ứng dụng và ví dụ: Có hẳn 1 repository trên Github đủ hết các example cho mvc, mvu, Redux,… tha hồ quẹo lựa.

Với bài viết ngày hôm nay, Zephyrfalcon đã cung cấp cho bạn tất tật về Flutter google, hy vọng với bài viết này bạn sẽ hiểu rõ và sử dụng thành thục nó trong tương lai.