顯示具有 Build sofeware better 標籤的文章。 顯示所有文章
顯示具有 Build sofeware better 標籤的文章。 顯示所有文章

2014年7月17日

Build software better - Android AAR 類別庫的使用與分享


什麼是AAR

AAR檔案是Google為Android開發所設計的一種library格式,全名為Android Archive Library,與Java Jar Library不同的地方是AAR除了java code之外也包含res,也就是一些圖片、文字等資源檔案。會設計這種形式的類別庫是因為Google在Android SDK tool r14之後開始支援Library Project的開發方式,這種Library Project可以說是Android APP的半成品,其目標並不是製作成APK來執行,而是提供現成的View/Activiy等一些程式資源給其他開發者使用。而AAR正是這種Library Project編譯後的壓縮檔,壓縮後只需傳遞單一檔案即可分享,可說是相當方便。

目前熱門的網路服務提供者(如Google、Facebook、Evernotec或是Dropbox等)也大多利用這種形式提供開發者來整合其服務於自己的App中,開發者如果想整合這類的網路服務,例如登入畫面或是張貼文章等,可以直接使用服務商所提供的UI元件,將之內嵌於自己的App頁面上。

enter image description here

2014年7月3日

壓縮JavaScript的好工具 - Closure Compiler


enter image description here


一切都是為了使用者體驗


大家滑手機的時候一定最討厭界面卡頓的感覺,圖片或內容可以晚點呈現(甚至跳過也沒關係),但爽快地滑動界面是神聖不可侵犯的使用者特權,只要可以暢快地讓人滑手機就是好App了。我有時候覺得這已經完全改變了我們的世界,例如我家巷口那原本繁忙的早餐店,現在已經鮮少聽到顧客等待早餐製作的不耐抱怨聲,因為大部份的等待時間已經被滑手機給撫慰了,反而覺得“咦!最近老闆煎蛋餅的時間變快了啊 ^^? ”。
因此在偉大的使用者經驗的考量下,無論是Web或APP開發,大家最怕的就是網路塞車或是大量I/O下造成操作的遲鈍,因為使用者通常只要愉悅的瀏覽被打斷幾次,很可能就直接按下home鍵離開了。


如何提升網路服務的效率


Web Design更是受到此一嚴峻的考驗,在先天限制下,Web的運作效能本來就無法跟native application相比,更何況其完整內容+部分程式需要先透過網路傳輸到使用者端的裝置上,雖說為了避免操作上的遲鈍,UI的設計通常會將厚重的動作以非同步的背景方式處理(例如資料查詢或是圖片的下載),但是如果是連UI本身的程式(JavaScript)都需要花大量時間從伺服器下載,那就真的無藥可救了,無論我們提供如何良好的UI設計,使用者都只有等待的份。
為了快速有效地利用頻寬來提供良好的服務,服務提供者通常會先針對其JavaScript進行壓縮來避免上述的問題,希望能在使用者開啟網頁的時候,重要資料可以以最快速的方式下載到瀏覽器上。Google在這方面提供了一個相當實用的壓縮工具:Closure Compiler