決定為哪個平台構建應用一直是個挑戰。開發人員應該把時間和金錢花在原生實現上,還是完全專注於Web,或者是某種組合?新增加的Angular移動工具集(AMT)使用新的Web平台API讓Web應用有了更多原生的感覺,希望可以為做這種決定的人減輕一點壓力。
在ng-conf 2016大會上,Jeff Cross和Alex Rickabaugh花時間介紹了AMT以及它如何幫助開發人員讓Web應用的行為更像原生應用。Cross做了總結:
“Progressive Web Apps”是以一些已經在某些Web浏覽器中實現了的新興Web標准為基礎的最佳實踐和技術。對於一些普通的Web應用,你使用新的平台API添加新的功能,讓它們更加強大。它們可以在任何平台上工作,但最好是工作在它們可以更多地利用新的技術和API的平台上。
這些技術的主要目標是讓應用可以立即加載、離線工作、可安裝,並提供通知功能。通常,原生應用默認就具備這些特性,但在Web上實現這些特性並不容易。在這四個特性中,Cross和Rickabaugh重點介紹了前三個以及對應每一個特性的技術:
Cross說,App Shell是指“包含動態內容的靜態UI,通常由一個工具欄和某種導航……供所有應用程序視圖使用的東西。”在離線編譯過程中,AMT部分地依賴Angular Universal生成靜態內容。
原生應用的其中一個好處是,一旦安裝,即使沒有網絡,也總是可以保證最低限度的使用。AMT依賴Service Worker在後台下載應用代碼,因此,應用可以脫機工作。一個意外的結果是,在後續加載時,應用的啟動速度更快,因為它已經有了代碼,省去了網絡和下載調用。
使用App Shell和Service Worker可以將首次同示例應用交互的時間從2356毫秒減少到128毫秒。
最後,Rickabaugh說,Web App Manifest是“一個標准,允許你指定應用程序的元數據。”其用途是允許將Web應用“安裝”在設備上。運行這些應用中的任何一個,其外觀和感覺都跟原生應用一樣,因為浏覽器邊框可以隱藏。
最大的問題是有關progressive web apps的這三項技術中有兩項在Safari或Edge浏覽器中無效。
App Shell之所以有效是因為它在應用加載前會渲染成HTML傳給客戶端。Service Worker是一項尚處於發展中的Web平台開發技術,隨著時間推移,會有更多的浏覽器支持。Web App Manifest只在Android上有效。iOS目前有自己的方式讓應用出現在用戶的主界面上,而不需要浏覽器邊框。
感興趣的讀者可以在YouTube上觀看完整視頻。
一些AngularJS相關文章鏈接:
AngularJS權威教程 清晰PDF版 http://www.linuxidc.com/Linux/2015-01/111429.htm
希望你喜歡,並分享我的工作~帶你走近AngularJS系列:
如何在 AngularJS 中對控制器進行單元測試 http://www.linuxidc.com/Linux/2013-12/94166.htm
在 AngularJS 應用中通過 JSON 文件來設置狀態 http://www.linuxidc.com/Linux/2014-07/104083.htm
AngularJS 之 Factory vs Service vs Provider http://www.linuxidc.com/Linux/2014-05/101475.htm
AngularJS —— 使用 ngResource、RESTful APIs 和 Spring MVC 框架提交數據 http://www.linuxidc.com/Linux/2014-07/104402.htm
AngularJS 的詳細介紹:請點這裡
AngularJS 的下載地址:請點這裡
查看英文原文:Angular Mobile Toolkit Tries to Make Web Apps Feel Native