你可能會問Yahnac
是什么?是一個黑客新聞客戶端,因為黑客新聞客戶端需求遠遠不夠!
黑客新聞是一個專注于計算機科學和創(chuàng)業(yè)的社會新聞網(wǎng)站,由創(chuàng)業(yè)公司孵化器Y Combinator負責運行。一般來說,可提交內(nèi)容被定義為“可以滿足求知欲的任何內(nèi)容”。
不久前Y Combinator宣布了黑客新聞API。最令人興奮的消息此API使用Firebase。
在功能方面,Yahnac允許閱讀所有黑客新聞內(nèi)容
。最重要的是,你可以添加書簽并長期保持
。
如果你對Yahnac
感興趣,請繼續(xù)閱讀!
http://wiki.jikexueyuan.com/project/android-weekly/images/issue-146/1.1.png" alt="alttext" />
我喜歡Loader,內(nèi)容提供商及其樣板。沒有必要爭論是否是最佳解決方案,明顯不是。
幾個月前RxJava 在Novoda之間逐漸流行起來。像數(shù)字音樂廳等應(yīng)用已經(jīng)開發(fā)出來,成效顯著。
我很慶幸自己擁有 Benjamin Augustin, Volker Leck 和Antonio Bertucci等出色的同事。
遵循以上原則,我使用Rx
和Firebase
把所有框架特定解決方案組合起來。
原理很簡單,數(shù)據(jù)如何從網(wǎng)絡(luò)提取的具體方式不用考慮,只需考慮數(shù)據(jù)庫存儲路徑即可。在網(wǎng)絡(luò)層使用Rx
,數(shù)據(jù)層使用SQlite,UI層使用Loaders
即可實現(xiàn)這些需求。
根據(jù)目前應(yīng)用的API,可能需要檢索到第501個 Firebase
實例,以顯示500 top stories的列表。一個調(diào)用將檢索Top Stories頁面所有項目的ID,然后需要對這些ID的每一個進行另一個調(diào)用,并從新聞項目中檢索數(shù)據(jù)。
Rx
似乎是一個解決這一切問題的完美候選方法,它的積極性方法可以處理所有的遞歸調(diào)用和線程的無縫連接。它還允許操作數(shù)據(jù),并提供數(shù)據(jù)庫層所需求的輸出。這個輸出將是ContentValues,其為一種 ContentProvider
需求。
在UI層面,當使用ContentProvider
時,它可以非常容易地決定如何顯示內(nèi)容。 CursorLoader允許檢索含有所需數(shù)據(jù)的 Cursor,這將非常有意義!
這里只需再進行一步,而且這是解決RecyclerView 和Cursor
之間不兼容問題的方法。在下面的專欄里我會深入探討到實際的實現(xiàn)細節(jié)和問題,如果你有興趣,敬請關(guān)注。
我對關(guān)于該UI和它在不同形式的因素中的樣式有一些疑慮。在最開始的時候,我考慮使用Multi Pane,但是在使用了該應(yīng)用一段時間后,我感覺有些地方不合理。
http://wiki.jikexueyuan.com/project/android-weekly/images/issue-146/1.2.png" alt="alttext" />
在格局上,導覽不是非常清晰,所以我決定使用一個類似于Etsy 的Staggered Grid
制作比較流行的背景。
http://wiki.jikexueyuan.com/project/android-weekly/images/issue-146/1.3.png" alt="alttext" />
同樣,智能手機的用戶界面將能夠適應(yīng)從一列變?yōu)閮闪械那闆r。
http://wiki.jikexueyuan.com/project/android-weekly/images/issue-146/1.4.png" alt="alttext" />
現(xiàn)如今,沒有一個不包含有Material Design principles的得體的應(yīng)用程序被推出,在talking 和presenting 它之后,我也不可能有不同的觀點。
大多數(shù)文章都顯示在WebView中,WebView沒有預留很多空間用于過渡和花哨的動畫顯示。該應(yīng)用程序沒有圖片,因此不能添加漂亮的Palette ,這不是最好的情況嗎?
然而,材料不僅僅是動畫和顏色。也可以很方便地使用像字體
、空間
和波動
等方面,形成一個很大的差異。
http://wiki.jikexueyuan.com/project/android-weekly/images/issue-146/1.5.png" alt="alttext" />
另一個特點是,所有的材料應(yīng)用表明目前是快速返回模式
。這是一個不錯的想法,使用滾動可以讓用戶享受到更多的內(nèi)容。
http://wiki.jikexueyuan.com/project/android-weekly/images/issue-146/1.6.gif" alt="alttext" />
該應(yīng)用程序并沒有完成,其中還有幾個我想增加的特點,比如能夠發(fā)布一條消息或回復評論。你還有更好的提議嗎?請告訴我!該程序的源碼可以從GitHub獲得,歡迎所有的PRs。