Chuyển đổi ứng dụng native 13 năm tuổi sang React Native
(ridicorp.com)Câu chuyện về những trải nghiệm mà Ridibooks đã trải qua trong quá trình chuyển từ ứng dụng native sang React Native
- Lý do chọn React Native
-
Trước đây, việc khám phá nội dung và thanh toán được thực hiện trên web còn ứng dụng chỉ dùng làm trình đọc, nhưng công ty đã quyết định đưa cả tính năng khám phá và thanh toán vào trong ứng dụng. Để phản ứng nhanh với thay đổi và đạt mục tiêu trong thời gian được giao, họ quyết định áp dụng công nghệ cho phép phát triển đa nền tảng
-
Trong lúc cân nhắc giữa Flutter và React Native, họ chọn React Native vì cộng đồng ổn định và hoạt động sôi nổi hơn đôi chút
- Nền tảng native vs nền tảng React Native
-
Họ đã cân nhắc giữa việc đặt React Native lên trên ứng dụng native hay ngược lại là đặt native lên trên React Native
-
Nếu đặt React Native lên trên native, endpoint theo từng màn hình sẽ khác nhau và việc quản lý vòng đời ứng dụng trở nên phức tạp
-
Nếu đặt native lên trên React Native, mã native hiện có phải được chỉnh sửa một lần để tương thích với React Native. Về lâu dài, cuối cùng vẫn sẽ phải viết lại hoàn toàn bằng React Native
-
Dù sao thì phần lớn chức năng cũng dự kiến sẽ được chuyển sang React Native, nên họ quyết định đi theo hướng đặt native lên trên React Native
- Tái sử dụng màn hình native
- Để phản ứng nhanh với thay đổi trong thời gian được giao, họ quyết định viết các màn hình mới bằng React Native và giữ nguyên các màn hình cũ bằng native (các màn hình native sẽ được chuyển dần sang React Native)
- Tái sử dụng mã native
-
Liệu có thể đưa tinh hoa của native mà Ridibooks đã tích lũy suốt 13 năm bảo trì vào React Native hay không? Họ đã kiểm chứng xem các phần đang dùng Swift và Kotlin trong ứng dụng native hiện có có thể được dùng nguyên vẹn trong React Native hay không
-
Có thể tiếp tục dùng theo cách cũ bằng cách tạo bridge
- Những khó khăn trong quá trình áp dụng
-
Kích thước bundle và mức sử dụng bộ nhớ tăng lên
-
Kích thước bundle nằm trong mức dự đoán, nhưng bộ nhớ thì tệ hơn nhiều. Họ phải đặc biệt chú ý đến việc tối ưu hóa.
-
Khó có thể hoàn toàn tin tưởng vào thư viện bên thứ ba
-
Không thể xem nhẹ cả phía native lẫn frontend. Lập trình viên native cần tìm hiểu phát triển frontend, còn lập trình viên frontend cũng cần tìm hiểu phát triển native. Sự trao đổi giữa hai bên là chìa khóa thành công.
- Vì sao React Native lại tốt
-
Năng suất cao
-
Là nền tảng thuận lợi cho cộng tác
Nhờ React Native, họ đã đạt được lộ trình sản phẩm trong thời gian được giao, đồng thời xây dựng được môi trường và năng suất để phản ứng nhanh với thay đổi. Trong tương lai, họ dự định sẽ chính thức chuyển các phần native sang React Native. Tuy nhiên, vì trình đọc tích lũy know-how trong suốt 13 năm nên phần này sẽ tiếp tục được duy trì để mang lại trải nghiệm người dùng tốt nhất.
11 bình luận
Tôi không rõ bạn đã từng thử tìm kiếm từ khóa trên Google Trends chưa, nhưng hệ sinh thái RN gần như đang chết dần. Trong khi đó, Flutter lại đang tăng trưởng bùng nổ. Tham khảo thêm thì tôi là một lập trình viên native.
Từ góc nhìn của người dùng, có vẻ ứng dụng desktop hoạt động kém hơn so với phiên bản trước. Trước đây khi chuyển trang hầu như không cảm nhận được độ trễ, nhưng dạo gần đây nó cứ liên tục bị giật lag.
Giá mà bản desktop có làm nổi bật một chút... Không biết có phải vì vấn đề bản quyền gì đó nên không làm được không, hmm.
Làm ơn hãy quan tâm thêm cả ứng dụng desktop nữa, đừng chỉ mỗi ứng dụng di động thôi.. hu hu
Từ góc độ một người đã dùng ứng dụng desktop của Ridibooks trong thời gian dài, tôi thấy khá tiếc vì quyết định này dường như được đưa ra với suy nghĩ hoàn toàn chỉ nhắm đến di động. Không chỉ riêng tôi, mà hầu như ai dùng ứng dụng desktop cũng đều bị hành hạ bởi các lỗi kéo dài liên tục... (còn nghiêm trọng hơn cả ứng dụng nền tảng Qt ngày xưa)
Tôi đã nghe xung quanh mình rất nhiều lời than phiền về các vấn đề của ứng dụng desktop..
Tôi cũng không phải là người trực tiếp phát triển, nhưng khi thấy cộng đồng mà tôi tham gia ca ngợi Flutter nên đã nói chuyện với một anh/chị lập trình viên app ở công ty, thì anh/chị ấy lại thích React hơn. Anh/chị ấy nói rằng hệ sinh thái nền tảng và cả thị trường tuyển dụng đều tốt hơn. Tôi cũng muốn nghe thêm ý kiến của những người khác.
Native đang phát triển với tốc độ cực nhanh, nên mấu chốt sẽ là liệu RN có theo kịp tốc độ đó hay không
Vậy còn Flutter thì tương đối thế nào với câu hỏi này?
Có lẽ Android thì vẫn ổn như nhau, nhưng tôi không biết liệu có thể theo kịp iOS hay không.
Tôi nghĩ không nên xem nhẹ chi phí của entropy phát sinh do việc hợp nhất.
Khoảng 2~3 năm trước tôi đã phát triển và ra mắt bằng React Native...
Cá nhân tôi thấy nhược điểm nhiều hơn ưu điểm..
https://m.blog.naver.com/PostView.naver/…
Tôi đã gần như không còn quan tâm nhiều nữa... nhưng xem ra độ phổ biến vẫn còn nguyên.