Hiểu hết về Flutter chỉ trong một bài viết

Chia sẻ:

Khi nhắc đến nền tảng để phát triển ứng dụng di động iOS và Android, chúng ta thường nhắc ngay đến React Native. Tuy nhiên hiện nay, các ứng dụng dành cho điện thoại đang không ngừng phát triển trong số đó có Flutter. Vậy Flutter là gì? So sánh Flutter và React Native? Tại sao Flutter sử dụng ngôn ngữ lâp trình Dart ? Tất cả sẽ được AMELA giải đáp trong bài viết hôm nay. 

Flutter là gì?

Flutter
Là một bộ UI Framework hỗ trợ xây dựng platform app cho ios và android ngay trên 1 base coding
Flutter gồm 2 thành phần quan trọng:

  • SDK (Software Development Kit): Một bộ các công cụ giúp phát triển các ứng dụng, bao gồm các công cụ để biên dịch mã của bạn thành mã máy gốc (mã cho iOS và Android).
  • Framework (UI Library based on widgets): Một tập hợp các thành phần UI có thể tái sử dụng (button, text inputs, slider,…) Cho phép bạn cá nhân hóa ứng dụng tùy theo nhu cầu.
    Flutter sử dụng Skia Graphics Library, UI sẽ được draw lại mỗi khi view thay đổi
  • Phần lớn hoạt động trên GPU do đó Flutter UI mượt và mang lại tốc độ 60fps

Flutter và React Native

Flutter
React native có 9.1k contributors trên github. Trong khi flutter có đến 13k contributors. Lượng search thống kê từ Google Trends thì trung bình 86, còn react native thì 56. Khảo sát từ stackoverflow số lập trình viên tiếp tục sử dụng ngôn ngữ để lập trình thì flutter là 68.8%, React native thì chỉ có 57.9% thoai.

Điều này chứng tỏ những thế mạnh vượt trội của Flutter so với React Native 
Flutter nó được biên dịch trực tiếp qua các thư viện gốc ARM, x86 React native thì đơn thuần chỉ ở dạng bao bọc các phương thức native vì vậy cần các bridge để dịch các lệnh gọi đến API native gốc. Chính vì thế sẽ bị bottleneck khi call đến native nhiều. 

VD: Với animation thì bạn cần 60FPS để kéo thả animation nhưng RN không thể cung cấp ở mức này vì phải convert qua mã gốc Flutter thì không cần bridge nó tương tác với bất kỳ thành phần nào của hệ điều hành. Ngoài ra với sự kết hợp với Skia hỗ trợ đem lại sự tối ưu render app. Với Flutter thì không cần lo về vấn đề này.

Flutter phù hợp với các dự án tập trung về animation, các layout phức tạp, với thế mạnh sử dụng bộ render tự làm, giao tiếp trực tiếp với GPU và một SDK để viết anim dễ dàng. Chọn Flutter nếu bạn muốn cross-platform, UI hấp dẫn, native performance tuyệt vời, time-to-market nhanh hơn và tận dụng lợi thế cạnh tranh của Dart trong môi trường lập trình của bạn.

Dart là gì? Tại sao Flutter sử dụng ngôn ngữ lập trình Dart

  • Dart là gì?

Dart xuất hiện vào năm 2011, hướng tới việc tạo ra các ứng dụng đa nền tảng- website, mobile, desktop và IoT. Dart là ngôn ngữ lập trình đơn giản, dễ hiểu và dễ đến gần hơn, được sử dụng để build lên Flutter Framework. 

Dart là ngôn ngữ tĩnh, theo hướng đối tượng (OOP), functional programming và lexical scoped, được xác định theo lớp, với cơ chế garbage-collected, sử dụng cú pháp kiểu C để dịch mã tùy ý sang JavaScript. Nó như 1 sự kết hợp giữa Java và JavaScript nên khi học nó nếu ai đã có nền tảng 1 trong 2 ngôn ngữ kia thì lúc đến gần hơn sẽ khá dễ. 

Dart là ngôn ngữ mã nguồn mở và miễn phí, được phát triển trên GitHub 
Nó hỗ trợ interface, mixin, abstract, generic, static typing và sound type (2 cái cuối có thể hiểu là type-safe). Nó hỗ trợ interface, mixin, abstract, generic, static typing và sound type (2 cái cuối có thể hiểu là type-safe).

  • Tại sao Flutter sử dụng ngôn ngữ lập trình Dart

Flutter
Dart được phát triển bởi Google. Google muốn viết (phát triển) một ngôn ngữ mà nó cải tiến hơn Javascript và giúp đỡ cả 2 bí quyết biên dịch là Just In Time (JIT) và Ahead Of Time (AOT): 

+ Ahead Of Time (AOT): Với AOT thì trình biên chuyển dịch ngôn ngữ Dart thẳng sang Native Code giúp hiệu suất tối ưu có khả năng (tức là khi chạy chương trình, nó sẽ biên dịch từ đầu đến cuối) 

+ Just In Time (JIT): Còn với JIT cho phép hot reloading công việc, giúp phát triển mặt hàng nhanh và tiện dụng hơn (được hiểu như việc debug trong ngôn ngữ khác là debug hàm nào chạy hàm đấy thì ở đây nó sẽ viết đến đâu biên dịch ngay đến đấy) 

+ Một ngôn ngữ được tối ưu hóa cho client 

+ Framework mạnh mẽ 

+ Công cụ linh hoạt 

Hy vọng những kiến thức vừa chia sẻ sẽ giúp các bạn hiểu rõ hơn về Flutter và cân nhắc sử dụng nền tảng này trong phát triển ứng dụng di động.

Biên tập: AMELA