So sánh giữa Flutter vs React Native

Flutter: Ưu điểm

– Mạnh về animation, performance app rất cao.
– Giao tiếp gần như trực tiếp với native
– Static language nhưng với syntax hiện đại, compiler linh động giữa AOT [for archive, build prod] và JIT [for development, hot reload]
– Có thể chạy được giả lập mobile ngay trên web, tiện cho development. Các metric measure performance được hỗ trợ sẵn giúp developer kiểm soát tốt performance của app.
– Có thể dùng để build các bundle/framework gắn và app native để tăng performance.

Những điểm đáng chú ý của Flutter

Flutter là SDK nguồn mở của Google dùng để tạo các ứng dụng chất lượng cao cho Android và iOS bằng cách sử dụng một codebase.

Ngày 4 tháng 12, Google đã tổ chức sự kiện Flutter Live để chào mừng SDK mobile mới, Flutter và phiên bản ổn định đầu tiên của nó.

Họ cũng công bố project Google Hummingbird cho phép các developer chỉ cần build một ứng dụng một lần và sau đó có thể chạy nó ở bất kỳ nơi nào.

Thời gian gần đây, sự phổ biến của các mobile app dường như không có dấu hiệu giảm nhiệt. Mỗi ngày đều có rất nhiều app được develop và deploy trên các app store. Không chỉ native app mà cross-platform app và hybrid app cũng được các app developer và chuyên gia kinh doanh tập trung phát triển.

Bên cạnh các ưu và nhược điểm của mình thì mỗi framework đều có kiến trúc độc đáo để build app. Trong khi các native app cung cấp trải nghiệm người dùng vượt trội, thì cross-platform và hybrid được thiết kế để tiết kiệm thời gian và chi phí cũng như cung cấp time-to-market nhanh hơn.

Trong bài viết này, chúng ta sẽ thảo luận về sự tương đồng và khác biệt giữa hai tool phát triển cross-platform app là React Native và Flutter.

Có thể bạn quan tâm

Flutter khác biệt gì so với những công nghệ đương thời?

1.Flutter

Ưu điểm:

  • Mạnh về animation, performance app rất cao. Cơ chế render có thể giao tiếp trực tiếp với GPU.
  • Back bởi Google.
  • Giao tiếp gần như trực tiếp với native.
  • Archive [build production] hoàn toàn là file thực thi native.
  • Static language nhưng với syntax hiện đại, compiler linh động giữa AOT [for archive, build prod]JIT [for development, hot reload].
  • Flutter chạy được giả lập mobile ngay trên web, tiện cho development. Các metric measure performance được hỗ trợ sẵn giúp developer kiểm soát tốt performance của app.
  • Flutter có thể dùng để build các bundle/framework gắn và app native để tăng performance.
  • UI/UX Android và iOS có thể giống hệt nhau [vì không sử dụng tầng UI có sẵn của native].
  • Hỗ trợ đa nền tảng: Android, iOS, Desktop, Linux, Embbed System.

Nhược điểm:

  • Bộ render UI được team author Flutter gần như viết lại, không liên quan tới UI có sẵn của Framework native, dẫn đến memory sử dụng khá nhiều.
  • Phải học thêm ngôn ngữ DART. Dù dễ và thân thiện nhưng đây cũng là 1 rào cản quan trọng cần cân nhắc.
  • Update quá nhanh… ngủ dậy sau một giấc thấy version tăng 2 số là bình thường. Hiện đã stable nhiều hơn, với khi update cũng hiếm bị breaking change [lỗi source cũ].
  • Do là một framework có tuổi đời rất trẻ, cộng đồng dù vẫn đang phát triển rất nhanh, nhưng ở Việt Nam thì mới nổi lên 2 năm gần đây.

1. Sự phân chia thị trường giữa Flutter vs React Native trong năm 2020

Việc chọn lựa một framework cụ thể là điều hết sức khó khăn đối với đa số các công ty hiện nay. Nhưng những lập trình viên đầy tham vọng cũng muốn bắt kịp xu hướng, và câu hỏi “Tôi nên học Flutter hay React Native” cũng thường xuyên được đề cập. Để chọn ra giải pháp hợp thời nhất, chúng ta nên hình thành một khái niệm cụ thể về độ phủ sóng của Flutter và React Native. Vì lý do đó, việc có những nguồn dẫn đáng tin cậy cũng hết sức quan trọng. Và trong cộng đồng IT, GithubStackOverflow đều được đánh giá cao trong việc dẫn nguồn các dữ liệu cần thiết.

Hai nguồn dẫn trên giúp chúng ta đưa ra một sự so sánh rõ ràng giữa Flutter vs React Native. Chúng cho thấy bao nhiêu người sử dụng các loại ngôn ngữ nào và từng framework cụ thể, vì vậy đó là góc nhìn đến từ phía nội bộ của cộng đồng IT. Tuy nhiên, ở một góc nhìn khác, chúng ta cũng sử dụng Google Trends để xem các lập trình viên [và các vị trí khác] thường thể hiện sự quan tâm như thế nào tới vấn đề kể trên và sự so sánh giữa Flutter vs React Native.

1.1 Thống kê từ Stack Overflow:

Đầu tiên chúng ta hãy bắt đầu xem xét số liệu được thống kê trên Stack Overflow vào năm 2020. Nếu bạn muốn xem số liệu thực ở thời điểm hiện tại bạn đang đọc bài viết này, hãy nhấn vào đây để xem. Còn ở thời điểm khi đang viết bài này, số liệu thống kê mà chúng tôi nhận được như hình bên dưới

So sánh độ yêu thích giữa Flutter vs React Native trên Stack Overflow

Danh mục các công nghệ được yêu thích nhất cho ta thấy bao nhiêu chuyên gia bắt đầu sử dụng một công cụ cụ thể và sẵn lòng tiếp tục làm việc cùng nó. Qua tiêu chuẩn trên, số điểm của Flutter đạt được là 68.8%, trong khi React Nativeđạt 57.9%.

1.2 Thống kê từ Github:

Github thì cho rằng số dự án mã nguồn mở đang tăng lên từng ngày. Số liệu thống kê vào năm 2020 cho thấy số lượng người đóng góp cho các dự án mã nguồn mở là bao nhiêu. React Native hiện đang có 9.1k người đóng góp, trong khi con số này bên phía Flutter13k.

1.3 Thống kê từ Google Trends:

Google Trends là số liệu đo đạc cho biết độ phổ biến của một truy vấn cụ thể liên quan đến tần suất tìm kiếm tổng thể trong một khoảng thời gian nhất định. Có nghĩa là nó ước tính một vấn đề được tìm kiếm dựa theo tỷ lệ phần trăm của tất cả các lượt truy vấn được tìm kiếm trên Google.

Google Trends so sánh Fluttter vs React Native

Chúng ta có thể thấy rằng mức độ phổ biến của Flutter gần gấp đôi so với React Native. Số lượt truy cập Flutter trung bình là 86, trong khi con số đó của React Native58. Với Google Trends, chúng ta cũng có thể phân tích được mức độ phổ biến của các framework Cross-platform khác so với hai framework được nêu trên.

Vì vậy, theo Google Trends cùng với StackOverflowGithub, chúng ta có thể thấy rằng theo mức độ phổ biến, các framework đi theo thứ tự như sau:

  • Flutter.
  • React Native.
  • Xamarin.
  • Cordova.

Các số liệu thống kê đã cho chúng ta thấy rằng Flutter là framework ứng dụng Cross-platform tốt nhất vào năm 2020React Native đứng ở vị trí thứ hai. Một điều thú vị rằng, nếu chúng ta quan sát tổng quan của quá trình 5 năm thay vì chỉ 12 tháng, thì chúng ta có thể thấy được toàn cảnh quá trình phát triển. Xu hướng Flutter đã nhanh chóng phát triển trong 3 năm qua. Còn mức độ phổ biến của React Native và Cordova thì đang ổn định còn số lượng truy cập của Xamarin thì lại đang sụt giảm.

Flutter là gì?

Flutter được biết đến là nền tảng đa ứng dụng dành cho hệ điều hành Android và iOS do chính Google phát triển. Và nền tảng này sử dụng ngôn ngữ DART nhằm tạo ra các ứng dụng Native App cho Google.

Ưu điểm

  • Hiệu ứng và hiệu suất cao
  • Có khả năng giao tiếp trực tiếp gần giống như hệ thống
  • Ngôn ngữ tĩnh + cú pháp hiện đại có compiler khi sử dụng AoT với JiT
  • Có khả năng chạy giả lập mobile trên web nhằm hỗ trợ cho việc phát triển
  • Bộ đo lường chỉ số hiệu suất giúp cho các lập trình viên có thể kiểm soát hiệu suất ứng dụng tốt
  • Được sử dụng để xây dựng các nền tảng gắn vào Native để tăng hiệu suất

Nhược điểm

  • Với bộ render UI thì được viết lại và hoàn toàn không liên quan tới UI có sẵn trong Framework Native dẫn đến bộ nhớ được sử dụng rất nhiều hiện nay
  • Các UI sẽ không được đi chung với OS mà nó lại được phát triển riêng. Có nghĩa là nó là cùng 1 phiên bản Flutter, nhưng khi tạo ra ứng dụng iOS thì đều giống nhau.
  • Dart sẽ dính với Dart trong phát triển mobile chứ không được uyển chuyển như ngôn ngữ Python hay Java Script.
  • Mất nhiều thời gian học thêm mô hình dữ liệu có trong Flutter

So sánh Flutter với React Native ai ngon hơn?

20/07/2020

Trong bài viết này, bạn sẽ biết thông tin chi tiết về React NativeFlutter, bên cạnh đó sẽ là bài so sánh nhanh giữa hai nền tảng này với nhau.Flutter và React Native là hai framework được rất nhiều người quan tâm ở thời điểm hiện tại. Điểm chung của cả 2 đều là Cross Platform Mobile, build native cho cả Android và iOS. Cả 2 có thể giao tiếp với native để viết các module base on native [gần như bắt buộc]. Hãy cùng ngồi lại so sánh giữa Flutter và React Native ai ngon hơn ai, ưu điểm và nhược điểm của cả hai công nghệ này.

Khi ngày càng có nhiều người tiếp cận với các công nghệ hiện đại, nhu cầu về các ứng dụng di động đã tăng lên ở mức độ lớn. Để phù hợp với nhu cầu ngày càng tăng của khách hàng và doanh nghiệp, việc liên tục phát triển các công nghệ, nền tảng mới là điều rất cần thiết. Để phát triển một ứng dụng di động mới cho các nhà phát triển phân khúc kinh doanh mới cần có công nghệ mạnh mẽ giúp giảm thời gian mà vẫn phải đạt được hiệu quả. Để đạt được điều này, nhiều nhà phát triển đã bắt đầu sử dụng ứng dụng đa nền tảng, để họ có thể tận dụng các tính năng của nó để thiết kế các ứng dụng thương mại điện tử, ứng dụng tương tác và ứng dụng xã hội.Flutter và React Native là hai framework chính đang cạnh tranh để chứng minh giá trị của chúng và chúng là chính là những người chủ định hình tương lai phát triển của các ứng dụng di động cross-platform. React Native vs Flutter là hai nền tảng phổ biến nhất trong năm 2018 và 2019.

Cross Platform Mobile, build native cho cả Android và iOS đang là xu hướng

Những điểm đáng chú ý của Flutter

Flutter là SDK nguồn mở của Google dùng để tạo các ứng dụng chất lượng cao cho Android và iOS bằng cách sử dụng một codebase.Ngày 4 tháng 12 năm 2018, Google đã tổ chức sự kiện Flutter Live để chào mừng SDK mobile mới, Flutter và phiên bản ổn định đầu tiên của nó. Họ cũng công bố project Google Hummingbird cho phép các developer chỉ cần build một ứng dụng một lần và sau đó có thể chạy nó ở bất kỳ nơi nào.
Flutter được Google giới thiệu là một người mới trong thế giới ứng dụng di động. Không có gì ngạc nhiên khi Flutter giúp các nhà phát triển tạo ra các ứng dụng native đẹp mắt và giúp họ phát triển các ứng dụng đa nền tảng một cách dễ dàng.

Flutter, một “tay chơi” mới trong thời giới Mobile development

Những điểm đáng chú ý của React Native

Facebook đã giới thiệu React Native và trong thời gian ngắn, framework này đã trở nên phổ biến và các công ty sử dụng nó đã được hưởng lợi rất nhiều. React Native được biết đến như là Future of Hybrid Apps.Thông qua Google Trend, các bạn cũng thấy rằng cả 2 nền tảng đều đang rất hot. React Native với tốc độ phát triển phi mã trong thời gian gần đây. Vậy Flutter hay React Native là lựa chọn của xu hướng? Mặc dù Flutter không phát triển nóng nhưng độ phổ biến cũng không hề kém cạnh React Native.Về khía cạnh này thì React Native hoàn toàn áp đảo Flutter. Khi có số lượng sao đánh giá tới hơn 70000 lượt. Cao gần gấp đôi Flutter. Điều này thể hiện rằng, số lượng cộng đồng lập trình viên vẫn đánh giá React native cao hơn Flutter. Và mình tin chắc là khi các bạn học và làm việc với React Native thì sẽ được cộng đồng hỗ trợ tốt hơn, nhiều thư viện hơn.

Bảng so sánh trend của Google giữa React Native và Flutter.

Chúng ta ở đây để so sánh hiệu suất của Flutter và React Native, được thực hiện dựa trên các thông số khác nhau. Biểu đồ so sánh này sẽ cung cấp một cách hữu dụng tới các Start-up, để họ có thể dễ dàng lựa chọn framework tốt nhân để sử dụng trong việc phát triển ứng dụng mobile của họ.

FlutterReact Native
Khả năng dùng lại codeFlutter cho phép overwriting code. Nếu bạn có kế hoạch cho việc sử dụng lại code thì Flutter là tùy chọn tốt nhất để có thể tối ưu được việc lựa sử dụng lại code.React Native cho phép bạn sử dụng lại code, nhưng điều này lại bị giới hạn trong một vài components cơ bản. Để có thể định nghĩa các style cho nền tảng React Native sẽ mất khá nhiều thời gian
Các thư viện Third PartyCó nhiều các third-party packages đang được sử dụng và đang ngày càng được phát triển, và chúng thực sự rất hữu dụngTừ khi React Native trở lên phổ biến, đã có rất nhiều các third-party packages được phát triển và được sử dụng rất nhiều trong ứng dụng, chúng có thể được thêm bớt một cách linh động trong ứng dụng của bạn
Độ phổ biếnVới khoảng 30k Github stars, Flutter đã trở thành trends trong việc phát triển. Như Google đã giới thiệu về framework này. Nó chắc chắn muốn trở thành một nền tảng phổ biến trong sự lựa chọn của các developerVới 65k Github stars, React Native có lượng developer sử dụng đang nhiều hơn bởi vì lượng developer sử dụng JavaScript rất dễ dàng để sử dụng với các thư viện của React
Cộng đồngTừ khi Flutter mới được giới thiệu, đã có một lượng lớn các bài viết hướng dẫn được đưa lên online, trong đó có rất nhiều các tài nguyên hữu ích để có thể bắt đầu viết ứng dụng đầu tiên trên mobile appReact Native đã được phổ biến từ lâu, vì thế cho nên nó cũng có rất nhiều các cộng đồng để hỗ trợ online. Những kỹ năng của các lập trình viên có kinh nghiệm trong JavaScript chắc chắn sẽ đưa ra giải pháp cho bất kỳ vấn đề nào trong quá trình phát triển của bạn

Flutter vs. React Native: Khám phá sự khác biệt

Ưu nhược điểm của Flutter và react native

Flutter:

Ưu điểm
– Mạnh về animation, performance app rất cao.
– Giao tiếp gần như trực tiếp với native
– Static language nhưng với syntax hiện đại, compiler linh động giữa AOT [for archive, build prod] và JIT [for development, hot reload]
– Có thể chạy được giả lập mobile ngay trên web, tiện cho development. Các metric measure performance được hỗ trợ sẵn giúp developer kiểm soát tốt performance của app.
– Có thể dùng để build các bundle/framework gắn và app native để tăng performance.

Nhược điểm
– Bộ render UI được team author gần như viết lại, không liên quan tới UI có sẵn của Framework native, dẫn đến memory sử dụng khá nhiều.
– Phải học thêm ngôn ngữ DART, bloc pattern, DART Streaming
– Dù đã release 1.0 chính thức, tuy nhiên còn khá mới. Một số plugin rất quan trọng như Google Map vẫn còn đang phát triển, chưa stable.
– Là con cưng của Google, tuy nhiên hãng dính nhìu phốt với thói quen “quăng con giữa chợ” nên cần cân nhắc.

React Native:

Ưu điểm
– Thiên về development/hotfix nhanh [hot reload, bundle injection]
– Sử dụng JS [quen thuộc với nhiều developer] và có thể share business logic codebase với frontend [js].
– Back bởi Facebook, họ dùng cho product của họ hàng ngày nên developer hưởng lợi khá nhiều từ đây.
– Hiện tại đã rất nhiều thư viện, gần như đã rất đầy đủ cho các nhu cầu app thông dụng.

Nhược điểm
– Giao tiếp với native thông qua các bridge, dễ bị bottleneck nếu không được kiểm soát tốt.
– Dùng JS nên mang theo các đặc điểm của JS: rất dễ làm nhưng cũng dễ sai, dẫn tới khó maintain về sau.
– HIệu năng animation là điểm yếu của RN, muốn làm tốt phải làm từ native, tầng js chỉ call vào, setup views. Tuy nhiên với các interactive animation thì rất đau khổ.
– Không thích hợp cho các app cần năng lực tính toán cao [hash, crypto, etc].

Tóm lại:
Flutter phù hợp với các dự án focus 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. Cực kỳ phù hợp với các team native [đang có nhu cầu làm thêm các UX có hiệu năng cao vào app native có sẵn]. 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.

React Native phù hợp với các team dùng JS as main language, không có quá nhiều animation phức tạp. React Native hiện tại tuyển người khá/rất dễ so với Flutter.Chọn React Native nếu bạn muốn tận dụng sự hỗ trợ từ cộng đồng mạnh mẽ và trưởng thành hơn, native app performance và sự phổ biến của JavaScript trong việc phát triển các cross-platform app.

Về quan điểm cá nhân mình thiên về Flutter hơn, cũng tin tưởng vào khả năng phát triển của nó, dùng nó như một sự bổ trợ cho native. Tuy nhiên với sự phát triển của các cross platform hiện tại thì khả năng cao là chúng chỉ có 2 – 3 năm vòng đời, vì thế nếu đã chọn làm mobile thì nên nắm được native. Còn nếu bạn mong muốn học 1 khoá học đầy đủ về Flutter thì bạn có thể tìm hiểu khoá học Flutter cơ bản do anh Nguyễn Vũ Trọng – Senior Engineering Manager của Begroup giảng dạy.

BÀI VIẾT NỔI BẬT

Name Cheap là gì? Có nên mua tên miền của Name Cheap?

01/02/2021

Top những khoá học về business analysis

28/01/2021

Chứng chỉ Certified Business Analysis Professional là gì

27/01/2021

Lương của business analyst hiện nay

26/01/2021

React Native là gì?

React Native là một framework JavaScript do công ty Facebook phát triển. Chúng ra đời nhằm giải quyết vấn đề hiệu năng của Hybrid và chi phí khi phải viết nhiều loại ngôn ngữ native cho nền tảng di động. Framework này cho phép người dùng tạo ra các ứng dụng di động sử dụng được cho cho cả 2 nền tảng iOS và Android trong cùng một cơ sở mã.

Ưu điểm của React Native

Dưới đây là những ưu điểm được CEO Matt Long của React Native App Development Company hàng đầu tại thị trường Austraylia chia sẽ:

  • Có khả năng tái sử dụng code. Điều này giúp bạn xây dựng ứng dụng cho các hệ điều hành khác nhau với ít native code nhất.
  • Cộng đồng người dùng đông đảo, nhiệt tình. Với ưu điểm này bạn có thể nhận được những sự giúp đỡ, hỗ trợ từ cộng đồng khi gặp phải bugs.
  • Là một framework có tính ổn định cao, tối ưu được phát triển bởi Facebook.
  • Mã React Native có khả năng xử lí dữ liệu cho người dùng.
  • Giúp tiết kiệm thời gian khi một phát triển nhanh một ứng dụng nào đó.
  • Mang lại cho người dùng trải nghiệm tốt. Có gần như đầy đủ thư viện cho các nhu cầu app thông dụng.
  • Back bởi Facebook. Họ dùng cho sản phẩm của họ hàng ngày nên các nhà phát triển có thể hưởng lợi từ đây.
  • Sử dụng JS – Một công cụ quen thuộc với nhiều nhà phát triển. React Native có thể chia sẻ business logic codebase với frontend.

Nhược điểm của React Native

  • Framework này yêu cầu phải có Native Code
  • Hiệu năng thấp hơn khi sử dụng Native App
  • Bảo mật chưa thực sự tối ưu vì dựa trên JS
  • Không phù hợp cho những app cần tính toán nhiều
  • Khả năng tùy biến cũng không tốt trong một vài module

Nên Thiết kế ứng dụng bằng Flutter hay React Native?

Danh mục

  • Thiết kế ứng dụng
  • Kinh nghiệm làm app
  • Ý tưởng kinh doanh app
  • Bài học kinh doanh

*********

Hai công nghệ thiết kế ứng dụng đang rất hot hiện nay là Flutter và React Native, vừa tốn ít kinh phí mà lại hiệu quả cao. Vậy nên chọn Flutter hay React Native, câu trả lời có trong bài viết này.

1.Giới thiệu về Flutter vs React Native.

1.1.Flutter là gì?

Flutter là một bộ công cụ UI dành cho nền tảng ứng dụng di động Android & iOS, sử dụng ngôn ngữ lập trình Dart. Nói cách khác, đây là bộ công cụ phát triển phần mềm [SDK] toàn diện, hoàn chỉnh với các công cụ và tính năng.

Nó cung cấp cho các nhà phát triển một cách dễ dàng để xây dựng và triển khai các ứng dụng được biên dịch trực quan, hấp dẫn dành cho thiết bị di động [iOS, Android], web và máy tính để bàn, tất cả đều sử dụng một cơ sở mã duy nhất.

Công nghệ mới Flutter.

Nhưng là một dự án mở ra hướng đi mới, cả Google và cộng đồng Flutter đã xây dựng Flutter, tất cả đều đóng góp cho sự phát triển của nó. Flutter làm việc với source code có sẵn, được sử dụng bởi các nhà phát triển ứng dụng phần mềm và các tổ chức trên khắp thế giới, đồng thời nó open-source và miễn phí.

Từ khi xây dựng nền tảng công nghệ Flutter đến nay nó đã tích cực làm việc để làm cho bộ công cụ mạnh hơn và linh hoạt hơn - ưu tiên tăng cường sự ổn định, hiệu suất và chất lượng. Các thiết kếapp mobilephổ biến được tạo ra bởi Flutter như: Ứng dụng Xianyu của Alibaba, Ứng dụng Google Ads, Ứng dụng Hamilton,…

1.2.React Native là gì?

Công nghệ lập trình React Native.

React Native là một khung javascript và sử dụng thiết kế giống như React, nó được tạo bởi Facebook và cho phép bạn gửi các ứng dụng IOS và Android với một cơ sở mã duy nhất.

React Native là một framework mã nguồn mở được sáng tạo bởi Facebook. Nó được sử dụng để phát triển ứng dụng di động Android, iOS, Web và UWP bằng các cho phép các nhà phát triển sử dụng React cùng với môi trường ứng dụng gốc.

Một số thiết kế ứng dụng di động bằng React Native nổi tiếng như: Facebook, Instagram, Skype, Pinterest,....

Video liên quan

Chủ Đề