Những điểm chết của React Native

Opensource:  React Native là một opensource framework và nó có rất nhiều các bộ thư viện. Càng can thiệp sâu vào phần lõi của thư viện càng mất thời gian, bởi vì tìm hiểu một platform không phải là điều dễ dàng, các thư viện có những cầu nối cho việc sử dụng maps, video… vậy ví dụ khi bạn sửa một chút thư viện liên quan đến map thì bạn phải hiểu về map trên cả Android và trên iOS thì mới sửa được. Vậy tìm được dev mà thật sự giỏi cả Android và iOS là rất khó, nếu chỉ giỏi một thứ thì thành phẩm sẽ là một kết quả thiếu tính thống nhất (inconsistent) giữa các nền tảng này.

Native Bridge: React Native có một số bridge API để giao tiếp giữa native và React Native, trước khi sử dụng chúng ta phải khai báo trên cả 3 môi trường (Android, iOS, web), nếu khai báo không chính xác thì một trong 3 môi trường sẽ crash. Nó dần dần quá phức tạp trong việc thiết lập và cần phải đảm bảo thiết lập là chính xác.

Parallel Infrastructue: Trong khi Andoird và iOS đã đi được một quãng đường khá dài (cả chục năm) các kỹ sư đã quá quen với việc xử lý parallel trên 2 nền tảng này, giờ họ phải chuyển qua React Native là họ phải bắt đầu lại và thoạt đầu họ nghĩ React Native đã wrapped toàn bộ phần xử lý parallel và chỉ việc gọi API ra là có thể dùng được, thế nhưng khi họ cần một vài functions mang tính tùy biến hơn thì nó lại không tồn tại và buộc họ phải viết mới, công việc là cần tạo ra các cầu nối (bridges) thứ mà họ vốn không quen, và họ đã tốn khá nhiều thời gian vào những công việc như vậy. Công việc thì phải tạm dừng cho tới khi chiếc cầu nối được tạo ra….

Crash Monitoring: Giám sát lỗi là một công việc mà bất kỳ một hệ thống nào cũng cần phải làm, có rất nhiều thư viện với Airbnb thì họ sử dụng Bugsnag để report lỗi cho Android và iOS, nó đôi khi không đáng tin cậy (kiểu có mà như không) đôi khi nó hoạt động tốt cho iOS nhưng lại không hoạt động trên các nền tảng khác. Và họ đã bỏ xót rất nhiều lỗi vì họ không thấy chúng trong các báo cáo.

Initialization Time: Quá trình render cho lần đầu tiên là quá lâu, và phải khởi tạo trong lúc runtime. Thật không ổn khi nó mất vài giây cho cả những thiết bị có cấu hình mạnh.

64bit: không thể đưa một APK 64bit lên Android bởi vì vấn đề này

Upgrading React Native: Có rất nhiều bản cập nhận gặp vấn đề, cụ thể là bản React Native 0.43(April 2017) và bản 0.49(Oct 2017) gần như không thể sử dụng được React Native. Nó có thể là một vấn đề nghiêm trọng và các React Native app gần như không thể hoạt động.

Accessibility: Airbnb muốn hỗ trợ người khuyết tật có thể dùng ứng dụng của họ để đặt phòng vào năm (2017) họ đã tìm đủ mọi cách để làm một thanh công cụ hỗ trợ, và họ phải viết ra cả một thanh công cụ riêng gọi là có thể chấp nhận được. Và họ phải tự maintain thanh công cụ này khi có một version mới tung ra nhằm fix một vài vấn đề họ phải merge các fixes này. Họ phải mất nhiều ngày mới có thể tìm ra được vấn đề và fix nó, sau khi fix họ phải theo dõi nó nhiều tuần để đảm bảo không có impact gì.

Nguồn: Internet

By: Jaime

Please follow and like us:

Leave a Reply

Your email address will not be published. Required fields are marked *