React Native là gì
React native cho phép xây dựng các
ứng dụng trên android và ios chỉ với một ngôn ngữ thống nhất là javascript
nhưng mang lại trải nghiệm native app thực sự. Không như các framework hybrid
khác (viết một lần triển khai nhiều nơi), React native tập trung vào việc một
lập trình viên làm việc hiệu quả trên môi trường đa nền tảng như thế nào.
React Native 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. Chỉ với một lập trình viên thành thạo javascript, bạn có thể chiến đấu
trên mọi mặt trận web, desktop, server và bây giờ là
mobile. Điều này không những có lợi cho lập trình viên web mà nó giúp cho các
doanh nghiệp phát triển sản phẩm đầu cuối với ít nhân lực hơn.
Khi xây dựng React Native, điều
tuyệt vời là đã được tích hợp tính năng Live Reload – tương tự tính năng Hot
Replacement Module trong Webpack. Tính năng Live Reload khác tính năng Reload,
trong khi Live Reload chỉ tải lại chức năng/tập tin nào thay đổi, thì Reload sẽ
tải lại toàn bộ mã nguồn. Ngoài ra, bạn cũng dễ dàng debug javascript trong
Chrome và Safari. Đối với những lỗi
thuộc Native thì phải cần đến XCode cho iOS hoặc Android Studio cho Android.
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 và phần xử lý.
Phần view hay phần hiển thị được
biên dịch từ javascript sẽ ánh xạ với những component của hệ thống, ví
dụ: điều hướng, tab, touch v.v. 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é.
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” 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
- Dùng ES2015/ES6 (bạn đọc thêm ở
bài ES2015 là gì): đây là cấu trúc mới cho Javascript từ 2015, vì khá là mới
nên những cấu trúc của nó có thể bạn chưa quen, dẫn tới việc khó khăn trong việc
tiếp cận.
- 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
CodeLean.vn
إرسال تعليق