1. Nếu bạn biết JavaScript thì rất dễ học React

Tôi bắt đầu viết ứng dụng React Native đầu tiên của mình khi không hề có kinh nghiệm với việc phát triển ứng dụng mobile. Tôi chỉ đơn giản biết JavaScript và đó là điều kiện mà tôi cần để bắt đầu. Kể cả khi React là một khái niệm khá mới mẻ đối với tôi. Web developers có thể nâng cao kiến thức JavaScript của mình bằng cách viết ứng dụng React Native.

Tài liệu chính thức của Facebook về React Native rất hữu dụng và cung cấp một góc nhìn sâu sắc hơn về thành phần trong React Native và APIs.

Code bằng cách thực chiến, đó chẳng phải là cách hay và nhanh nhất sao?

2. Hot Reloading! Không phí thời gian compile lại

Đây là một trong những điểm ưa thích của tôi về ứng dụng React Native. Xuất phát từ Java nổi tiếng, điều này làm tôi thấy thú vị.

Hãy tưởng tượng rằng giữ lại trạng thái ứng dụng và ngồi nhìn nó reload khi bạn thay đổi. Nếu bạn đang làm việc ở các màn hình không phải màn hình chính, bạn sẽ phải chuyển cửa sổ bằng nhiều cái click chuột mỗi lần chỉnh sửa code.

Với Hot Reloading, bạn không cần phải phí thời gian chuyển từng màn hình để chắc chắn rằng code hoạt động. Trạng thái của ứng dụng được giữ lại và bạn sẽ hoàn toàn chứng kiến nó reload lại chỉ trong vài giây. Ý tưởng ở đây là giữ ứng dụng hoạt động và bất kì thay đổi nào trong lúc chạy sẽ được đưa lên mà không cần phải chạy lại ứng dụng.

Cmd + D và chọn "Enable Hot Reloading" để kích hoạt tính năng này.

3. React xây dựng ứng dụng từ Native (gốc)

Không như các framework khác như Cordova hầu như chỉ là Webview, React Native được dùng cho việc xây dựng các ứng dụng hoàn toàn Native. Webview không cung cấp UX như React Natives.

Đối với React Native các widget có sẵn đều là các thành phần Native, vì vậy mà tạo cho user một trải nghiệm liền mạch và quen thuộc. Điều này thực sự tạo nên sự khác biệt.

Điều này khá là ấn tượng vì bạn code bằng JavaScript, và kết xuất các thành phần Native như các nút bấm (button), date picker ... Đây là một trong các lý do mà ứng dụng xây dựng bằng React Native có UX vượt trội so với các framework dùng Webviews.

Một ví dụ đơn giản là hiển thị UI trên data picker widget ở iOS và Android. Cả hai data picker đều là widget của iOS hoặc Android.


Anroid datepicker – Widget gốc có sẵn


IOS datepicker – Widget gốc có sẵn

Có vài khía cạnh của React Native khiến cho code của developer dễ chịu hơn và chúng ta không cần phải làm lại mọi thứ. Không phải code thêm UI nào khác để khiến các thành phần Native kết xuất đa nền tảng.

4. Code một lần - chạy tốt trên Android và iOS

Ví dụ trước làm tôi nghĩ đến lý do quan trọng tiếp theo giải thích tại sao tôi thích làm việc với React Native – khả năng đa nền tảng.

Không cần phải biết Objective-C, Swift hoặc Java. Với JavaScript và JSX là có thể viết ứng dụng chạy tốt trên mọi nền tảng. Từ kinh nghiệm của tôi, 95% code được chia sẻ qua lại trên Android và iOS, với các tweak nhỏ để chỉnh sửa sản phẩm trên cả hai nền tảng. Không tuyệt sao? Bạn không cần phải có nhiều đội ngũ và codebase để hỗ trợ một app - đa nền.

Bạn chỉ cần một team và một codebase làm việc trên hai phiên bản iOS và Android của ứng dụng. Đây là chiến thắng lớn dành cho các công ty nhỏ tiết kiệm tiền và thời gian.
Dù tôi chưa thử nhưng React Native cũng hoạt động tốt trên Windows
 
Với React Native. Xây dựng ứng dụng bằng JavaScript trên mọi mặt trận.

5. Cộng đồng vững mạnh

Vài năm qua, React Native đã gặt hái nhiều tiếng tăm, có rất nhiều developer đóng góp khiến React Native tốt hơn từng ngày.

React Native Github repo là mã nguồn mở và có hàng nghìn người đóng góp hoạt động mạnh mẽ.

Có vài forum bàn luận về React Native bạn cũng có thể tham gia.
Stack Overflow cũng là nơi có rất nhiều tài nguyên và các câu hỏi được trả lời về React Native.

Cộng đồng rất đông và lớn mạnh. Nhiều vấn đề cũng đã được giải quyết và bạn có thể sẽ không thấy khó khăn khi phát triển ứng dụng.

Nói chung, tôi nghĩ React Native chắc chắn có một tương lai rạng rỡ trong việc phát triển ứng dụng đa nền tảng, ứng dụng gốc với UI là tâm điểm. Hy vọng rằng bạn sẽ thấy hứng thú và tạo nên một ứng dụng React Native của riêng bạn.

Bạn còn chần chừ gì nữa mà không bắt đầu tham gia vào việc phát triển ứng dụng mobile với React Native?