原生應用程式:
原生應用程式是某一個移動平台(比如iOS或安卓)所特有的,使用相應平台支援的開發工具和語言(比如iOS平台支援Xcode和Objective-C,安卓平台支援Eclipse和Java)。原生應用程式看起來(外觀)和運作起來(性能)是最佳的。
HTML5應用程式:
HTML5應用程式使用标準的Web技術,通常是HTML5、JavaScript和CSS。這種隻編寫一次、可到處運作的移動開發方法建構的跨平台移動應用程式可以在多個裝置上運作。雖然開發人員單單使用HTML5和JavaScript就能建構功能複雜的應用程式,但截至本文截稿時仍然存在一些重大的局限性,具體包括會話管理、安全離線存儲以及通路原生裝置功能(攝像頭、月曆和地理位置等)。
混合應用程式:
混合應用程式讓開發人員可以把HTML5應用程式嵌入到一個細薄的原生容器裡面,集原生應用程式和HTML5應用程式的優點(及缺點)于一體。
簡而言之,原生應用程式提供了最佳易用性、最佳特性以及最佳總體移動體驗。以下這些是隻能通過原生應用程式才能實作的功能:
•多點觸控:輕按兩下、縮放及其他組合的使用者界面(UI)手勢。
•快速圖形API:原生平台為你提供了顯示最快速的圖形。如果你顯示隻有寥寥幾個元素的靜态螢幕,這個功能可能不太重要,但如果你使用大量資料,需要快速重新整理,這項功能卻很重要。
•流暢動畫:與快速圖形API有關的是實作流暢動畫的功能。這在動畫、高度互動的報表或者轉換照片和聲音的計算密集型算法中顯得尤為重要。
•内置部件:攝像頭、位址簿、地理位置及裝置的其他原生功能可以無縫地整合到移動應用程式中。另一個重要的内置部件是加密的存儲裝置,這方面稍後會有詳細介紹。
•易于使用:原生平台是人們耳熟能詳的平台,是以如果你在這個熟悉的平台上添加人們期望的所有原生功能,也就擁有了一款使用起來完全更容易的應用程式。
•說明文檔:市面上僅僅介紹iOS和安卓開發的圖書就有2500多本,Stackoverflow等網站上還有不計其數的文章、博文和詳細的技術文章。
原生 | HTML5 | 混合 | |
應用程式特性 | |||
圖形 | 原生API | HTML、Canvas和SVG | HTML、Canvas和SVG |
性能 | 快速 | 慢速 | 慢速 |
原生外觀和感覺 | 原生 | 模拟 | 模拟 |
分發 | 應用程式商店 | Web | 應用程式商店 |
裝置通路 | |||
攝像頭 | 有 | 無 | 有 |
通知 | 有 | 無 | 有 |
聯系人和月曆 | 有 | 無 | 有 |
離線存儲 | 安全的檔案存儲 | 共享式SQL | 安全的檔案系統和共享式SQL |
地理位置 | 有 | 有 | 有 |
手勢 | |||
滑動 | 有 | 有 | 有 |
縮放 | 有 | 無 | 有 |
連接配接 | 線上和離線 | 主要是線上 | 線上和離線 |
開發技能 | ObjectiveC和Java | HTML5、CSS和JavaScript | HTML5、CSS和JavaScript |
讓我們一起遨遊在代碼的海洋裡!