Nếu bạn nào chưa rõ về React Native thì có thể tham khảo tại đây.

Nếu bạn nào chưa rõ về Flutter thì có thể tham khảo tại đây.

Nếu bạn có thể thảm khảo về JavaScript một cách đẩy đủ nhất tại đây.

Tiếp theo phần 1, hôm nay chúng ta sẽ đi tiếp về React native và Khi nào nên chọn 1 trong 2 nền tảng để phát triển ứng dụng.

React Native – ưu và nhược điểm

Ưu của React Native:

1. Hot reload

Về cơ bản tính năng tương tự như Flutter.

Tải lại nóng tăng tốc quá trình phát triển bằng cách cho phép nhà phát triển tiêm mã mới trực tiếp vào ứng dụng đang chạy. Vì vậy, một nhà phát triển có thể thấy các thay đổi ngay lập tức mà không cần xây dựng lại ứng dụng.

Tải lại nóng cũng giữ lại trạng thái của ứng dụng, tránh nguy cơ mất ứng dụng trong quá trình tải lại đầy đủ (một lợi ích quan trọng trong bối cảnh các khung dựa trên trạng thái) – tăng tốc phát triển ứng dụng hơn nữa.

2. Một cơ sở mã, 2 nền tảng di động (và hơn thế nữa!)

Chính xác giống như Flutter: viết một cơ sở mã duy nhất để cung cấp năng lượng cho 2 ứng dụng – bao trùm cả nền tảng Android và iOS.

Vẫn tốt hơn, JavaScript giúp bạn dễ dàng hơn khi viết các ứng dụng đa nền tảng bằng cách chia sẻ mã với các ứng dụng web. Điều này được thực hiện bằng cách tạo các thành phần trừu tượng mà bạn có thể biên dịch để nhắm mục tiêu nền tảng.

Xem bên dưới để biết các thư viện ví dụ cho phép bạn tạo đồng thời mã trên các nền tảng khác ngoài iOS và Android (bao gồm cả ứng dụng web và máy tính để bàn) :

  • React Native for Web – hỗ trợ Android, iOS và web (Twitter đã sử dụng điều này để tạo Twitter Lite)
  • ReactXp – được phát triển bởi Nhóm Skype để hỗ trợ Android, iOS và web; cộng với, hoạt động trên Windows 10 (UWP)

3. Nó sử dụng ngôn ngữ cực kỳ phổ biến – JavaScript

React Native sử dụng JavaScript: một ngôn ngữ lập trình mà nhiều nhà phát triển biết rõ (trong khi đó, Dart vẫn chưa được biết đến hoặc sử dụng rộng rãi). Và nếu bạn là nhà phát triển thích các ngôn ngữ lập trình được nhập tĩnh, bạn thậm chí có thể sử dụng TypeScript – một tập hợp con JavaScript.

4. Nhà phát triển tự do lựa chọn

React Native cho phép các nhà phát triển xây dựng các ứng dụng đa nền tảng; không nhiều không ít.

Ưu điểm là React Native cho phép nhà phát triển quyết định chính xác những giải pháp họ muốn sử dụng; cả hai theo yêu cầu của dự án nhiều như sở thích của nhà phát triển .

Giả sử, nếu nhà phát triển cần quyết định cách xử lý trạng thái toàn cầu (cách lưu trữ và quản lý dữ liệu được sử dụng trong nhiều thành phần trong ứng dụng), hãy chọn thư viện bộ định tuyến hoặc chọn giữa JavaScript và TypeScript – họ có thể quyết định xem họ có ‘ d thích sử dụng thư viện UI tùy chỉnh hoặc viết thư viện của riêng họ.

4. Trưởng thành tương đối

Bản phát hành React Native chính thức đã có hơn 4 năm trước, vì vậy nhóm Facebook đã có nhiều thời gian để ổn định API, cũng như tập trung vào khắc phục sự cố và giải quyết vấn đề.

Bây giờ, họ đang làm việc với một vài cải tiến thú vị – như giảm kích thước ứng dụng.

5. Một cộng đồng năng động – và rộng lớn –

React Native có một cộng đồng phát triển lớn . Không chỉ vậy, có vô số hướng dẫn, thư viện và khung UI giúp bạn dễ dàng tìm hiểu công nghệ – cũng như nhanh chóng và dễ dàng phát triển với nó.

Và nếu bạn so sánh các kho lưu trữ tập trung vào việc thu thập các bài báo, công cụ và tài liệu về các công nghệ cụ thể, React Native được đặt tốt hơn nhiều so với Xamarin, Flutter hoặc Ionic (nguồn: Awesome-Flutter , Awesome-ReactNative , Awesome-Ionic , Awesome-Xamarin ).

Hơn thế nữa, React Native là một phần của gia đình React . Trong khi nhiều thư viện của nó là bất khả tri nền tảng, có nghĩa là chúng hoạt động trên cả web và di động.

6. Dễ học cho các nhà phát triển React

Lợi thế này trong danh sách của chúng tôi được nhắm mục tiêu cao vào các nhà phát triển React. Nếu bạn có nền tảng về phát triển web và đã sử dụng các giải pháp React phổ biến, bạn có thể dễ dàng làm việc với React Native mà không cần phải tìm hiểu các thư viện mới. Bạn có thể sử dụng cùng các thư viện, công cụ và mẫu.

7. Test giảm hơn tới 50%

Viết các bài kiểm tra tự động ít hơn khoảng 50% vì chúng ta có thể tạo các bài kiểm tra tương tự để chạy trên cả hai nền tảng, giảm yêu cầu đối với nhóm QA của chúng tôi.

Ý kiến ​​của React Native

1. Nó không thực sự bản địa

Giống như bất kỳ giải pháp đa nền tảng nào, cả trải nghiệm UI và hiệu suất sẽ không giống như trong các ứng dụng gốc – chỉ gần với chúng.

Tuy nhiên, vẫn dễ dàng đạt được cảm giác bản địa của người Viking với React Native hơn là với Flutter. Nếu bạn muốn ứng dụng Flutter của bạn có các thành phần gốc, nó sẽ yêu cầu công việc bổ sung.

2. Ít thành phần hơn trong hộp

React Native chỉ hỗ trợ các thành phần cơ bản ngoài hộp (nhiều trong số chúng thích ứng với nền tảng ngoài hộp, như nút, chỉ báo tải hoặc thanh trượt).

Như chúng ta đã nói trong đoạn này , có các repos bên ngoài với nhiều thành phần bổ sung cho React Native. Một nhà phát triển có thể sử dụng chúng trong một dự án nhưng điều đó đòi hỏi thêm nỗ lực và thời gian.

Mặt khác, Flutter được thiết kế để hỗ trợ material design, vì vậy khung hỗ trợ nhiều vật dụng hơn. Tiết kiệm thời gian. Nhà phát triển sử dụng Flutter có thể tạo hầu hết các chế độ xem với các tiện ích được tạo sẵn dễ dàng tùy chỉnh và đa nền tảng nhất quán.

3. Rất nhiều gói bị bỏ rơi

React Native tự hào có một số lượng lớn các thư viện. Thật không may, quá nhiều trong số chúng có chất lượng thấp; hoặc đã bị bỏ rơi hoàn toàn.

4. UI dễ vỡ

Việc React Native sử dụng các thành phần nguyên bản dưới mui xe sẽ giúp bạn tự tin rằng, sau mỗi lần cập nhật giao diện người dùng hệ điều hành, các thành phần ứng dụng của bạn cũng sẽ được nâng cấp ngay lập tức .

Điều đó nói rằng – điều này có thể phá vỡ giao diện người dùng của ứng dụng nhưng nó rất hiếm khi xảy ra.

Tệ hơn nữa, các bản cập nhật có thể trở nên nguy hiểm hơn nữa nếu chúng gây ra một số thay đổi nhất định trong API Thành phần gốc. Tin tốt? Loại sự kiện này rất hiếm khi xảy ra.

Trong khi nói đến Flutter (nhờ cách khung tự tạo lại các thành phần gốc), giao diện người dùng ứng dụng ổn định hơn rất nhiều.

6. Ứng dụng lớn hơn

Các ứng dụng được viết bằng React Native phải có khả năng chạy mã Javascript (Máy ảo JavaScript). Android không có chức năng này theo mặc định – có nghĩa là các ứng dụng cần bao gồm một thư viện hỗ trợ mã JavaScript, dẫn đến các ứng dụng lớn hơn so với các đối tác Android gốc của chúng.

Các ứng dụng iOS được tạo bằng React Native không phải là vấn đề này, nhưng chúng vẫn thường lớn hơn các ứng dụng gốc. Tin tốt? Như chúng tôi đã đề cập trước đây, nhóm React Native đang nỗ lực giảm kích thước ứng dụng của họ .


Dự đoán tương lai: Flutter & React Native

Ngày càng có nhiều công ty bị thu hút bởi Flutter. Rốt cuộc, chúng ta đang chứng kiến những cải tiến hàng tháng trong Flutter SDK khi Google tiếp tục cải tiến công cụ của mình . Thêm vào đó, cộng đồng luôn hữu ích và nhiệt tình . Hơn thế nữa, chúng ta có thể mong đợi rằng Flutter sẽ sớm cho phép chúng ta tạo ra không chỉ các ứng dụng di động mà cả các ứng dụng cho web và máy tính để bàn.

Đặt tất cả lại với nhau – và đưa ra các công ty hàng đầu như Alibaba đã sử dụng Flutter – tương lai có vẻ hứa hẹn cho bộ công cụ.

Đối với React Native – tốt, Facebook hiện đang tập trung vào một kiến trúc lại quy mô lớn của công nghệ .

Nhóm đang làm hết sức mình để cải thiện sự hỗ trợ cho cả người dùng React Native và cộng đồng rộng lớn hơn. Và nhờ vào điều này, cộng đồng giờ đây có thể dễ dàng đề xuất các thay đổi đối với các chức năng cốt lõi của framework thông qua quy trình RFC sử dụng repo GitHub chuyên dụng .

Tạo một môi trường mở để thảo luận về React Native là một bước quan trọng. Đó vừa là dấu hiệu của sự cải tiến liên tục vừa là tín hiệu cho tương lai tươi sáng của công nghệ.

React Native có một vị trí ổn định như vậy trên thị trường – và đang trên một quỹ đạo phát triển liên tục – không chắc chúng ta sẽ sớm thấy bộ công cụ bị bỏ lại trong bụi.

Tuy nhiên, Flutter là một đối thủ đáng gờm của React Native.

Khi nào nên chọn React Native và khi nào nên chọn Flutter

Cung cấp các dự án đúng thời hạn là một trong những khía cạnh quan trọng nhất của phát triển ứng dụng di động và web.

Bản chất đa nền tảng của cả React NativeFlutter giúp giảm thời gian tiếp thị . Thêm vào đó, các thư viện bên thứ ba và các thành phần sẵn sàng sử dụng của họ giúp sử dụng chúng hiệu quả hơn để xây dựng ứng dụng của bạn.

Vẫn tốt hơn, Flutter và React Native cung cấp nhiều hơn là chỉ phát triển nhanh chóng, họ cũng có thể giảm chi phí dự án.

Mạnh mẽ và đây là những lý do chính bạn nên xem xét một trong hai framework cho dự án của bạn. Nhưng giải pháp nào cung cấp thời gian phát triển nhanh nhất? Hoặc phù hợp với ý tưởng ứng dụng của bạn tốt nhất?

Chà, điều đó phụ thuộc vào chi tiết cụ thể của dự án của bạn và sự cân bằng các kỹ năng của nhóm bạn.

  • Các nhà phát triển của bạn có biết Dart không? Nếu có, thì lập trình với Flutter sẽ là một cuộc dạo chơi trong công viên.
  • Các nhà phát triển của bạn có thông thạo JavaScript không? Nếu có, thì React Native có vẻ là sự lựa chọn hợp lý.
  • Bạn có muốn xây dựng GUI của ứng dụng bằng các thành phần UI gốc không? Nếu có, chọn React Native.
  • Là thiết kế thương hiệu đầu tiên ưu tiên của bạn? Nếu có, chúng tôi đề nghị Flutter phù hợp với hóa đơn.

Hãy nhớ rằng mỗi ứng dụng là khác nhau, vì vậy bạn phải xem xét từng ứng dụng theo giá trị riêng của nó.

Nếu không có gì khác, hãy tự tin từ điều này: cả Flutter và React Native đều là những công nghệ rất tốt. Họ được hưởng lợi từ sự phổ biến lớn và niềm tin lâu dài.

Cảm ơn các bạn đã đọc và tham khảo bài này, nếu bạn thấy hay và hữu ích, xin vui lòng like fanpage cafedev để ủng hộ, Cảm ơn các bạn nhiều.

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!