Ruby on Rails創始人DHH談如何進行混合移動APP開發
混合型APP兼具原生型APP軟件良好用戶交互體驗的優勢和網頁型APP軟件跨平臺開發的優勢,并且其開發成本和網頁型APP軟件接近,其開發效率也遠高于原生型APP軟件。混合型APP已經被眾多企業所認可。最近,Ruby on Rails作者David發表了一篇關于如何進行混合開發移動APP的文章,現對該文章進行一個全面的梳理并轉述,以供讀者閱讀、參考。
文章中首先提到了37signals在2013年前就進行了混合開發的許多嘗試,不過當時HTML在移動端的性能還不盡人意。而當今,在移動APP開發設計時,移動設備的計算能力已經非常強大,對于信息處理等應用來說HTML應用的運行效果和原生應用的效果差別不大,采用混合開發的方式已經是非常合適了。
文章中還列舉了他們三代移動產品的演進,第一代產品是通過原生外殼并嵌套WebView來實現。第二代產品是原生外殼加上原生導航界面,只有具體頁 面才是HTML形式。當前,他們正在因地制宜地選擇需要使用原生開發的功能進行著開發第三代產品。縱觀三代產品的開發,從之前的100%HTML到現在的 90%HTML加上10%原生代碼,他們已經做到了使得APP原生部分和HTML部分的體驗幾乎沒有什么區別。混合開發模式在技術方面主要是處理 WebView的集成、Web頁面的加載以及原生內容與HTML內容之間的交叉鏈接。HTML方面,他們使用Rails Web應用以支持Web和移動兩大平臺。在這種開發模式下,因為大部分的代碼邏輯在Web服務器端,所以這些代碼可以隨時修改代碼并發布,從而大大減輕了 開發人員的工作量、提高了Bug修復效率以及降低了開發的復雜度和維護成本。
文章最后還提出了混合開發模式對原生開發模式的挑戰,如APP中有很多地方需要原生開發、在原始應用上已經花了很多時間且使得UITableView看起來效果非常好以及許大公司本身的開發風格就是喜歡耗時耗力的原生開發等情況。
總之,混合開發應該能夠成為當下移動開發策略的一個重要選擇,如最近發布的Qt 5.4正式版就重新設計了與 HTML5 Web交互的引擎,推出了基于Chromium 的Qt WebEngine,從而實現了對HTML5和QT混合開發的支持。
另外,David還對用戶的一些疑問進行了回答,如Derick用戶提出的如何解決Android瀏覽器渲染速度慢的問題、用戶Mike
Waite提出的如何決定哪些功能要用原生開發的問題、用戶Kevin提出的如何擴展和支持離線訪問的問題等,更多問題以及David的答復,參見文章的評論部分。
來自:http://www.infoq.com/cn/news/2014/12/ruby-on-rails-dhh-app