1. 程式人生 > >Android Weekly Notes Issue #231

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的ScopeSubcomponent使用; 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.

這項工作主要需要依賴於

RxBinding, 由於RxBinding沒有提供長按RecyclerView item的bind, 所以他們自己寫了一個.
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架構, 本文總結了他們遇到的問題和學到的兩點:

  1. 暴露狀態, 而不是事件;
  2. 所有的事情都應該通過ViewModel.

TV Input Framework(TIF)和Android TV讓第三方應用開發者可以很容易地建立自己的電視訊道.

Android support library中的MediaSessionCompat使用, 以及如何用它來做一個背景音樂.

LIBRARIES & CODE

FirebaseUI for Android — UI Bindings for Firebase.

一個自定義的RecyclerView的layout manager, 流式地顯示很多小塊的TextView.