Tôi muốn phát triển một ứng dụng cho cả thiết bị Android và iOS. Có cách nào để phát triển ứng dụng một lần và triển khai trên cả hai? Hay là phải phát triển cho từng nền tảng riêng biệt?Android & iOS: Cách phát triển cho cả hai?
Trả lời
Nếu bạn muốn các ứng dụng cung cấp trải nghiệm gốc, khi đó bạn sẽ phải viết các ứng dụng riêng biệt.
Tôi nghĩ rằng nơi tốt nhất để bắt đầu là với một phiên bản web thực sự tốt đẹp được tối ưu hóa cho các trình duyệt di động. Tôi nghĩ rằng các ứng dụng web đẹp nhất là tốt hơn nhiều ứng dụng gốc, nhưng chúng không cạnh tranh với các ứng dụng gốc tốt hơn.
Ngoài ra còn có một số tùy chọn như Titanium hoặc PhoneGap, loại hệ thống web/gốc hỗn hợp, họ sử dụng công nghệ web để tạo ứng dụng gốc.
Vâng, bạn có http://monotouch.net và http://monodroid.net. Bằng cách đó bạn có thể có logic kinh doanh thông thường và chỉ tái phát triển giao diện người dùng của mình.
Rất nhiều ứng dụng di động chỉ trình bày thông tin và có rất ít logic nghiệp vụ. – mikerobi
Tất cả phụ thuộc vào loại ứng dụng bạn muốn phát triển. Nếu đó là một trò chơi, tôi đề nghị bạn viết hầu hết nó như là mã nguồn gốc, và tận dụng lợi thế của thực tế là OpenGL ES 2.0 được hỗ trợ nguyên bản trên cả hai nền tảng. Rõ ràng tất cả mã Java của bạn sẽ không thể tái sử dụng được trên iOS, vì vậy bất kỳ thứ gì có thể được tạo thành thư viện gốc di động đều giúp giảm số lượng mã không thể sử dụng lại được.
Codename One là một phiên bản khác, để phát triển Java trên cả hai nền tảng. Không có kinh nghiệm với nó, mặc dù.
Nếu đó là trò chơi hoặc ứng dụng đồ họa chủ yếu, BatteryTech Engine sẽ làm những gì bạn muốn. Yo vẫn cần XCode để xây dựng cho iOS, nhưng nếu không thì đó là một codebase chính duy nhất cho cả hai nền tảng.
Sử dụng Qt, là khung công tác đa nền tảng C++ có cả LGPL và giấy phép thương mại, bạn có thể phát triển cho cả hai nền tảng và chỉ cần biên dịch lại ứng dụng của bạn từ cùng một nguồn. Là một phần thưởng, bạn có thể nhắm mục tiêu Windows, Linux và Mac.
Tuy nhiên, hãy nhớ rằng Qt hiển thị các điều khiển riêng, vì vậy tiện ích con sẽ không trông giống như trên Android hay trên iOS. Ngoài ra, cũng như với tất cả các nền tảng đa nền tảng, nó sẽ cung cấp cho bạn mẫu số chung thấp nhất về mặt tính năng.
Với Qt bạn có thể phát triển thực sự ứng dụng đa nền tảng đó sẽ làm việc trên máy tính để bàn, nhúng và nền tảng di động. Qt 5.2 giới thiệu hỗ trợ đầy đủ cho các nền tảng Android và iOS và do đó cho phép tạo ra các ứng dụng di động đa nền tảng được đóng gói và triển khai cho cả Google Play và App Store từ một cơ sở mã. Thay vì viết hai phiên bản của cùng một mã với hai công nghệ khác nhau, bạn có thể viết nó một lần với Qt!
App Store của Apple có thể không chấp nhận ứng dụng sử dụng dylibs, tuy nhiên, mà có thể force you to use the commercial license cho các ứng dụng mã nguồn đóng:
Trên iOS chúng ta có thể sử dụng một phiên bản tự động liên kết các thư viện Qt, và đưa chúng đi kèm với ứng dụng. Điều này cho phép ứng dụng sử dụng giấy phép LGPL cho Qt trong khi cho phép ứng dụng tự đóng nguồn. Nó vẫn còn để được nhìn thấy cho dù Apple sẽ chấp nhận các ứng dụng bó dylibs vào iOS App Store.Nếu Apple không chấp nhận các ứng dụng sử dụng dylibs đi kèm vào App Store, thì sẽ cần phải liên kết Qt tĩnh với ứng dụng. Và khi cổng Qt cho iOS sử dụng phiên bản QPL của LGPL, các quy tắc liên kết tĩnh với LGPL sẽ khởi động - điều này có thể là một vấn đề đối với các ứng dụng nguồn đóng.
Cuối cùng, vì Qt là khung công tác C++ nên bạn cần sử dụng C++ để phát triển ứng dụng của mình.
Tôi bắt đầu sử dụng NativeScript và có vẻ đầy hứa hẹn.
NativeScript là cách bạn xây dựng ứng dụng gốc trên nền tảng, iOS và Android không có lượt xem web. Sử dụng Angular, TypeScript hoặc JavaScript hiện đại để có được giao diện người dùng và hiệu suất thực sự thuần túy trong khi chia sẻ các kỹ năng và mã với web. Nhận 100% quyền truy cập vào API gốc thông qua JavaScript và sử dụng lại các gói từ NPM, CocoaPods và Gradle. Mã nguồn mở và được hỗ trợ bởi Telerik.
Có rất nhiều lựa chọn. Nó phụ thuộc nếu bạn muốn có trải nghiệm Native hoặc nếu bạn muốn mọi thứ ở trong chế độ xem web. Với kinh nghiệm bản địa, bạn có thể phải làm một số mã nguồn gốc, nhưng nó vẫn còn cách tốt hơn so với việc phát triển 2 ứng dụng gốc riêng biệt.
Dưới đây là một số trải nghiệm mà tôi có.
Native Kinh nghiệm
- Nativescript + Angular (miễn phí)
- Xamarin (giá phụ thuộc vào những gì bạn đang làm)
- React Native (miễn phí)
Webview
Tôi đã sử dụng rất nhiều cross-nền tảng trong vài năm qua, và theo quan điểm của tôi Xamarin là tốt nhất vì khi kết thúc nó, bạn có thể nói nếu ứng dụng là nền tảng chéo hay không. nhưng với Xamarin nó biên dịch thành bản địa, do đó không có sự khác biệt rõ ràng giữa chúng về UI. Bạn có thể bắt đầu tại đây: https://www.xamarin.com
- 1. Phát triển ứng dụng cho cả iPhone và Android
- 2. Bắt đầu trên iOS - dành cho nhà phát triển Android?
- 3. Phát triển ứng dụng iOS cho Cydia
- 4. Clojure Phát triển iOS
- 5. Phát triển Android/iOS bản địa so với SDK Marmalade
- 6. iOS: HTML5 với phát triển Three.js
- 7. Hai giấy phép dành cho nhà phát triển iOS trên một máy Mac
- 8. Máy phát triển Android
- 9. Phát triển cho OS X đến từ nền iOS
- 10. Chương trình dành cho doanh nghiệp iOS và Chương trình dành cho nhà phát triển iOS
- 11. Bất kỳ tương tác với Bảng phân cảnh iOS nào cho phát triển Android?
- 12. Phát triển NDK của Android
- 13. Phát triển hai ứng dụng android và giao tiếp giữa hai
- 14. Relativelayout hoặc LinearLayout trong phát triển iphone ios?
- 15. Phát triển ứng dụng android cho cả Google play và Amazon Store
- 16. Phát triển Android bằng USB
- 17. Lộ trình cho chuyên gia phát triển Android
- 18. Cách tốt nhất để phát triển một ứng dụng trò chuyện video đơn giản cho android và iOS
- 19. Quản lý Chương trình Nhà phát triển Doanh nghiệp iOS
- 20. Tạo mã cho iOS và android
- 21. Python cho IOS hoặc Android
- 22. Phát triển cho hành động "Lắng nghe" mới trong Android
- 23. Tìm khung OpenGL ES để phát triển đa nền tảng trên Win/Linux/MacOSX/Android/IOS
- 24. Chrome dành cho iOS phát hiện
- 25. Triển khai Diffie-Hellman cho iOS?
- 26. Phát triển Android dựa trên đám mây
- 27. SDK cơ sở và Mục tiêu dành cho nhà phát triển iOS?
- 28. Công cụ dành cho nhà phát triển Android khác
- 29. Phát triển Android cho người mới bắt đầu
- 30. Android phát triển vùng heap frag
Ngoài ra, hãy xem http://stackoverflow.com/questions/6171128/ios-android-cross-platform-development, câu hỏi này đã được đặt câu hỏi tương tự nhưng đã bị đóng vì yêu cầu đề xuất IDE/khung . – sashoalm