2010-11-04 27 views
17

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?

+0

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

Trả lời

6

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.

5

Vâng, bạn có http://monotouch.nethttp://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.

+1

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

2

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.

0

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ù.

0

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.

1

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.

Từ their official blog:

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.

0

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.

2

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

Webview

0

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

Các vấn đề liên quan