Tìm hiểu về React Native

React Native là gì?

React Native là một framework được phát triển bởi facebook với mục tiêu là phát triển ứng dụng di động đa nền tảng (Android, IOS, UWP).

React Native rất phù hợp với các lập trình viên (Web Developer) bởi React Native sử dụng javascript để  phát triển các ứng dụng di động đa nền tảng.

Một vài ứng dụng lớn sử dụng React Native như: Facebook,Instagram, Uber Eats, Skype ….

React Native hoạt động như thế nào?

Ứng dụng React Native được chia thành 2 phần: phần view(Main Thread), phần xử lý (JS Thread)

  • Main Thread: cập nhật giao diện người dùng (UI) và xử lý tương tác người dùng.
  • JS Thread: Thực thi code javascript.

Hai luồng Main Thread và JS Thread hoạt động độc lập với nhau. Hai Thread sẽ tương tác với nhau nhờ một Bridge(cầu nối). Chiếc cầu nối này sẽ chuyển đổi dữ liệu qua lại giữa các Thread.

Những khái niệm liên quan cần biết.

Native app

Đây là tên gọi dành cho những ứng dụng gốc được xây dựng và phát triển bằng công cụ do chính nhà phát triển cung cấp cho lập trình viên(developer).

Ví dụ:

  • Android được xây dựng trên Android Studio và được viết trên ngôn ngữ lập trình là Java hoặc Kotlin
  • Ios được xây dựng trên Xcode và được viết trên ngôn ngữ lập trình là Swift hoặc Objective-C

Hybrid App

Đây là ứng dụng lai. Ứng dụng này là sự kết hợp hoàn hảo giữa những ưu điểm của Native App và Mobile  Web. Ứng dụng này cũng giống với hầu hết những ứng dụng khác dành cho điện thoại di động.

Chúng được cài đặt trên điện thoại để bạn có thể chụp ảnh, kết nối với bạn bè thông qua các mạng xã hội, chơi game giải trí hay nhiều chức năng hữu ích khác.

Cross Platform

Cross Platform hay còn được gọi là Multi Plaform là thuật ngữ để chỉ những ứng dụng đa nền tảng. Trong khi các ứng dụng gốc tốn quá nhiều phí để xây dựng trọn bộ ứng dụng trên tất cả các nền tảng thì với Cross Platform, mọi thứ đều có thể giải quyết. Lập trình viên chỉ cần lập trình một lần và biên dịch hoặc phiên dịch ra thành nhiều bản Native App tương ứng với từng nền tảng khác nhau.

Tổng quan ưu nhược điểm về React Native

Ưu điểm

Có thể tái sử dụng code

React Native cho phép các developer có thể tái sử dụng code trong khi phát triển các ứng dụng đa nền tảng. Đặc biệt, developer có thể tái sử dụng hầu như 80-90% các đoạn code thay vì phải viết và tạo các ứng dụng riêng biệt cho các nền tảng khác nhau.

Ưu điểm này giúp người dùng:

  • Tiết kiệm thời gian và giảm chi phí phát triển của một ứng dụng.
  • Tận dụng nguồn nhân lực tốt hơn
  • Duy trì ít code hơn, ít bugs hơn
  • Các tính năng trong cả 2 platforms cũng tương tự nhau.

Cộng đồng người dùng lớn

React Native được đánh giá là một trong những Framework được yêu thích nhất (khảo sát của stack overflow vào năm 2019).

Nhờ cộng đồng người dùng rất lớn trên toàn thế giới, bạn có thể tìm sự hỗ trợ nếu gặp phải bugs.

Tính ổn định và tối ưu

Được phát triển bởi Facebook, React Native có hiệu năng ổn định khá cao.

  • Code React Native giúp đơn giản hóa quá trình xử lý dữ liệu.
  • Đội ngũ phát triển ứng dụng lớn.
  • Xây dựng ứng dụng ít native code nhất cho nhiều hệ điều hành khác nhau.
  • Trải nghiệm người dùng tốt hơn khi so sánh với ứng dụng Hybrid.

Nhược điểm

  • Hiệu năng kém hơn so với Native App.
  • Vẫn còn thiếu các component view cho Android: Map, Modal, Slider, Spinner hoặc các module như Camera Roll, Media, PushNotificationIOS.
  • Không build được ứng dụng iOS trên Window và Linux : tất nhiên đây không phải là điểm yếu kém của bản thân React Native, mà đó là do yêu cầu từ Apple.
  • React Native không thể build được ứng dụng “quá phức tạp” nếu bạn không biết Swift/Objecive-C, Java – tính phức tạp ở đây là ứng dụng của bạn cần phải chỉnh sửa các component. Bạn nên nhớ là để viết được 1 ứng dụng native bằng javascript “luôn luôn” có sẵn các component đã được viết từ Swift/Objective-C (iOS) và Java (Android) với tính chất 1-1. Trường hợp bạn muốn chỉnh sửa 1 component nào đó: thay đổi thành phần hoặc thêm API thì bạn phải “tự viết” bằng chính ngôn ngữ tương ứng của iOS hoặc Android. Tin vui cho bạn là cũng nhiều lập trình viên khác đã viết nhiều component cần thiết cho hầu hết ứng dụng (đây cũng là lý do vì sao Facebook biến React Native thành mã nguồn mở)
  • Không nên dùng để viết game có tính đồ họa và cách chơi phức tạp
  • Bạn có thể phải mất nhiều thời gian để theo hết hệ sinh thái của React, tuy nhiên tất cả là để làm cho đời lập trình viên fullstack đẹp đẽ và những sản phẩm chất lượng hơn, bao gồm: React Js, React Native, Flux, Relay, GraphQL. Bạn không cần phải quan tâm những thứ này chỉ để viết ứng dụng với React native

Xin chào

Hi mn mình là baladken đây. Hiện tại mình là một “Nhặt trình viên” à nhầm là một “Lập trình viên” chân chính.

About Baladken

FullName: Nguyễn Minh Phương

DOB: 1999

Born: Lập Thạch – Vĩnh phúc

Phone: 0334924xxx
Email: phuongnmd00539@fpt.edu.vn