2014-02-26 29 views
0

今天我在和PM談話。他說,最好的方式來解決問題,「同樣的應用程序在iOS和Android平臺」是寫對象的C代碼,適用於iOS,然後在Android應用(https://developer.android.com/tools/sdk/ndk/index.html)使用相同的代碼。這種方法(在他看來)會給我們DRY效果(有一個代碼要維護)。是否可以爲iOS編寫應用程序並將對象C代碼移入Android?

我很震驚,我幾乎沒有說什麼吧。但經過一段時間後,我想到了它,發現了一些問題:

  1. C++!= Object-C。可以在Android中添加o-c代碼作爲C++代碼?
  2. (說#1是可能的)我怎麼做佈局,活動等。在C + +的Android?
  3. 另外,當我們應該/不應該使用Android NDK?
+2

這是不可能的,但您可以使用Phonegap或鈦類型的語言來開發可跨平臺運行相同的移動應用程序。 – Kedarnath

+0

我認爲他與obj-c混淆了c。您可能需要查看跨平臺解決方案。有許多免費和商業產品可以實現這一目標。 –

+1

1.)永遠不要相信PM,他們沒有線索:P:)(只是在開玩笑)2.)這種情況可能是他做的,結帳:http://stackoverflow.com/questions/14477768/android-ndk-for -objective-C。 – Amar

回答

2

簡短的回答是否定的,這是不可能的。然而http://www.apportable.com

索賠,使您可以編譯爲Android iOS應用 - 從而使您能夠使用所有的代碼在你的iPhone應用程序。

但是它不與everyframe工作工作,但確實有到Android SDK掛鉤,所以你仍然可以訪問這些組件。值得一看,並與之相處。我只是半心半意,你必須從一開始就構建iOS應用程序,並且計劃使用http://www.apportable.com,就像我說的那樣,它目前不支持所有的ios sdks,你需要解決這個問題。

但是,這應該回答你的問題。

2

Objective C的代碼將不會與NDK編譯。但檢查出http://www.apportable.com/它是一個庫,允許您在Objective-C中爲Android編寫代碼。這可能是你的老闆在談論的。

+0

這是否支持遊戲以外的其他東西?即:通過HTTP(REST)連接到服務器的普通應用程序? – MAGx2

1
  1. C++ < Objective-c。 Objective-c構建在C編譯器之上...只需用* .mm命名文件並編寫c/C++代碼即可。基本上你可以做的是編寫你想在C++平臺上共享的函數,並通過JNI包裝器在Android項目中使用它們。

  2. 您不能共享其直接使用iOS系統框架(UIKit中,CFNetwork框架,...)代碼。

如果您想爲整個應用程序編寫一次代碼,您可以像其他人指出的那樣,使用apportable.com爲其編寫代碼。

+0

是的,建立在Android SDK(#1)之上的Apportable id實現了一堆iOS系統框架(#2) –

相關問題