2013-10-21 48 views
16

我想爲iOS,Android和windows手機開發一個簡單的應用程序。哪個更好?本機應用或混合應用?

我只是想知道一個簡單的HTML5,JS和CSS組合可以在所有這些平臺上工作。我想知道哪一個會高效?

時間和編碼沒有問題。但是如果我能用HTML5-JS本身實現一切,我會選擇混合開發。我想知道Native與Hybrid Development之間的主要區別,例如(我知道主要區別在於HTML5-JS支持跨平臺)。

注:我沒有製作遊戲應用程序。

+3

有一篇關於此的真正優秀的文章。希望它會有所幫助 http://sealedabstract.com/rants/why-mobile-web-apps-are-slow/ – andykkt

+0

謝謝@andykkt這篇文章是關於內存管理問題的好消息! –

+0

在移動世界中,本地應用,網絡應用和混合應用等術語非常普遍,但有什麼不同?這裏有一點解釋。 http://markupjavascript.blogspot.in/2013/11/native-apps-web-apps-hybrid-apps-what-is-the-difference.html –

回答

31

根據我的經驗,這些跨平臺解決方案(如PhoneGap和其他人)從未真正達到預期,除非您開發的應用程序非常簡單。即使基本的東西,如過渡動畫和小UI調整將是一個艱苦的戰鬥,使用這些工具。

本機開發可能需要更長的時間(如果您正在爲超過1個平臺構建應用程序),但優點是您可以完全控制自己正在製作的內容。在性能方面,本地開發仍然並且可能總是遠遠超過跨平臺開發,僅僅因爲它沒有嵌套在瀏覽器或任何其他運行時解釋平臺中的開銷。另外,從我的經驗來看,能夠編寫一次代碼並立即在所有平臺上工作的神話就是一種神聖的聖盃。許多人聲稱已經實現了它,但是你總是會發現自己編寫平臺特定的代碼(以「如果瀏覽器,如果Safari瀏覽器,如果Chrome瀏覽器」等形式)。

我的建議,爲您的應用程序寫一個堅實的體系結構。在一個平臺上構建應用程序一次,解決設計中的所有問題,然後將設計複製到其他平臺。它會花費你一點時間,但是你的應用程序的強大,以及在你的應用程序中添加/更改功能和其他小東西的靈活性將是值得的。

舉一個例子,以Facebook爲例。他們以前的應用程序(如果你還記得)是一個跨平臺的應用程序。它很慢,沒有反應,會一直崩潰,實際上無法使用。大約一年前,經過無數的投訴,他們發佈了一個更新與他們的本地應用程序,突然間,所有這些問題消失(至少大部分)。

+1

雖然使用混合方法我喜歡的是,獲得結果的速度很快,因爲當您的設備我們的模擬器準備好更新更改時無需等待。對於混合版本,通常只需在瀏覽器中按F5。與http://ionicframework.com/一樣,您也可以在您開發的應用的網站版本中重複使用您的移動代碼。 – ses

+0

但是我認爲如果應用程序沒有響應,那麼這對開發混合應用程序來說是浪費時間。 – Ravi

6

主要區別在於UI組件,它是應用程序中的主要組件。您無法在混合應用程序中實現原生外觀和感覺,如原生對話框,通知和原生動畫。

我想知道哪一個會高效?

效率不是問題,混合應用程序將是一個單一的應用程序,將支持多種平臺,這是成本和時間效益。混合應用的

的觀光

  1. 成本效益的,單一的應用程序將被開發,從而節省支付給開發者在不同的平臺上進行應用程序的成本 。
  2. 時間有效,將爲不同的平臺製作不同的應用程序以節省時間。
  3. 更新速度非常快,不像你從google playstore更新, 應用程序將只在服務器端更新,你不需要 重新安裝它。
  4. 尺寸較小。由於用於支持多個 屏幕的資源將由HTML處理。混合應用的

缺點

  1. 沒有看起來像是本地應用。
  2. 如果服務器關閉,應用程序甚至不會顯示靜態行爲。

如果您願意與UI妥協,那麼您應該使用混合應用程序。

+0

在混合應用的缺點,你說 - 2)需要爲每個平臺開發不同的應用程序,增加成本。我認爲這只是對您的混合應用PROS的爭議 - 1)具有成本效益 –

+0

已更新回答,現在查看 –

+0

@Brontok「成本和時間效益」,「規模較小,更新快速」 - 關於什麼?你能否更精確一些?在需求分析,開發,測試,項目管理,市場營銷,工具以及爲特定平臺和工具集僱用和培訓開發人員的間接成本方面存在成本。恕我直言,你所說的PROS和CONS,沒有意義。 – CouchDeveloper

相關問題