2010-11-04 64 views
17

我想爲Android和iOS設備開發一個應用程序。有沒有辦法一次開發應用程序並在兩者上部署?還是必須分別爲每個平臺開發?Android和iOS:如何爲兩者開發?

+0

另請參閱http://stackoverflow.com/questions/6171128/ios-android-cross-platform-development,它問同樣的問題,但被關閉,因爲它要求IDE /框架的建議。 – sashoalm 2015-06-15 07:17:15

回答

6

如果您想要提供本機體驗的應用程序,那麼您將不得不編寫單獨的應用程序。

我認爲最好的開始是爲移動瀏覽器優化的非常好的網頁版本。我認爲最好的網絡應用程序比許多本地應用程序更好,但它們不會與更好的本地應用程序競爭。

也有幾個選項,如TitaniumPhoneGap,這是一種混合的網絡/原生系統,他們使用網絡技術來構建原生應用程序。

2

這一切都取決於您想要開發的應用程序的類型。如果它是一款遊戲,我建議你將其大部分作爲本機代碼編寫,並利用OpenGL ES 2.0在兩個平臺上本地支持的優勢。顯然,所有的Java代碼都不能在iOS上重用,所以任何可以作爲可移植本地庫的東西都可以幫助減少不可重用代碼的數量。

0

如果是遊戲或主要是圖形應用程序,BatteryTech Engine將做你想做的。喲仍然需要XCode爲iOS構建,否則它是這兩個平臺的單一主代碼庫。

1

使用Qt,這是一個跨平臺開發的C++框架,同時擁有LGPL和商業許可證,您可以爲這兩個平臺開發並簡單地重新編譯來自同一個源的應用程序。作爲獎勵,您也可以定位Windows,Linux和Mac。

但請記住,Qt呈現自己的控件,所以窗口小部件不會在Android或iOS上看起來很原生。此外,與所有跨平臺框架一樣,它將爲您提供功能方面最低的共同點。

their official blog

有了Qt,您可以開發真正的跨平臺應用程序將在桌面上運行,嵌入式和移動平臺。 Qt 5.2引入了對Android和iOS平臺的全面支持,因此可以創建跨平臺的移動應用程序,這些應用程序通過一個代碼庫打包並部署到Google Play和App Store中。不要用兩種不同的技術編寫相同代碼的兩個版本,您可以使用Qt編寫一次!

蘋果應用程序商店可能不會接受使用dylibs的應用程序,但是,這可能force you to use the commercial license的封閉源代碼的應用程序:

在iOS上也可以使用Qt庫的動態鏈接版本,並將它們與應用程序捆綁在一起。這允許應用程序使用Qt的LGPL許可證,同時允許應用程序本身是封閉源代碼。 Apple是否會接受將dylib綁定到iOS App Store的應用程序還有待觀察。如果Apple不接受使用捆綁的dylib進入App Store的應用程序,則需要將Qt靜態鏈接到應用程序。由於Qt for iOS端口使用LGPL版本的Qt,因此與LGPL靜態鏈接的規則即將啓動 - 這可能是閉源應用程序的問題。

最後,由於Qt是一個C++框架,您將需要使用C++來開發您的應用程序。

0

我開始使用NativeScript,它看起來很有前途。

NativeScript是您如何構建跨平臺的原生iOS和Android應用程序而無需Web視圖。使用Angular,TypeScript或現代JavaScript來獲得真正的原生UI和性能,同時與網絡分享技能和代碼。通過JavaScript獲得對本地API的100%訪問權限,並重用NPM,CocoaPods和Gradle的軟件包。開源並由Telerik支持。

2

有很多選擇。這取決於你是否想要一個Native體驗,或者你想要的東西在web視圖中。有了本地的經驗,你可能不得不做一些本地編碼,但它仍然比開發2個獨立的本地應用程序更好。

下面是我有經驗的一些。

本土經驗

網頁視圖

0

我用大量的跨平臺在過去的幾年裏,而從我的角度Xamarin是最好的,因爲在最後,你可以告訴如果應用程序是跨平臺的或沒有。但與Xamarin它編譯爲本地,因此在它們之間沒有明顯的差異。 你可以從這裏開始:https://www.xamarin.com