NỘI DUNG BÀI VIẾT
Trong bài viết này, chúng ta sẽ tìm hiểu React Native là gì? Có nên học React Native không?
React Native được sử dụng để xây dựng ứng dụng dành cho thiết bị di động bằng JavaScript, nhưng cú pháp của nó trông không giống như JavaScript tiêu chuẩn. Cùng mình tìm hiểu xem nó có nên học React Native không nhé!
Giới thiệu
React Native là một Cross-platform Framework dùng để phát triển ứng dụng dành cho thiết bị di động đa nền tảng trên Android và iOS. Điều đó có nghĩa là chỉ với 1 code base, bạn đã có cho mình 1 ứng dụng chạy trên cả Android và iOS rồi thay vì phải đi code 2 ứng dụng như trước đây.
Nó dựa trên JavaScript Core Runtime và Babel. Với thiết lập này, React Native hỗ trợ các tính năng JavaScript (ES6+) mới nhất, ví dụ như Arrow Function, Class, Async/Await,…
React Native bắt đầu nổi tiếng về phát triển ứng dụng dành cho thiết bị di động vào mùa hè năm 2013 với tư cách là dự án hackathon nội bộ của Facebook. Bản xem trước công khai đầu tiên của nó được phát hành vào tháng 1 năm 2015 tại Hội nghị React.js và vào tháng 3 năm 2015, Facebook đã đưa React Native open-source và có sẵn trên GitHub.
Kể từ đó, nó đã được các lập trình viên và tổ chức áp dụng rộng rãi vì khả năng tạo ra các ứng dụng Native và giao diện người dùng tuyệt vời.
Vì vậy, bây giờ, bạn không nên ngạc nhiên bởi thực tế là nhiều ứng dụng chúng ta sử dụng ngày nay được xây dựng chủ yếu bằng JavaScript chứ không phải Java/Kotlin hoặc Objective-C/Swift. Một số trong số đó có thể kể đến như Facebook, Instagram, Ví điện tử MoMo,…
Vì chúng ta đã nói về React Native là gì nên bạn có thể nhầm lẫn về ý nghĩa của ‘Native App’.
Native App là gì?
Ứng dụng dành cho thiết bị di động Native App là những ứng dụng được tạo riêng cho hệ điều hành, trong trường hợp này là Android hoặc iOS. Để xây dựng một ứng dụng Native trên iOS, chúng ta sử dụng ngôn ngữ phát triển là Objective-C/Swift và đối với Android, chúng ta sử dụng Java/Kotlin.
ReactJS là gì?
Trước khi đi sâu và React Native, chúng ta nên biết về ReactJS là gì?
ReactJS là một thư viện JavaScript được tạo ra để xây dựng giao diện người dùng có khả năng tương tác tốt và nhanh chóng cho các ứng dụng web và di động. Nó là một thư viện mã nguồn mở, xây dựng dựa trên các component, giao diện người dùng chỉ chịu trách nhiệm cho tầng view của ứng dụng.
Đặc điểm nổi bật của ReactJS:
- Thư viện JavaScript dựa trên mã nguồn mở của Facebook
- Thư viên xây dựng giao diện người dùng
- Công cụ để xây dựng giao diện người dùng
React Native giống với ReactJS, tuy nhiên, nó sử dụng các Native Component thay vì Web Component. Bạn phải hiểu một phần về React cơ bản, như JSX (JavaScript XML), component, state, props để nắm được cấu trúc cơ bản của một ứng dụng React Native.
Tuy nhiên, nếu bạn quan tâm đến việc xây dựng ứng dụng trong React Native, việc học ReactJS là không bắt buộc. Và tất nhiên, những ai đã học qua ReactJS thì hoàn toàn có thể chuyển sang làm React Native.
React Native là gì?
Chúng ta đã trả lời một phần câu hỏi này ở đầu bài viết. Tuy nhiên, mình chưa đi tý nào về kiến trúc của React Native. Trong phần này, chúng ta sẽ tập trung vào cách hoạt động của React Native.
Hãy bắt đầu bằng cách xem xét ứng dụng React Native mặc định, như ứng dụng bên dưới.
import React from 'react';
import { Text, View } from 'react-native';
export default class Brainhub extends React.Component {
render() {
return (
What is React Native
);
}
}
Code language: JavaScript (javascript)
Tại sao cú pháp không giống JavaScript tiêu chuẩn
Nếu bạn là lập trình viên phát triển ứng dụng web, bạn sẽ chỉ quen thuộc với các tiêu chuẩn cũ hơn của JavaScript, một phần của đoạn mã trê n có thể sẽ không giống JavaScript mà bạn biết. ES2015 (tên gọi khác là ES6) là một sự cải tiến lớn cho JavaScript và hiện là một phần của tiêu chuẩn chính thức. ES6 không được các trình duyệt cũ hỗ trợ, đó là lý do tại sao nhu cầu sử dụng công cụ chuyển mã Babel gia tăng.
Xem thêm: Babel JS là gì? Tại sao phải dùng Babel JS?
Nhờ có trình biên dịch Babel, React Native đã hỗ trợ nhiều tính năng của JavaScript ES2015, vì vậy bạn có thể sử dụng công nghệ này mà không cần suy nghĩ về khả năng tương thích của nó với các thiết bị khác nhau.
Đây cũng là JSX, một kiểu để đóng gói XML bên trong JavaScript. Nó cho phép bạn viết mã của mình bên trong ngôn ngữ đánh dấu. Nó trông giống như HTML mà chúng ta sử dụng trong phát triển web, nhưng thay vì sử dụng div hoặc span, bạn sẽ sử dụng các React Native Component.
Một vài từ về các React Native Component
Đây là một ví dụ về hiển thị “React Native là gì”. Bất cứ gì bạn thấy trên màn hình điện thoại đều là Component.
Mỗi component như vậy ánh xạ tới các khối Native để biến ứng dụng React Native thành ứng dụng Android hoặc iOS. Giống như trong trường hợp này, <Text> được ánh xạ tới <TextView> trong Android và UILabel trong iOS.
Có nên học React Native không?
React Native, cũng như bất kỳ công nghệ nào khác đều có ưu điểm và nhược điểm của nó. Trước khi bạn quyết định liệu React Native có phù hợp với dự án cụ thể của bạn hay không, hãy xem đánh giá dưới đây.
Ưu điểm của React Native
Tiết kiệm thời gian
Ưu điểm chính của React Native là tiết kiệm thời gian. Ban đầu, nó giúp các lập trình viên không phải biên dịch lại với mỗi thay đổi, vì ứng dụng sẽ tải lại ngay trong giai đoạn cải tiến. Một lập trình viên Android có thể hiểu được sự đau khổ này.
Tiết kiệm nhân lực
Framework này cho phép tạo ra một code base duy nhất có thể được kết hợp cho iOS và Android. Nó cho phép lập trình viên đầu tư ít năng lượng hơn vào việc viết code.
Ngoài ra, các công ty có thể không tuyển lập trình viên React Native vì họ có thể tận dụng nguồn nhân lực từ lập trình viên ReactJS vì 2 Framework này tương tự nhau. Khi hiểu về 1 Framework thì ắt Framework còn lại sẽ nhai thì cháo.
Giao diện người dùng
React Native ra đời cũng vì mục đích nâng cao chất lượng về giao diện người dùng so với các ứng dụng Native. React Native cho khả năng custom cao, vượt trội so với giao diện của Native.
Nhược điểm của React Native
Gỡ lỗi
Đây là một quy trình phức tạp để gỡ lỗi một ứng dụng được xây dựng từ React Native. Bạn sẽ phải xem xét cách thức mà React Native tạo ra và thực thi nó.
Cấu hình
Đôi khi, việc điều phối thư viện local bên trong một ứng dụng React Native yêu cầu nhiều cấu hình. Ví dụ: một bản phác thảo trên Google Maps biến thành một công việc dài hơi trong khi chỉ mất một chút thời gian cấu hình trên ứng dụng Android Native.
Hiệu năng
Do chỉ với 1 code base mà có thể chạy trên cả 2 nền tảng nên việc tối ưu về hiệu năng của Framework này chưa thực sự hiệu quả. Mọi lập trình viên đều công nhận rằng các ứng dụng viết bằng React Native đều chậm hơn so với các ứng dụng Native thông thường.
Các đối thủ của React Native
Nếu như trước đây, Ionic và Cordova là một số Framework Hybird đối đầu, đụng độ với React Native. Thì giờ đây, chúng đang dần mất đi thị trường cạnh tranh bởi một Framework khác ra đời. Đó là Flutter, con cưng của Google.
Cũng giống như React Native, Flutter cũng là Cross-platform Framework. Tuy nhiên, do sinh sau đẻ muộn, Flutter đã tận dụng được những điểm yếu mà React Native có để phát huy. Cho đến hiện tại, mặc dù cộng động lập trình viên Flutter chưa nhiều so với React Native nhưng xét về tương lai, rất có thể Flutter sẽ đánh bại React Native ở Cross-platform Framework nếu React Native không có những cuộc cải cách lớn.
Hiện tại, nhu cầu của lập trình viên React Native vẫn tương đối lớn so rất nhiều ứng dụng đã và đang sử dụng React Native. Mức lương của lập trình viên React Native sẽ nhỉnh hơn nhiều so với Flutter hay Ionic. Có thể nói, khi nào Facebook đến ngày tận thế thì đó mới là ngày tận thế của React Native, còn Facebook, React Native vẫn còn bệ chống lưng một cách tin tưởng.
Kết luận
Trong bài viết này, chúng ta đã biết thêm về React Native, hiểu React Native là gì. Tương tự như React, bản thân nó là một thư viện JavaScript để xây dựng giao diện người dùng. Do đó, bạn cần phải học qua các công nghệ web như JavaScript, JSX và thậm chí là cú pháp CSS. Mặc dù có một chút phức tạp, React Native đã vượt qua mọi trở ngại, cuối cùng trở thành Cross-platform Framework được nhiều người sử dụng nhất.
Các bạn có thể tham khảo các bài viết hay về JavaScript tại đây.
Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.
TỔNG HỢP TÀI LIỆU HỌC LẬP TRÌNH CƠ BẢN CHO NGƯỜI MỚI BẮT ĐẦU
KHOÁ HỌC BOOTCAMP JAVA/PHP/.NET TRỞ THÀNH LẬP TRÌNH VIÊN TRONG 5-6 THÁNG