廣商部落格衝刺第三天new

kazehanaai發表於2015-06-03

第二天沖刺傳送門

第三四天沖刺傳送門

 

     這一天我們主要是弄網頁前臺設計跟框架設計,這方面主要是由張奇聰負責。我們在amaze ui,smart ui,angularjs+bootstrap中挑選,最終選擇了amaze ui作為模板來設計前臺。首先做出了標題以及基本框架,裡面有使用者登陸,註冊,第一行模組是用於分不同系別,每個系別裡面都有還有三個模組,第一個模組是用於師生們閒聊,第二個模組是用於師生們活動,第三個模組是用於師生們交易。我們還想再加一些友情連結,比如失物招領,外賣點餐,兼職,培訓,校園包車,二手交易等等,只為服務廣商所有師生們!我們還會把廣商裡發生的重大事件或重大新聞優先用公告展示出來,第一官方訊息也會先告示所有師生們,絕對比其它部落格快速,準確,可靠,便於讓師生們第一時間得到訊息。我們會盡量做成為廣商第一部落格!

     我們設計的網頁基本頁面是這樣的:

     說起Amaze UI框架設計,想必大家也會很熟悉了。因為我們這次前臺是為了同Android現有的標準Amaze UI框架所匹配,所以我們必須與後臺的設計相結合好。我們所設計的Foreground Service,在過去,一部分的這種需求往往採用SharedPreference的方式在不同的介面間實現共享,這樣做不僅有一些額外的開銷(檔案IO),同時資料型別和邏輯的受限也比較明顯。而且,當狀態較為複雜時,每次在狀態切換(如螢幕旋轉)後重建狀態的效能代價也可能影響到使用者體驗。其實,Amaze UI機制完全可以優雅的達成上述前臺服務的需求,得益於Amaze UI本身與介面的緊密聯絡,可以方便的實現服務與UI的雙向互通;受益於Amaze UI自動的生命週期管理,不必刻意提防記憶體洩露;藉助Amaze UI的切換保留(retain)機制,可以在狀態切換期間保持服務不中止。另外,由於Amaze UI的生命週期管理是由框架自動完成的,所以開發者也完全不必在Activity的生命週期事件程式碼中加入各種服務相關的冗贅處理,讓程式碼更簡潔清晰。

     下面圖是我們設計前臺框架時的一些程式碼:

     想我們前臺的建立其實與後臺也很相似的,也是需要按需建立的,我在製作前臺時還需要看好與後臺的互動,讓使用者感覺到用起來很舒暢,沒有什麼瑕疵問題,實實在在讓使用者覺得我們的廣商第一部落格真心好!

     最後我們進行了程式測試:前臺服務由於不直接涉及介面佈局,因此完全不必在螢幕旋轉等狀態切換中重建,從而有效降低這一過程中的體驗延遲,導致實現跨狀態切換保持服務不流暢。為了解決這個問題,我在百度上找了好久才找打一個解決方法,就是在Amaze UI的初始化過程中將自身設定為『可保持』:

@Override public void onCreate(final Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setRetainInstance(true);
}

身為我們這次前臺設計和框架設計的主要負責人張奇聰在這幾天也辛苦了,為了佈置好我們專案的第一步可謂是下足了功夫,也很努力,值得表揚,為我們接下來後臺工作和Android工作打下了堅實的基礎!