React Native là gì
React native là
một framework cho phép các
lập trình viên xây dựng các ứng dụng native mà chỉ sử dụng ngôn ngữ lập trình javascript.
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
Đăng nhận xét