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相关的内容等.
作者他们的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.
设置Logcat的颜色; 使用Live Templates; 快捷键使用; Android Studio的插件; 还有一些资源分享.
Design support library 25.0.0推出了BottomNavigationView, 本文介绍其使用.
这篇文章主要讲移动应用数据追踪和分析的几个原则:
为什么要使用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中的引用类型:
作者详细介绍了每一种引用并用例子说明了使用场景.
作者他们的新闻应用采用MVVM + RxJava架构, 本文总结了他们遇到的问题和学到的两点:
TV Input Framework(TIF)和Android TV让第三方应用开发者可以很容易地创建自己的电视频道.
Android support library中的MediaSessionCompat
使用, 以及如何用它来做一个背景音乐.
FirebaseUI for Android — UI Bindings for Firebase.
一个自定义的RecyclerView的layout manager, 流式地显示很多小块的TextView.