Android Weekly Notes Issue #231
Android Weekly Issue #231
Android Weekly閱讀筆記, Issue #231, 本期內容包括: MVP中的View做成passive響應式的, 返回Observable; Android Studio使用技巧; BottomNavigationView
的使用; App tracking; Kotlin; 用Kotlin實現的Filter Animation效果; Dagger2的Scope
和Subcomponent
使用; Espresso測試中mock dagger注入; Android和Java中的Reference和記憶體洩露; MVVM + RxJava構架實際使用的經驗分享; 還有TV以及Audio相關的內容等.
ARTICLES & TUTORIALS
作者他們的app近來重構採用了RxJava和Clean Architecture, 進而想要使用passive view, 然後他們就發現了關於Reactive Views的一系列文章, 尤其是這一篇: RxUi: Talking to Android View layer in a Reactive way.
他們的主要工作就是把View也改成響應式的, 即View返回Observable. 在Presenter初始化的時候和View的Observable繫結, 所以事件發生的時候會trigger到presenter.
這項工作主要需要依賴於
Snackbar也是: SnackbarActionOnSubscribe.
作者採用這種方式重構了他們的程式碼, 使得view變成完全passive的.
設定Logcat的顏色; 使用Live Templates; 快捷鍵使用; Android Studio的外掛; 還有一些資源分享.
Design support library 25.0.0推出了BottomNavigationView, 本文介紹其使用.
這篇文章主要講移動應用資料追蹤和分析的幾個原則:
- 為什麼你需要tracking;
- 什麼時候需要收集資料;
- 用什麼Analytics tool;
- 使用者隱私相關;
- 程式碼設計模式以及挑戰;
- 如何debug和測試輸出;
- 如何分析資料;
為什麼要使用Kotlin來做Android開發? 簡潔, 安全, 靈活, 和Java可互相操作.
文中介紹了Null Safety, Smart Casting, Default Arguments, Named Arguments, Functional Programming, Concise Code.
作者他們搞了一個應用FIT, 為女性IT工作者提供社群和交流平臺, 想要成為Quora加上Linkedin.
為了讓使用者選擇分類和過濾器tag進行搜尋, 他們開發了一個元件: SearchFilter.
文中討論了這種設計的動畫實現, 庫是用Kotlin寫的.
本文講什麼是Scope, 如何定義Scope, 如何使用Scope和@Subcomponent.
Subcomponent會繼承父類的所有bindings.
作者定義了一個Activity的Scope, 然後定義了一個Subcomponent專門給這個Activity用, 這個Subcomponent只在這個Activity的生命週期裡存活. 程式碼例子比較簡潔易懂.
這篇文章介紹瞭如何在寫Espresso測試的時候, 使用一個測試用的Dagger Component.
這篇文章講了Java中的引用型別和Android中的記憶體洩露.
Java中的引用型別:
- Strong reference
- WeakReference
- SoftReference
- PhantomReference
作者詳細介紹了每一種引用並用例子說明了使用場景.
作者他們的新聞應用採用MVVM + RxJava架構, 本文總結了他們遇到的問題和學到的兩點:
- 暴露狀態, 而不是事件;
- 所有的事情都應該通過ViewModel.
TV Input Framework(TIF)和Android TV讓第三方應用開發者可以很容易地建立自己的電視訊道.
Android support library中的MediaSessionCompat
使用, 以及如何用它來做一個背景音樂.
LIBRARIES & CODE
FirebaseUI for Android — UI Bindings for Firebase.
一個自定義的RecyclerView的layout manager, 流式地顯示很多小塊的TextView.