比較不同的開發方法
Native開發方法在性能和設備訪問方面很出色,但成本和更新方面有缺點。Web方法更新起來簡單得多,成本較低,也更容易,但是目前功能有限,也無法獲得使用Native API調用所能獲得的那種出色的用戶體驗。Hybrid開發方法提供了折中方案:在許多情況下,它集兩者之所長,如果開發者面向多種操作系統更是如此。
沒有哪一種開發方法總是提供所有的優點,選擇一種合適的方法取決於企業的具體要求,可能取決於諸多因素,比如預算、時間表、內部資源、目標市場、所需的應用程序功能、IT基礎設施及其他許多方面。但是有一點很清楚:如今的大多數公司顯然在兩個方面之間作一取捨:一方面是用戶體驗和應用程序功能,另一方面是開發成本和產品上市時間。問題就變成了選擇一種合適的開發方法,能兼顧企業的要求和其在預算和產品上市時間方面的限制。
下面介紹有助於幫助企業選擇合適開發方法的一些場景:
一、Native開發方法的場景
現有的Native開發技能——反對Native開發方法的主要理由之一是,它缺少對多種平臺的支持。要求爲多種移動平臺開發App的企業需要招聘新員工,或者對內部開發者進行衆多Native語言方面的培訓。內部擁有這種Native開發技能的企業不需要大筆新的投入,就能夠充分利用這些技能。
單一移動操作系統——在一些情況下,企業旨在向有限的目標羣體發佈移動App——這個羣體已知使用單一移動操作系統。比如說,考慮這種場景:向員工發放黑莓設備的企業分發內部App。在這種情況下,支持多種平臺也許不是優先事項:由於開發單一的Native App只需要一套有限的技能和工具,所以這種方法很有意義。
Native功能——有些App是圍繞某一項功能開發的。就拿Skype來說,VOIP和訪問用戶的聯繫人信息是App的兩大關鍵要素;考慮到現有的技術,只能採用Native方法來開發。對這類App而言,Web語言根本不夠完善,根本無力獲得所需的功能。
豐富用戶界面的需求——有些遊戲類App需要提供實時響應的豐富用戶界面,對這類App而言,Web技術還無法提供足夠有效的解決方案。對有這類需求的App而言,開發者採用Native開發方法仍然比較好。
二、Web開發方法的場景
直接分發——有些企業更喜歡以一種內部控制的方式來分發App,他們不喜歡受制於有時很漫長、很不確定的審批過程。這種情況下,使用純粹的Web語言可以完全規開應用商店的審批過程,讓企業可以完全控制App的定期更新和分發。
試點App——比較Native App與Web App開發所需的成本和上市時間時,使用Web方法開發試點應用程序是一種引人入勝的、經濟高效的方法。一旦概念得到了證明,企業可以決定從頭開始創建新的App,或者充分利用Hybrid App中的部分現有代碼。
可視性——除了前面提到的分發外,構建Web App的另一個優點是搜索引擎結果具有可視性;在許多情況下,搜索引擎結果將App展示給比僅僅通過應用商店獲得的羣體更龐大的羣體。
三、Hybrid開發方法的場景
折衷考慮——如果企業使用Hybrid開發方法,就能集兩者之所長。一方面,Native讓開發者可以充分利用現代移動設備所提供的全部不同的特性和功能。另一方面,使用Web語言編寫的所有代碼都可以在不同的移動平臺之間共享,使得開發和日常維護過程變得集中式、更簡短、更經濟高效。
內部技能——Web開發技能十分常見,許多企業都擁有這類技能。如果選擇Hybrid開發方法,在合適解決方案的支持下,Web開發者只要僅僅運用HTML、CSS和JavaScript等Web技能,就能構建App,同時提供Native用戶體驗。
考慮未來——HTML5的可用性和功能都在迅速改進。許多分析師預測,它可能會成爲開發前端App的默認技術。如果用HTML來編寫App的大部分代碼,並且只有在需要時才使用Native代碼,公司就能確保他們今天的投入在明天不會變得過時,因爲HTML功能變得更豐富,可以滿足現代企業一系列更廣泛的移動要求。
移動Web app與移動網站的比較
Compatible with HTML5
移動js API—sencha touch & jquery mobile
About jQuery Mobile
- It’s a UI-only library, which relies on jQuery and jQuery UI for DOM manipulation, Ajax and other utilities
- To create UI widgets, you generally need to hand-code their html, and the library enhances their look and feel
- As it works by enhancing the html you create, it allows you to re-use or re-purpose existing html
- Some simple applications can be created using only html, without having to write JavaScript code
- It has a relatively small object model, which makes it faster and easier to learn, specially if you are familiar with jQuery
- It does not impose a coding discipline or structure, which gives you flexibility, but can lead to applications that are difficult to maintain
- Easier to integrate with other frameworks
- Targets more devices than Sencha Touch
- Not tied to a particular vendor
About SenchaTouch
- It’s a library that tries to do it all: UI widgets, DOM manipulation, Ajax and other utilities
- Does not depend on other libraries
- Follows a JavaScript-centric approach, where you are required to write little html
- Has a large object model, which provides more features out of the box, but takes longer to learn
- Imposes a coding structure and discipline, which generally results in well-organized code
- Provides built-in server and local storage abstractions, which make it easier to perform CRUD operations on relational data
- Has built-in facilities for creating iOS and Android native packages
- Targets less devices than jQuery Mobile
如何取捨
l 遊戲娛樂類(NativeApp)
l 新聞信息類(HybridApp)
l 社交網絡類(HybridApp)
l 地圖、旅遊應用(NativeApp)
l 預定、網購、銀行業務(NativeApp)
l 多媒體(NativeApp)
參考:http://mobile.51cto.com/ahot-340633.htm
http://www.worklight.com/assets/files/HTML5,%20Hybrid%20or%20Native%20Mobile%20App%20Development.pdf