隨著移動設備越來越先進,對HTML5的支持度越來越高,我們進軍移動領域的時候,都會遇到一個問題,是選擇HTML5和還是Native(用原生代碼編寫的本地程序)?HTML5的前景無疑是誘人的,一句“Write once, run anywhere”就可以秒殺一切。筆者最近兩年來對HTML5與Native有較為深入的研究,覺得兩者之間不能僅僅是二分法來選擇,還要根據企業自身的情況、團隊的構成、公司的戰略以及產品的特點來綜合選擇。
HTML5的發展前景我無疑是非常看好的,各大公司也不遺余力的推動,目前主流的三大智能機操作系統iOS、Android和WIndows Phone都已經支持大部分的HTML5特性。而移動設備硬件軍備競賽也為HTML5掃清硬件障礙。按照現在的發展速度,我判斷是在三年以內甚至更快,移動設備運行HTML5將會完全沒有壓力,無論是標准還是硬件。現在主流的智能機已經配置雙核處理器(之前筆誤為浏覽器)和1G及以上的內存,今年再出智能機沒這個配置你都不好意思發布了。
談談HTML5
1.HTML5可以讓你擺脫對平台的依賴,用戶打開浏覽器,直接就可以訪問你的應用,而不需要經過各種Store的審核。
2.實時更新,通常平台的審核都需要七個工作日左右的時間,如果你發布之後發現問題怎麼辦?Web方式就不存在這種問題。
3.Write once, run anywhere?
這是多少程序員的夢想,也曾經是Java讓人心動的地方,但真正做過跨平台解決方案的人都知道,這只是一句口號而已,跨平台沒那麼容易玩轉的。沒錯,HTML5可以實現Write once, run anywhere,但我們總不能寫一個Hello World來run anywhere吧。不同平台有自己的特性,不同平台用戶也有自己的操作習慣,如果你想討好所有人,也就意味著你無法討好任何人。
4.減少開發工作量或者讓開發變得更簡單?
對老板來說,這是一個非常誘人話題,因為工作量的減少就意味著節省更多的錢,沒有老板不喜歡用更少的錢辦更多的事。而且目前一個非常大的問題是,移動設備開發人員特別是iOS開發人員非常不好找,因為技術好的都自己做應用了,人家自己也能賺個月薪上萬甚至更多,為什麼要進你的公司?怎麼說也是自己的事業,擁有無限可能,還可以充分享受自由。但如果可以充分利用HTML5,那麼我們就可以招聘Web前端的開發人員來構建移動應用,這樣就不愁招人的有問題。因為在許多人的眼裡,HTML5/CSS/Javascript都是沒多大技術含量的東西,實在找不到人,找些實習生學學也就會了。
但問題是,工作量真的會減少嗎?技術門檻真的那麼低麼?答案是NO!
我曾經花了半年的時間去開發一個基於HTML5的移動框架,用來模擬Native應用,讓HTML5應用看起來盡可能看起來像本地應用,注意:是像。這有點像jTouch,但不一樣的是,它能和Native程序很好地交互,並且能調用本地資源等等特性。但最後結果確不是那麼令人滿意,比如HTML5在動畫切換的時候,有時候候會有一些莫名其妙的問題,當然你可以告訴我把動畫效果關了,但這看起來很死板,最後我不得不關閉某些動畫。而用Objective-c編寫程序就沒這麼多事了,幾句簡單的代碼可以實現很酷的動畫,用HTML5需要更多的代碼,甚至根本無法實現。
而且移動設備上的HTML5開發對開發人員的技術有非常高的要求,不是一般的Web前端人員能解決的,通常擁有這樣技術的人才,工資水平也不會比Native開發人員低多少。如果你僅僅是要開發一個移動設備上的網站,這會簡單很多,但如果你希望模擬Native應用,並且擁有較高的效率和優雅的用戶體驗,這就很有技術含量了。不要小看Javascript這類Web開發語言,通常我的看法是越簡單的語言越會體現出技術人員的水平,特別是規劃設計能力。