2011-06-02 62 views
3

我想開發一個針對Android和iPhone的應用程序。我猜他們使用Java和Objective-C。我能像Python一樣使用單一語言嗎?這是最好的路線嗎?使用Python會損失性能,功能等嗎?我會遇到任何限制嗎?目標Android和iphone與Python

+0

您是否需要將應用程序作爲本機運行? – Rudy 2011-06-02 15:50:16

回答

3

您無法在Android或iPhone平臺上使用Python。 Apple SDK許可清楚地說明了這一點,而Android實際上有一個Android scripting environment,但您很快就會意識到這並不意味着最終用戶。無論如何,iPhone在iPhone上不支持Python這一事實規定了這一點作爲跨平臺選項。

我認爲構建支持Android和iPhone的真正跨平臺應用程序的唯一方法是通過HTML5。當然,HTML5應用程序並不完全是原生的,但是您可能會採用混合設計,您可以使用設備或本地本地託管的HTML5內容,並在本地veb視圖中顯示它。

純HTML5應用程序並非完全本地化,因爲它們是HTML5而不是CocoaTouch(Android)應用程序。他們只能做HTML5允許的內容和HTML5外觀。一個主要的限制是設備上沒有可用的特殊硬件,例如加速度計,陀螺儀等等。無論如何,它們提供了很大的靈活性和最大的跨平臺兼容性。

這是一個極端。另一個極端是「完全原生應用程序」,即在Objective C/Cocoa Touch或Java/Android中開發的應用程序。完全訪問SDK,特殊硬件,原生外觀和感覺,跨平臺無兼容性。

還有第三種可能性,這是一個混合的應用程序。您可以定義本機骨架UI(例如,在iPhone上,基於導航的應用),並通過HTML5提供視圖的內容和詳細的界面。骨架UI將不可移植,但它可以讓您在純HTML5應用程序上做更多的事情。此方法通常需要在您的應用中使用HTML查看器類,以便您具有:骨架UI +原生Web查看器+ HTML5內容。

關於「在設備上本地託管的HTML5內容」:您可以將您的HTML5應用程序託管在Web服務器上,也可以在本地託管到設備並從此處加載(無Web訪問)。

+0

這對我來說很簡單。 – vrao 2011-06-02 18:36:08

+0

順便說一句,這意味着什麼:「完全本地化」,「在設備上本地託管的HTML5內容」或「在您的網站上並在本地網絡視圖中顯示」 – vrao 2011-06-02 19:34:51

+0

請參閱我的編輯... – sergio 2011-06-02 19:54:05

0

phonegap是一種可以用來通過javascript,html來定位android.Handler的方式之一。

0

我知道的最接近的東西是MonoTouchMonoDroid項目。它們允許您編寫C#代碼,而不是Objective-C(適用於iPhone)和Java(適用於Android)。這個問題出現在UI中,因爲對於不同的UI模型沒有廣義的抽象。理想情況下,你可以寫你的核心業務/域/任何代碼,這樣它就不會綁定到UI,然後以這種方式獲得一些重用。

我還沒有見過@Snicolas提到過的Appcelerator,但它可能會在兩個平臺上提供全面的抽象方面做得更好。

0

我會考慮只是咬牙切齒,瞄準最終學習Java和C/Objective-C的最終目標。我有一些比較here.因此,也許在Java/Android中編寫一個簡單的應用程序,然後嘗試在iOS/C/Objective C中複製它。如果您將此目標用於明星登陸月球的方法,您將會忘記多少種語言你已經瞭解了你的一生。