iOS客户端开发与Web前端开发
來源:Bang
 不知不覺做iOS客戶端開發已經半年多了,了解到iOS客戶端開發與Web前端開發的一些異同,寫一下。
 
 1、版本升級。用戶角度上看,客戶端升級必須讓用戶手動下載整個新的安裝包覆蓋安裝,而web的升級無需用戶做任何事情。開發角度上看,如果客戶端有個小bug需要緊急修復,需要修復完后打包一個完成的安裝包,給一個版本號,發布給用戶升級。而web只需要修改后臺的某些文件,然后傳到自己的服務器,用多快速的迭代開發方式都沒問題。web沒有版本兼容性問題,客戶端這個問題就大了。
 
 
 2、iOS客戶端用編譯語言,web用腳本語言。編譯語言好處:很多錯誤編譯期就知道,不用擔心類似寫錯一個字母導致的問題。iOS客戶端開發只能用XCode,無法選用自己喜歡的編輯器。使用腳本語言的web無論前端后端對編輯器的選擇都很自由。
 
 
 3、客戶端一碰到異常就崩潰,直接退出,web一個try catch可以把所有錯誤抓住,用戶可以繼續使用其他不受影響的功能,即使所有功能都受影響,刷新頁面搞定一切。web上界面和程序實實在在地分離了,客戶端再怎樣都是粘合在一起的。
 
 
 4、發現HTML+CSS樣式布局自動排列相當高級,客戶端上一切都靠程序去指定大小位置以及排列的變化,可視化的XIB挺雞肋。
 
 
 5、單線程的web很幸福,客戶端要處理多線程,雖然強大,但很麻煩。web幾乎不用考慮內存泄漏,客戶端需要??蛻舳碎_發可以使用到很底層的接口和功能。web處于較上層,在瀏覽器的包裹下,好處是很多問題瀏覽器處理web不用管,壞處是功能受限。
 
 
 6、web和客戶端開發差不多都使用類似MVC的模式,數據通過控制器更新到各個視圖。web多用callback,iOS多用delegate,雖然iOS也可以用block作為callback,但還是沒js方便,還可能導致一些內存問題。
 
 
 總的來說從開發普通應用來看,就算不談跨平臺,web開發也是好處多多,但這只是開發角度上看,實際上移動設備上webApp狀況始終不好,與原生客戶端差距很大,原因:
 
 
 1、網絡不行,流量要錢。國內網絡環境大家懂的,雖然HTML5有manifest,storage這些手段緩存webApp,但給人感覺就是不靠譜,打開它還是跟打開一個網頁一樣的感覺:耗流量,還有可能在網絡不好的情況下打不開,沒有像已經下載下來的原生APP踏實。
 
 
 2、動畫/體驗。一般的web在頁面間切換或顯示隱藏某個組件是沒有動畫的,大家也習慣了,iPhone帶了個頭,一切都要動畫過渡,導致在移動設備上大家習慣了動畫切換,受不了沒有動畫的應用,導致動畫性能底下的webApp至今體驗上遠不如原生客戶端。
 
 
 3、把webApp通過safari添加到主屏幕這樣的習慣非常不普及,極少人知道,不過這個應該也不算問題,若沒有上面兩個大問題,這個習慣很容易普及的。
 
 
 
 PS:在開發普通應用(數據處理/交互)方面,web有很大的優勢,在網絡和性能問題解決后理應是首選開發方式。但在游戲領域我看不出web有什么優勢,繼續對有點熱的HTML5游戲開發表示不解。
 
 
 
 
總結
以上是生活随笔為你收集整理的iOS客户端开发与Web前端开发的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 精读4:一个和钱打交道的数据分析行业
- 下一篇: HDU-5514 Frogs
