Xây dựng app trên mobile thì lựa chọn nền tảng Xamarin, React Native, Flutter, hay Android Studio và X Code?

Chào anh e, mình đến từ công ty Subiz. Tình hình là bên công ty mình đang muốn xây dựng một app trên mobile nhưng đang rất phân vân không biết lựa chọn nền tảng nào cho phù hợp khi mà đang có quá nhiều lựa chọn. Ứng dụng này bên mình mong muốn sẽ phát triển lâu dài chứ không chỉ làm xong rồi để đấy, anh em nào có kinh nghiệm làm việc với nhiều nền tảng rồi thì có thể chó ý kiến nhé. Cảm ơn anh em.

Yêu cầu quá chung chung không hình dung được app như thế nào khó mà trả lời chính xác được.
Ứng dụng lâu dài + scope lớn + có tiền thì nên làm native.
Muốn tiết kiệm cost thì xài hybrid.
Còn cụ thể nền tảng nào thì tuỳ vào resource của bạn đang có, thành thạo cái j thì làm cái đó thôi.

1 Like

Cảm ơn bạn, về cơ bản thì mình vẫn muốn làm native hơn là đa nền tảng vì app này cần hỗ trợ lâu dài. Nhưng app thì lại không quá phức tạp nên đang phân vân chỗ đó, sợ là Xamarin hoặc RN có nhiều cái nó không hỗ trợ được như native thì hơi mệt.

vậy có vẻ react-native hay nativescript phù hợp hơn nhỉ, vì ko quá phức tạp như bạn nói
P.S : quên thằng này https://flutter.io/ hàng google beta

RN minh chua lam thi khong biet.
Nhung xamarin thi 99% la support het. Ban khong can phai qua lo dau.

Tuỳ vào dev bên bác quen với stack nào, nếu chủ yếu bên web thì có thể lựa chọn React Native.
Nếu có mobile dev (iOS, Android) + có tiền => Native

Cá nhân mình vẫn ưu tiên native.

1 Like

cross platform là nhất thời, native là mãi mãi - said stranger

1 Like

Tiêu đề mình ghi rõ có Flutter rồi mà, thằng đó dùng Dart, thấy cái ngôn ngữ đấy được khen nhiều.

app khủng là khủng về data thôi, mà data từ phía server side rồi
flutter có vẻ hứa hẹn nhưng lại xài dart thiệt khổ tâm. còn beta nữa ko biết đổi thay gì ko, thời này lập trình viên mắc hơn server

Riêng React Native:

Mình nhớ Tiki có bài blog nói về vấn đề global state của React. Do immutable nên thay đổi có chút trong state mà phải tạo lại nguyên cục global state, bị delay tác vụ. Cuối cùng chia global state thành local state độc lập. Do vì dùng Redux lib sẵn nên các local state vẫn phải tạo mới mỗi khi có thay đổi nhỏ.

Vấn đề thứ 2 trong state management của React ecosystem là quản lý ui state, sinh rất nhiều boilterplate để sync cho UI state. Có thể giải quyết bằng MobX, nhưng lại tăng dung lượng app.

Công nghệ nào cũng có 2 mặt cả. Bóc phốt React Native xíu.

2 Likes

Native thì vẫn là nhất rồi, mình cũng nghiêng về Native mà nhưng chưa biết sao :smiley:

Cái đấy chắc phải năm sau mới có bản chính thức, beta chỉ để tham khảo thôi chứ code sản phẩm thật thì chắc là không chơi

Mình nghĩ vấn đề ko nằm ở React Native mà nằm ở phương pháp quản lý state của đội dev thôi.

Đồng ý là app lớn nếu dùng Redux global state sẽ gây nặng vì mỗi khi gọi thì reducer sẽ clone lại toàn bộ sate và thay thế 1 mẫu dữ liệu mới.

Nhưng nếu biết kết hợp giữa local state (setState và Redux store), cái nào cần local thì local, cái nào cần golbal thì global thì sẽ ko đến nỗi như vậy.

Về UI state thì bạn có thể cho 1 ví dụ về boilerplate không?

Mình chưa dùng MobX nhưng theo suy nghĩ thông thường, đó là 1 JS lib, sau khi minify, uglify thì tầm vài trăm Kb là hết cỡ, ko thể là 1 nỗi lo cho 1 app trung bình vài Mb đến hơn chục Mb được.

2 Likes

Sau tất cả cuối cùng thì mình đã chọn React Native để làm sản phẩm cho công ty. Cũng không đến nỗi nào nhưng đúng là so với Native thì nó lởm hơn thật, nhiều lỗi và rất ít thư viện hỗ trợ, cách tổ chức code cũng không được chặt chẽ, nói chung là có rất nhiều nhược điểm, khuyên anh em nếu có thể làm được Native thì cứ làm, chớ nên chơi loại đa nền tảng này làm gì. :slight_smile:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?