2011-03-14 43 views
34

Tôi có một ứng dụng tốt đẹp đang chạy trong Android Market. Một số người đã yêu cầu tôi cung cấp phiên bản IPad/Điện thoại. Tôi đang làm gì ở đây nếu tôi cố gắng làm điều này?Có cách nào dễ dàng để chuyển đổi Ứng dụng Android sang IPad, IPhone

Có công ty có uy tín nào có thể thực hiện loại chuyển đổi này không?

+0

Check-out https://www.codenameone.com/ mà là dựa trên một dự án mã nguồn mở/VM bằng cách riêng của chúng tôi làm –

Trả lời

20

Tôi không chắc chắn câu trả lời này hữu ích như thế nào cho ứng dụng hiện tại của bạn, nhưng nó có thể hữu ích cho các ứng dụng tiếp theo mà bạn sẽ phát triển.

Như iOS không sử dụng Java như Android, lựa chọn của bạn khá hạn chế:

1) nếu ứng dụng của bạn được viết chủ yếu trong C/C++ sử dụng JNI, bạn có thể viết một wrapper và giao diện nó với iOS (tức là cung cấp gọi lại từ iOS đến hàm JNI viết của bạn). Có thể có các khung công tác giúp bạn làm điều này dễ dàng hơn, nhưng vẫn còn vấn đề tích hợp ứng dụng và thích nghi nó với khung công tác (và dĩ nhiên thực tế là ứng dụng phải được viết bằng C/C++).

2) viết lại cho iOS. Tôi không biết liệu có bất kỳ công ty tốt nào làm điều này cho bạn hay không. Ngoài ra, do nhiều ứng dụng có thể được viết có thể sử dụng các dịch vụ và API khác nhau, có thể không có bất kỳ phần mềm nào có thể chuyển cho bạn (tôi đoán loại phần mềm này giống như mỏ vàng heh) hoặc làm làm tốt lắm.

3) Tôi nghĩ rằng có các trình chuyển đổi Java-> C/C++, nhưng sẽ không giúp ích gì cho bạn khi nói đến sự khác biệt về API. Ngoài ra, bạn có thể thấy mình đang gặp khó khăn hơn để có được mã được chuyển đổi hoạt động trên bất kỳ nền tảng nào thay vì viết lại ứng dụng của bạn từ đầu cho iOS.

Sự cố phụ thuộc khá nhiều vào các dịch vụ và API mà ứng dụng của bạn đang sử dụng. Tôi chưa thực sự tìm kiếm điều này, nhưng có thể có một số API cung cấp chức năng nhất định trong Android mà iOS không cung cấp.

Sử dụng C/C++ và biên dịch nó cho nền tảng mong muốn giống như cách để phát triển nền tảng đa nền tảng Android-iOS-Win7Mobile. Điều này giúp bạn phần nào của lõi/nhân ứng dụng mà bạn có thể sử dụng để thực hiện logic ứng dụng thực tế.

Đối với các bộ phận cụ thể của hệ điều hành (API) mà ứng dụng của bạn đang sử dụng, bạn sẽ phải thiết lập giao diện liên lạc giữa chúng và lõi ứng dụng của bạn.

+2

FYI với Codename Một trong mọi thứ được trừu tượng hóa bao gồm API gốc và bytecode được tự động chuyển đổi thành C và được biên dịch bằng cách sử dụng Xcode để tương thích 100% với iOS. Điều này (VM, API, vv) là tất cả mã nguồn mở), do đó API được ánh xạ tới API hệ điều hành gốc. Bạn cũng có thể gọi trực tiếp đến mã gốc Objective-C nếu bạn cần chức năng thiết bị gốc. –

+0

Đào lên một chủ đề cũ, nhưng nó xuất hiện khá cao trong tìm kiếm google của tôi về chủ đề này. Bây giờ chúng ta có công cụ này: https://www.iskysoft.com/phone-transfer/convert-android-app-to-ios.html - nó làm hết sức mình để chuyển đổi Java sang Obj C. – blueprintChris

4

Tôi nghĩ bạn không thể nói về "chuyển đổi" tại đây. Đó sẽ là toàn bộ một dự án. Để "chuyển đổi" nó tôi nghĩ rằng bạn phải viết nó một lần nữa cho iphone.

Có xem xét câu hỏi này:

Is there a multiplatform framework for developing iPhone/Android applications?

Như bạn có thể nhìn thấy từ các câu trả lời ở đó, không có cách nào tốt phát triển các ứng dụng cho cả hai nền tảng cùng một lúc (trừ khi bạn đang phát triển trò chơi nơi flash giúp dễ dàng di chuyển).

+0

Xin lưu ý rằng câu trả lời này là bốn tuổi. Nếu bạn vấp ngã khi nó có một cái nhìn cho "phonegap", "apache cordova" hoặc khuôn khổ như thế. – Chris

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