Android Weekly Notes Issue #290
Android Weekly Issue #290
December 31st, 2017
Android Weekly Issue #290
本期内容包括介绍Kotlin逆变协变的一篇(虽然没说清楚,但我补充了),IoT相关制作MIDI Controler的Part two,以及比较炫酷的Shared Element Reveal动画,以及LiveData与DataBinding相关,Kotlin扩展Fragment/Activity方法做测试,Rx逐条打Log等等.
ARTICLES & TUTORIALS
Lessons learned implementing Redux on Android
文章介绍了模仿Web的Redux,实现其kotlin版本,实现Reducer,通过State与Action来驱动状态的转换.
State -> UI -> Action -> Reducer -> Store.
In and out type variant of Kotlin
文章介绍了Kotlin中泛型添加in与out的意义.
实际上in作为参数表示的是consume方,可以将super type可以赋值给sub type.类似于Java里面的<? super X>,其作为泛型的Collection只能add数据,无法get访问内部成员.
而out作为返回值表示producer,与in相反,它可以将sub type赋值给super type.类似于Java中的<? extends X>,其作为反省的Collection只能get访问,不能add数据.
Building a distributed MIDI Controller with Android Things and Nearby API #2
IoT的MIDI播放器第二篇,感兴趣的可以仔细看.
Meaningful Motion: Circular Reveal & Shared Elements
在Shared Element Transaction Animation的基础上加上了ViewAnimationUtils#createCircularReveal实现Reveal效果. 即Activity/Fragment跳转过程中Shared Element先移动再充满Container.
RxAndroid: Handle Interrupt With “switchMap”
通过switchMap将Happy与Unhappy的pass都加进来(Observer.merge)进行处理,switchMap与flatMap的区别是它内部只有一个active的observer,简单的来说,它不会对转换后的Observable进行merge,而是在新的来到的时候cancel之前的.
The curious case of haunting fragments
作者研究Fragment addToBackStack以及pop之间的事情,但是作者貌似没用对...
所以之后他居然推荐用Activity了,说Fragment太难用...
Unit testing protected lifecycle methods with Kotlin
作者写了个工具库,给Activity的生命周期方法都写了扩展,这样就可以直接通过对象调用了...可以用来写Activity的单元测试.
Kotlin Coding Conventions
Kotlin最新的code style,基本跟Java类似,但这里比较详细,包括什么时候换行,什么时候single line等等.
Lessons from my first multi-platform Kotlin project
作者对Kotlin Multiple Platform进行总结,首先platform层应该根据js/jvm/native进行划分,而不是操作系统,操作系统的划分应该属于之下的regular层,而最上层为common层.
MVP的应用非常重要,其次是下层可以访问上层的一切,上层需要访问下层应该通过expected与actual来实现.
Android Architecture Components LiveData with Data Binding
Google最新的Databinding已经支持LiveData了,通过与LiveData进行绑定,可以保证UI在后台的时候不会因为数据变化而刷新,避免了没有必要的操作.
Briefly about RxJava Logging
作者介绍了通过doOnEach (Flowable)以及doOnEvent(others)来了解Observable的状态,帮助你添加新的feature中debug遇到的问题,不至于整个Rx Chains出现问题而不知道问题处在哪里.
LIBRARIES & CODE
TableView
很项强大TableView,基于RecyclerView,用来显示复杂数据.有点类似数据库表格.
retrofit2-kotlin-coroutines-adapter
Jake Warthon写的支持Kotlin Coroutine的Retrofit2, 返回Deferred类型.
RxTest
像这个来测Rx的Observable,是不是很牛.
Observable.just("Hello RxTest!")
.test {
it shouldEmit "Hello RxTest!"
it should complete()
it shouldHave noErrors()
}
MockK
支持Koltin DSL的mock库, 叫mockk....
KotlinAndroidViewBindings
其实感觉跟ViewBinding没多大关系, 主要是实现了Delegate,可以取代findViewById,Butterknife以及Kotlin Android Extension.
直接通过by bindWithXX()来找到View.
litho-kotlin
Facebook litho的kotlin dsl support.
kotlin-math
支持很多vector计算的lib,帮助简化graphic math.
Android Weekly Notes Issue #290的更多相关文章
- Android Weekly Notes Issue #230
Android Weekly Notes Issue #230 November 6th, 2016 Android Weekly Issue #230. Android Weekly笔记, 本期内容 ...
- Android Weekly Notes Issue #227
Android Weekly Issue #227 October 16th, 2016 Android Weekly Issue #227. 本期内容包括: Google的Mobile Vision ...
- Android Weekly Notes Issue #237
Android Weekly Issue #237 December 25th, 2016 Android Weekly Issue #237 这是本年的最后一篇issue, 感谢大家. 本期内容包括 ...
- Android Weekly Notes Issue #229
Android Weekly Issue #229 October 30th, 2016 Android Weekly Issue #229 Android Weekly笔记, 本期内容包括: 性能库 ...
- Android Weekly Notes Issue #221
Android Weekly Issue #221 September 4th, 2016 Android Weekly Issue #221 ARTICLES & TUTORIALS And ...
- Android Weekly Notes Issue #219
Android Weekly Issue #219 August 21st, 2016 Android Weekly Issue #219 ARTICLES & TUTORIALS Andro ...
- Android Weekly Notes Issue #310 (Google IO特别篇)
Android Weekly Issue #310 May 20th, 2018 Android Weekly Issue #290 本期既有本次Google IO对于Play Console的更新简 ...
- Android Weekly Notes Issue #236
Android Weekly Issue #236 December 18th, 2016 Android Weekly Issue #236 本期内容包括: Google的物联网平台Android ...
- Android Weekly Notes Issue #235
Android Weekly Issue #235 December 11th, 2016 Android Weekly Issue #235 本期内容包括: 开发一个自定义View并发布为开源库的完 ...
随机推荐
- mac xampp命令行调用mysql
参考 http://www.cnblogs.com/machao/p/6206483.html 直接mysql不行,显示command not found 调用 sudo ln -s /applica ...
- SilverLight-DataBinding-DataTemplates: 三、数据绑定 DataTemplates模板的使用(求助,没有到达实例效果,求高人指点迷津)
ylbtech-SilverLight-DataBinding-DataTemplates: 三.数据绑定 DataTemplates模板的使用 1.A, Data Templates Intro(数 ...
- iOS for循环创建button,button的宽度依据上面的文字来自适应.
近期须要使用一个标签页,寻思自己写一个demo. 标签的大小依据上面的文字来自适应大小,须要依据后台返回的数据自己主动换行.没有加入 NSArray *arr = @[@"无知", ...
- 有趣的HTML5/CSS3艺术网站
http://www.html5tricks.com/ 2017年8月31日08:16:21
- URAL1306 Sequence Median(卡内存神题)
给出n个数,n<=250000,求这n个数的中位数,内存限制1mb 卡内存的神题,用数组存下来刚好1mb,再加上执行时消耗内存.立即爆. 因此我们用优先队列存储一半的数. 网上的某些代码,用pr ...
- Linux的经常使用命令(2) - 关机
关机命令 shutdown‑h now 马上进行关机 shutdown‑r now 如今又一次启动计算机 -t sec : -t后面加秒数,即"过几秒后关机" -k : ...
- iOS开发之解析XML格式数据
XML格式的数据是一种数据的传输格式.因为它方便编写.结构清晰,所以深受程序猿的喜爱,非常多人都喜欢使用XML格式数据传输或者作为程序的配置信息. 如今我将来实如今iOS中解析XML格式数据,语言使用 ...
- win7 iis6怎么部署.net网站
win7 iis6怎么部署.net网站,把本机当成网站服务器来简单介绍. 方法/步骤 1 首先在本机有一个可以正常运行的网站.比如vs2010中有一个网站项目,网站项目运行后正常. 2 打开iis6, ...
- Ubuntu下配置Nginx HTTPS
HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入S ...
- java String概述
class StringDemo { public static void main(String[] args) { String s1 = "abc";//s1 是一个类类 ...