Android Weekly Notes Issue #279
October 15th, 2017
Android Weekly Issue #279
本期主要内容包含与Clean Architecture相关的两篇(包结构,离线app),IoT,Google AI (DialogFlow),以及Kotlin Coroutines的相关知识,还包含如何使用Kotlin以及RxJava2提升编码效能的文章,以及Dagger与Firbase配置的文章,以及一篇有意思的制作世界上最小APK的文章.
代码主要看点在于Kotlin Coroutines.
ARTICLES & TUTORIALS
Package-by-Feature in Modularised Android Projects
文章介绍了对于Android Clean Architecture如何按照feature来分包,app会被分为Data,Remote,Cache,Presentation,View五个部分,每个部分都会有一个Conversations的子包包含Model,Mapper等相关模块,并且还包含一些特有的子包,如View会有Inject模块,具体可看原文.
Exploring the .class side of Kotlin — Part 2
文章继续介绍作者的习惯,开一个CS Bytecode Viewer关注每次Kotlin代码改变后, .class的变化.
Android Things – Temperature Sensor, I2C on the Rainbow Hat
文章介绍了如何通过I2C协议开发IoT,这里用到的是Rainbow Hat,一个温度传感器.
Building Offline-First App using MVVM, RxJava, Room and Job Queue
文章介绍了作者的一个Demo,实现了离线功能,架构上使用了Clean Architecture,UI与Database唯一绑定,后台运行SchedulerJob对数据库的数据进行Sync,如果成功将isSynced更新为True,如果失败则将其删掉.
Exploring Dialogflow: Understanding Agent Interaction
Google的API.IA十月份换名字啦,现在叫DialogFlow,听起来是不是更生动了一些.
文章介绍了DialogFlow的一些概念,如Invocation定义如何启动会话,Intent定义一个话题,User Saying定义某个话题的关键词来触发话题,Entities是Request关键字的映射,Fulfillment Request是通过Entity Value来查询结果填充问题答案的过程,Response是最终给User的答案.
Setup Firebase on Android with multiple environments
如何在Android与iOS上配置Firebase...
Improve your tests with Kotlin in Android — Pt.2
文章介绍了通过kotlin的特点以及mockito-kotlin来对传统的代码进行改造.
如使用了``(backticks)把你的test方法名包起来可以加空格标点成为一句话,更有意义.
使用apply或者with来省略receiver
使用
mock { on {} then {} }
来封装一些无参的when().then()等.
Playing APK Golf
文章讲述了如何制作一个世界上最小的APK,只有1757Bytes,并称如果谁能再缩小可以提pr,这个最小的apk连dex文件都删掉了,整个apk只有包含一个touch出来的dex与简化后的manifest,而且在Android O上是合法的apk.
Keeping the Daggers Sharp
介绍了Dagger2的一些基本知识,包括@Provides与@Inject,@Binds等等,内容不多.
The missing RxJava 2 guide: Supercharge your Android development
文章是一个帮助你从异步回调世界来到React世界的说明书,先讲述了RxJava的优势.
- 轻松掌管多线程
- 再也不会为回调无底洞烦恼
- 很好的错误处理机制
- 强大的operator
- 代码更少错误更少bug更少
- 跨平台(主要每个平台都有对应的Rx框架)
而后介绍了3O,Observable,Observer,Operator,以及线程相关的操作符.
Modular Architecture for faster Build Time
介绍了如何提升Build速度,当然除了常设置的gralde属性,如开启daemon,parallel,单元测试开启多线程,多VM支持.
更重要的是,程序最好模块化,这样不改动的module将不会编译,提升了整体速度.
Diving deep into Kotlin Coroutines
介绍了Kotlin实验室的Coroutines的一些知识,最简单的launch{}与可以返回值的async{},可以阻塞当前coroutine的suspend function,以及可以等待线程完成的await()与join()
Reactive Mythology: Interrupt Patterns
文章介绍了通过一些操作符来实现Intercept,如takeUtil,或者通过compose来截断(switchOnNext到Observable.nerver),或者与会抛异常的Observable来merge,具体可以查看他的code.
LIBRARIES & CODE
literallytoast
说是Toast,但实际上是个弹框,这个库给你真正弹出一个烤面包来.
chips-input-layout
可以把输入框输入字串包在一个Chips里面,每一个Chips可以单独关闭或者放大..有的库可能叫Pills.

浙公网安备 33010602011771号