Em muốn xây dựng một app để hỗ trợ cho website xây dựng bằng PHP thuần, thì nên sử dụng nền tảng gì? Xamarin có được không? Nếu xây dựng bằng Xamarin thì có trở ngại gì không? Có tốn phí không ạ.
Ngoài ra, nên sử dụng hyprid hay native là tốt hơn. Nếu native thì các template được xây dựng dựa trên gì ?
Muốn xây dựng một app để hỗ trợ cho website xây dựng bằng PHP thuần, thì nên sử dụng nền tảng gì?
Câu hỏi của bạn có một vài điểm không rõ, nên tôi cũng trả lời dựa theo một số giả định.
- Khi bạn nói về app, tôi nghĩ là bạn muốn nói đến các app cho smart devices (smart phones, tablet, …) - cụ thể trên nền iOS hoặc Android. Ngày nay, app có định nghĩa rất rộng, các ứng dụng cho Windows, Mac OS hay Linux cũng có thể được gọi là app. Cho nên, tôi giả định rằng bạn muốn viết app để việc truy cập vào Website của bạn thuận lợi hơn. Tuy nhiên, trong trường hợp này, app của bạn không phụ thuộc vào việc Website của bạn được viết bằng ngôn ngữ hoặc framework nào. Các app trên các thiết bị di động có kết nối với các Website chỉ quan tâm đến các endpoint/service do Website cung cấp (API, RSS …). Các endpoint/service này có thể được xây dựng bằng bất cứ ngôn ngữ hoặc framework nào có hỗ trợ cho lập trình Web (PHP, C#, Java, JavaScript, Python …)
- Việc sử dụng Xamarin là một ý tưởng để bạn không cần phải viết mã nhiều lần cho các ứng dụng trên các nền tảng di động khác nhau (tương tự như ý tưởng của Java và .NET). Theo tôi biết thì sử dụng Xamarin là miễn phí, nhưng để đưa app của bạn lên Google Play Store hay Apple App Store thì bạn vẫn phải trả tiền phát hành cho Google hoặc Apple. Các app viết bằng Xamarin dĩ nhiên là không thể so sánh với các native app về performance và trong một số trường hợp bạn sẽ gặp khó khăn nếu những chức năng hoặc các UI bạn cần không được hỗ trợ bởi Xamarin.
Bạn có thể tham khảo các ưu và khuyết điểm trong việc phát triển app bằng Xamarin tại đây: https://www.altexsoft.com/blog/mobile/pros-and-cons-of-xamarin-vs-native/
Thế còn vấn đề CSDL, khi dùng xamarin của .net thì dùng sqlServer sẽ khá thuận lợi. Nhưng để đồng bộ với CSDL của website thì có phải chúng ta cần dùng chung một CSDL? Nên vấn đề là ở website dùng nền tảng mysql và trên server hiện tại cũng chỉ hỗ trợ mysql ? Giải pháp là gì ?
Theo bạn, đồng bộ CSDL là gì? Thật ra trong trường hợp này, cái gọi là đồng bộ CSDL không tồn tại. Bạn sẽ không thể đem toàn bộ CSDL từ server của bạn vào trong một mobile app cho dù đó là MySQL, PostgreSQL hay SQLServer. Thành ra tình huống bạn hỏi không xảy ra. Trong thực tế, app theo ý của bạn chẳng qua chỉ là một user interface mà thôi, các dữ liệu mà nó đọc và ghi phải thông qua các endpoint của Website (Các lớp phía dưới của endpoint sẽ đảm nhiệm việc đọc và ghi dữ liệu từ CSDL). Nói cách khác, app của bạn cũng có vai trò tương đương như các Web page hay view trong mô hình MVC. Nếu bạn muốn đọc dữ liệu, app của bạn sẽ gởi request đến endpoint ở Web Server, nếu muốn ghi dữ liệu, app của bạn sẽ gởi dữ liệu cần ghi đến endpoint thích hợp trên Web Server của bạn. Thế thời.
vâng tks anh đã giải đáp ạ. Em sẽ tìm hiểu kỹ thêm ạ
Xamarin.Forms thì hiệu năng kém,
Xamarin.native thì bạn phải biết cả native cả C#.
Bạn có thể xem xét React Native vì cộng đồng sôi động hơn, thư viện phong phú hơn. code website thì có sẵn nền tảng js rồi, học tí React là code đc thôi.