Số 42, ngõ 178 Thái Hà, Đống Đa, Hà Nội
0985 136 895

React Native là gì? Cái nhìn cơ bản nhất về React Native

Sự phát triển về CNTT ngày càng khủng khiếp. Những công nghệ mới đã và đang làm thay đổi thế giới một cách nhanh chóng. Kèm theo đó là số lượng người dùng di động (smartphone) tăng lên chóng mặt. Và React Native đang thực sự là một cơn sốt với gần 70k sao và 15,5k fork trên github. Đó là một số rất ấn tượng. Ở bài viết này Vicoders chỉ đưa ra những cái nhìn cơ bản nhất về React Native cũng như vị thế của nó trong lập trình ứng dụng di động hiện nay.

"<yoastmark

React Native là gì?

React Native là framework xây dựng ứng dụng di động native sử dụng Javascript  được tạo bởi Facebook. ReactNative cho phép các Dev sử dụng JavaScript để xây dựng ứng dụng iOS và Android.

Một ví dụ để làm rõ cách vận hành của RN là wrapper của code native. Có rất nhiều thành tố được tạo nên khi đang wrapping – “bọc” chức năng native của iOS hoặc Android. React Native đã đạt được rất nhiều traction kể từ ngày ra mắt vì nó đã thay đổi game về mặt cơ bản theo nhiều cách.

Để hiểu rõ về React Native là gì, chúng ta cần phân biệt sự khác nhau giữa ứng dụng Native và Hybrid.

Ứng dụng Hybrid

Hybrid App là sự kết hợp giữa ứng dụng Web và ứng dụng mobile.

Là chương trình phần mềm  trên điện thoại di động được viết dựa trên nền tảng web (html5, css3, javascript), bản chất hoàn toàn là ứng dụng web nhưng có thêm được các tính năng thao tác phần hệ điều hành như tập tin, truy cập máy ảnh, GPS hoặc các cảm biến như con quay hồi chuyển, gia tốc kế…

Nhược điểm của Hybrid App đó chính là vấn đề hiệu năng sẽ bị ảnh hưởng đáng kể cũng như không tương tác được hết những tài nguyên hệ thống phần mềm cũng như phần cứng.

Vì vậy, mà Native App là sự lựa chọn hàng đầu của giới lập trình trong việc phát triển phần mềm di động bởi vì nó mang lại hiệu năng cao, trải nghiệm người dùng tốt.

Ứng dụng Native

Native App là các ứng dụng được phát triển và build trên chính những công cụ hỗ trợ mà nhà phát triển iOS và Android cung cấp cho người lập trình viên ở đây là XCode và Android.

Ví dụ với iOS là Objective-C, Swift và Android là Java, Window phone là C++ hoặc C#.

Các ứng dụng Native được build dựa trên ngôn ngữ của chính hệ điều hành. Và sử dụng những tính năng sẵn có của hệ điều hành mà không phải thông qua bất cứ ứng dụng bên thứ ba. Hay engine nào khác để vận hành nên tốc độ là nhanh nhất.

Tốc độ ở đây bao gồm tốc độ hiển thị (độ mượt), và tốc độ xử lý. Nếu để ý kỹ bạn sẽ thấy các thao tác của ứng dụng native như chuyển trang, điều hướng, cuộn trang đều rất mượt. Với việc hơn hẳn về tốc độ xử lý. Nên ứng dụng RN  có thể làm được ứng dụng nặng đồ hoạ như game. Còn hybrid vẫn có thể làm được nhưng không mượt mà. Nên hầu như hiếm ai dùng hybrid cho lập trình game cho điện thoại di động. Ngoại trừ một số game đơn giản như xếp hình, giải câu đố, 2048…)

Cách hoạt động của React Native

Ứng dụng viết bằng React Native được chia làm 2 phần: phần view (hiển thị) và phần xử lý.

  • Phần hiển thị được biên dịch từ javascript sẽ map với những component của hệ thống. Ví dụ: điều hướng, tab, touch… Phần view này được lấy cảm hứng từ Virtual DOM của React JS. Mọi xử lý view được thực hiện trên một cây DOM ảo, sau đó được React Native render lại bằng native view.
  • Phần xử lý vẫn được thực hiện trực tiếp bằng ngôn ngữ javascript. Ví dụ “1+1=2” biểu thức này được xử lý dưới bộ core thực thi Javascript. Không phải thông dịch qua Java hay Swift/Objective-C rồi mới làm phép tính đâu nhé.

"<yoastmark

Ưu và nhược điểm của React Native

Sẽ không có cái gì gọi là hoàn hảo cả RN cũng vậy. React Native cũng giống như các Framework khác cũng có những ưu nhược điểm riêng

Ưu điểm của React Native

  • Các thao tác của ứng dụng native như chuyển trang, điều hướng, cuộn trang đều rất mượt.
  •  Hiệu quả về mặt thời gian khi mà bạn muốn phát triển một ứng dụng nhanh chóng.
  •  Hiệu năng tương đối ổn định.
  • Cộng đồng phát triển mạnh.
  • Tiết kiệm tiền.
  • Ứng dụng tin cậy và ổn định.
  •  Xây dựng cho nhiều hệ điều hành khác nhau với ít native code nhất.
  • Trải nghiệm người dùng tốt hơn là hybrid app.
  •  Giúp cho lập trình viên web có thể viết ứng dụng native để khắc phục các điểm yếu của ứng dụng web và hybrid.

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

React Native là một giải pháp tuyệt vời cho phát triển ứng dụng trên điện thoại di động. Tuy nhiên đến thời điểm hiện tại, vẫn còn tồn tại một số khuyết điểm:

  • 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 hỗ trợ Window Phone: đây sẽ là điểm trừ lớn nếu so với ứng dụng hybrid. Tuy nhiên, nếu bạn chỉ tập trung cho iOS và Android thì tất nhiên đây không phải là vấn đề lớn.
  • 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”. Không nên dùng để viết game có tính đồ họa và cách chơi phức tạp

Nói gì thì nói React Native cũng được giới lập trình mobile gọi là tương lai của ứng dụng di động.

Kết luận

Giờ đây mọi thứ từ web app, mobile app, desktop app, server đều chỉ cần bạn biết JS là có thể làm được. Đặc biệt nếu bạn đam mê front-end chỉ cần bạn biết thêm ReactJS là bạn có thể thiết kế được front-end cho web app, mobile app một cách thuận tiện nhất.

Học React Native mở ra cơ hội cơ hội việc làm rất nhiều cùng với cộng đồng hỗ trợ rất mạnh mẽ và đông đảo áp đảo so với những công cụ lập trình di động đa nền tảng khác hiện nay. Dẫn chứng là rất nhiều app nổi tiếng hiện nay đều được xây dựng dựa trên React Native. Ví dự như: Facebook, Instagram, Airbnb, Skype, Tesla, Walmart, Discord.

Leave a comment