2015-04-17 94 views
2

我是一名開發簡單移動應用程序的Android程序員(非常類似於常規信使)。
我使用客戶端 - 服務器體系結構。服務器使用Java編寫,並在Google App Engine上運行。本機Android客戶端向服務器發送HTTP請求,服務器向收信人發送GCM消息或向調用者發送JSON對象響應。有SQLite RDBMS用作緩存。
爲每個獨特的移動平臺從頭開始編寫單獨的應用程序非常昂貴。而現在,當應用程序即將準備好時,我開始思考如何輕鬆將它移植到其他移動平臺:iOS和Windows Phone。如果您有任何創建跨平臺移動應用程序的經驗請指教我開發和維護此類應用程序的最簡單方法開發跨平臺移動應用程序需要使用什麼產品?

我已經找到了幾個選項,到目前爲止
cross-platform

 
Delphi XE   | Delphi, native compilation | Delphi developers 
Unity3D   | C#, UnityScript, Boo  | Game developers 

我朝j2objcJUniversal,並Appery.io(大致說,PhoneGap包裝)。我的問題是以下哪些產品是成熟的?

特別是

  • 我可以使用RetroFitActiveAndroid其中一人在一起嗎?
  • 我可以使用任何此類產品接收推送通知(GCM/APN/MPNS)嗎?

ps。我拒絕使用Unity3DDelphi XE,因爲我認爲它們大大增加了應用程序的大小。我拒絕使用Xamarin,因爲我不是.Net開發人員。

回答

1

J2objc處於一個很好的狀態,它強烈支持谷歌。並且有一個活躍的社區正在努力。

你可以在這裏找到大量的文檔資料:https://github.com/google/j2objc/wiki

通過J2objc產生的代碼中,谷歌的幾個高性能應用(例如,郵件)使用。所以這個產品已經準備好了。

與所有其他項目一樣,學習曲線陡峭。 J2objc也有示例項目,可以用來了解它的工作原理。

+0

好吧,我會試試! – naXa

+0

我通常給自己一些時間來確認或駁斥答案。儘管如此,我已經改變了問題的措辭以適合你的答案=)所以它現在是接受主要候選人。 – naXa

1

如果你只想用Java開發,RoboVM可能是你最好的選擇。它支持完整的JRE API,包括用於RetroFit的安全套接字。 iOS本地類可以被打包以與RoboVM的內存管理一起工作,因此您不必學習其他語言。

j2objc目前還不支持安全套接字,所以移植RetroFit需要爲OkHttp創建一個j2objc特定的HTTP處理程序。推送通知需要用Objective-C或Swift編寫,應用程序的用戶界面也一樣。

ActiveAndroid在所有這些選項中都會出現問題,因爲它使用Android的SQLite API,它嚴重依賴Parcels和其他Android序列化支持。

1

那麼這裏是我的兩美分。

Unity3D將提供最好的多平臺過渡,儘管它的目的或多或少在於遊戲開發。如果你計劃好你的代碼,它將很容易移植。

Android Studio(https://developer.android.com/sdk/index.html)是Android開發的產品,但您不會從中獲得太多的跨平臺兼容性。

使用C#的任何東西都是.NET,所以拋出Xamarin出來保持jUniversal是有點奇怪,但我明白,因爲你習慣了java。

Xaramin的正式名單MonoDevelop是我認爲最成熟的。也是Unity使用的,雖然他們使用稍微修改的GUI。

在一天結束時,每個人都有自己的陷阱和優勢。自從你向jUniversal學習之後,我會說。

1

我喜歡Unity3d,因爲易於部署到很多平臺。但是對於你的任務來說,它可能是一個太大的工具。你的項目聽起來太簡單了。 Unity3d是免費的(T & Cs適用),所以它吸引人,但科爾多瓦/ PhoneGap聽起來更像是工作的工具。

+0

正是我在想什麼!謝謝。 – naXa

1

我已經使用PhoneGap/Cordova,Xamarin和Unity 3D,如上所述。我也使用了我發現最有效的混合解決方案。藉助混合應用程序,您可以通過外部庫和引擎減少大量開銷!

根據你想要做什麼,你可以把你的應用程序,並使用一個共同的全屏WebView小部件,並將其移植到iOS的UIWebView和Windows'電話'IE小部件。一旦獲得了webview小部件的初始框架設置,您就可以插入HTML,JS,CSS數據並將其注入到您的應用程序中。這樣,您可以保持相同的主代碼庫並簡單地修改webview源代碼。這將複製cordova/phonegap/xamarin的行爲,並將節省您的開銷。

我也使用Google for iOS/Android的Chromium項目,並使用webRTC以最佳呈現重新顯示Web應用程序。

沒有所有其他解決方案的開銷,您可以自行完成許多可行的選項。此外,您還可以選擇分別爲iOS和Windows整合本地數據庫功能,例如CoreData和EntityFramework。隨着數據庫本地功能的無數其他好處。

相關問題