Android Weekly閱讀筆記, Issue #231, 本期內容包括: MVP中的View做成passive響應式的, 返回Observable; Android Studio使用技巧; `BottomNavigationView`的使用; App tracking; Kotlin; 用Ko... ...
Android Weekly Issue #231
November 13th, 2016
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
Reactive Views: retrying errors
作者他們的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.
這項工作主要需要依賴於RxBinding, 由於RxBinding沒有提供長按RecyclerView item的bind, 所以他們自己寫了一個.
Snackbar也是: SnackbarActionOnSubscribe.
作者採用這種方式重構了他們的代碼, 使得view變成完全passive的.
並且其中還有一個retryWhen()
使用的解釋: RxJava's repeatWhen and retryWhen, explained.
50 Android Studio Tips, Tricks & Resources
設置Logcat的顏色; 使用Live Templates; 快捷鍵使用; Android Studio的插件; 還有一些資源分享.
BottomNavigationView
Design support library 25.0.0推出了BottomNavigationView, 本文介紹其使用.
The key concepts of app tracking for developers
這篇文章主要講移動應用數據追蹤和分析的幾個原則:
- 為什麼你需要tracking;
- 什麼時候需要收集數據;
- 用什麼Analytics tool;
- 用戶隱私相關;
- 代碼設計模式以及挑戰;
- 如何debug和測試輸出;
- 如何分析數據;
Why You Must Try Kotlin For Android Development?
為什麼要使用Kotlin來做Android開發? 簡潔, 安全, 靈活, 和Java可互相操作.
文中介紹了Null Safety, Smart Casting, Default Arguments, Named Arguments, Functional Programming, Concise Code.
Implementing Filter Animation in Kotlin
作者他們搞了一個應用FIT, 為女性IT工作者提供社區和交流平臺, 想要成為Quora加上Linkedin.
為了讓用戶選擇分類和過濾器tag進行搜索, 他們開發了一個組件: SearchFilter.
文中討論了這種設計的動畫實現, 庫是用Kotlin寫的.
DI 101 — Part 3
本文講什麼是Scope, 如何定義Scope, 如何使用Scope和@Subcomponent.
Subcomponent會繼承父類的所有bindings.
作者定義了一個Activity的Scope, 然後定義了一個Subcomponent專門給這個Activity用, 這個Subcomponent只在這個Activity的生命周期里存活. 代碼例子比較簡潔易懂.
How Dagger 2 Helps In Android Espresso Tests
這篇文章介紹瞭如何在寫Espresso測試的時候, 使用一個測試用的Dagger Component.
Finally understanding how references work in Android and Java
這篇文章講了Java中的引用類型和Android中的記憶體泄露.
Java中的引用類型:
- Strong reference
- WeakReference
- SoftReference
- PhantomReference
作者詳細介紹了每一種引用並用例子說明瞭使用場景.
MVVM + RxJava: Learnings
作者他們的新聞應用採用MVVM + RxJava架構, 本文總結了他們遇到的問題和學到的兩點:
- 暴露狀態, 而不是事件;
- 所有的事情都應該通過ViewModel.
Adding TV Channels to Your App with the TIF Companion Library
TV Input Framework(TIF)和Android TV讓第三方應用開發者可以很容易地創建自己的電視頻道.
Background Audio in Android With MediaSessionCompat
Android support library中的MediaSessionCompat
使用, 以及如何用它來做一個背景音樂.
LIBRARIES & CODE
FirebaseUI-Android
FirebaseUI for Android — UI Bindings for Firebase.
ChipsLayoutManager
一個自定義的RecyclerView的layout manager, 流式地顯示很多小塊的TextView.