Android Weekly Notes Issue #310 (Google IO特别篇)
Android Weekly Issue #310
May 20th, 2018
Android Weekly Issue #290
本期既有本次Google IO对于Play Console的更新简介, 与一篇关于Google最新的Navigation Architecture Component的介绍, 又有数篇对于简化UI Test的工具与方法的介绍,还有JetPack Worker Manager的推介,以及如何仅仅通过Firebase快速搭建一个自己的Instgram小App, 精彩内容不容错过.
ARTICLES & TUTORIALS
Rxify : The startWith { MVI } pitfall
在实现MVI返回State Intent的时候, 可以通过startWith可以添加一些初始化状态,它就类似于concat,将一个新的Observable与之结合,再通过onErrorReturn返回一个错误的状态,保证我们的chain的完备性.
Discover everything new in the Google Play Console
最新的GoogleIO更新了Play Console的新功能,有一些还是挺厉害的.
- App Bundle, 就是你的res可以根据设备加载,比如图片资源,对于xxxdpi的设备就下载一份,语言包也类似.
- 提升了质量检测过程, 通过100个内部测试机运行你upload的程序,还有各种report与analysis帮助你分析潜在问题.
- dashboard以及一些数据呈现更加优化,还可以通过acquisition report获得更多信息,如用户从哪里得到的你的app等等.
- 提升用户订阅服务,通过Billing Library可以轻松实现订阅服务,在Subscriptions Center可以轻松管理用户的订阅订单,还有详细的report帮你分析多种订阅之间的时间,地点等等因素的关系.
- 八月份之前必须得Target到26了.
Kakao - how to make UI testing great again
Kakao是一个kotlin的UI测试框架,基于Espresso,可以大幅度简化使用Espresso的过程,通过Lambda以及Kakao内置的一些操作符,完成测试.
如:
screen {
content { isVisible() }
textViewSmall {
isVisible()
hasAnyText()
}
}
Best Practices for Unit Testing in Kotlin
作者提了好几条建议来提升Kotlin测试的体验
- 使用JUnit5的
@TestInstance(Lifecycle.PER_CLASS)来避免出现一些静态field,这些静态field主要是为了保证在整个测试类中只初始化一次,而JUnit4每一个Test都会重新创建新的Class.取而代之的是可以使用init{}加@BeforeEach. - 使用JUnit5的
@Nested包装测试类中一些特殊的模块,使之更加清晰. - 使用``(backticks)去自定义方法名.
- AssertJ依旧好使.
- 使用Mokito-Kotlin跟MockK来做mock
Exploring Moshi’s Kotlin Code Gen
Moshi是一个JSON解析库,文章介绍了1.6版本使用了新的Kotlin代码生成器,更好的处理了类似Mutablility,Nullability,in/out等等的问题,感兴趣可以自己看一下.
Life with/without services and WorkManager
随着Android对于内存管理的越来越严格,首先是26以上Service无法在后台startService被限制,而系统提供的JobScheduler在23以下有问题,而JobDispatcher又需要Google Service...让人甚是苦恼.
值得高兴的是,Google最近推出的强大的JetPack里面的WorkerManager将解决这个问题.
它内部融合了JobScheduer,JobDispather,AlarmManager等等,并提供了两种Woker,OneTime跟Periodic.让后台操作变得非常轻松.
A year as Android Engineer
文章介绍了作者从一个QA转型为一个Android Dev,并找到新工作的经历,可以当故事看看...
The missing migration guide to the Gradle Kotlin DSL
一个REAMME,介绍了如何从Gradle迁移到Kotlin DSL,喜欢Kotlin的朋友们可以对照着迁移了,一步两步.
Build an Instagram-Like Android App Using Google Firebase
通过Firebase搭建一个类似Instgram的App.
通过Firebase Authenicate来实现登录认证,通过Firebase Storage来实现图片上传,通过Firebase Database来实现数据存储.
自己只需要实现简单的UI,便可以完成简易化的Ins,是不是很开森.
A problem like Navigation
介绍了Google最新推出的Navigation Archtecture Component,来处理Fragment之间的跳转,通过定义xml中的action,就可以完成跳转,通过定义argument就可以完成值传递,以及定义deepLink,可以轻松支持Deeplink.
Pleasant fun painless delightful Espresso testing with Kotlin
一个基于Kakao(Kotlin DSL for Espresso)的Kotlin Espresso库,用于简化UI test的书写.
如可以直接通过Id来索引View直接perform操作,而不必在通过onView...withId...perform来搞的很长.
LIBRARIES & CODE
MockK
kotlin的Mock lib
espresso-helper
Espresso的Kotlin封装
Kakao
上面那个库基于的,也是对于Espresso的封装.
Android Weekly Notes Issue #310 (Google IO特别篇)的更多相关文章
- Android Weekly Notes Issue #227
Android Weekly Issue #227 October 16th, 2016 Android Weekly Issue #227. 本期内容包括: Google的Mobile Vision ...
- Android Weekly Notes Issue #230
Android Weekly Notes Issue #230 November 6th, 2016 Android Weekly Issue #230. Android Weekly笔记, 本期内容 ...
- Android Weekly Notes Issue #229
Android Weekly Issue #229 October 30th, 2016 Android Weekly Issue #229 Android Weekly笔记, 本期内容包括: 性能库 ...
- Android Weekly Notes Issue #283
November 12th, 2017 Android Weekly Issue #283 本期内容包括Gradle相关的几篇,如封装繁杂依赖的技巧,通过kotlin dsl让gradle支持kotl ...
- Android Weekly Notes Issue #321
Android Weekly Issue #321 August 5th, 2018. Android Weekly Issue #321 本期内容包括: 开源项目Plaid的改版; 使用Tensor ...
- Android Weekly Notes Issue #223
Android Weekly Issue #223 September 18th, 2016 Android Weekly Issue #223 本期内容包括: Offline时间戳处理; Acces ...
- Android Weekly Notes Issue #222
Android Weekly Issue #222 September 11th, 2016 Android Weekly Issue #222 ARTICLES & TUTORIALS Fo ...
- 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 ...
随机推荐
- 【LeetCode-面试算法经典-Java实现】【139-Word Break(单词拆分)】
[139-Word Break(单词拆分)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Given a string s and a dictionary of w ...
- Ubuntu 14.04 使用VirtualBox 4.3.10 虚拟 Windows 7
Ubuntu 14.04 尽管不错,可是有些事仅仅能在Windows下才干完毕,所以在 Ubuntu 下利用虚拟机软件Oracle VirtualBox,虚拟安装个Windows系统是个不错的选择. ...
- Galileo Gen2 之MQTT通讯
前言 原创文章,转载引用务必注明链接.如有疏漏,欢迎斧正. Galileo系统:完整版Yocto,内核版本3.8.7-yocto-standard:宿主机:Windows 7 64 bit 这期主要讲 ...
- 移动端去掉按钮button默认样式
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- linux设备驱动程序之并发和竞态(二)
事实上这blog都是阅读ldd3时的一些总结,巩固自己的学习.也方便后期的使用.大家也能够直接阅读ldd3原文. 锁陷阱 所谓的锁陷阱就是防止死锁. 不明白的规则: ...
- jquery Table基础操作
鼠标移动行变色 $("#table1 tr").hover(function(){ $(this).children("td").ad ...
- 用命令行执行ROBOT FRAMEWORK
除了在ride中执行用例,我们也可以通过命令行的形式执行用例. 1.执行一整个项目 pybot+项目路径 2.执行某个测试集 pybot+测试集的路径 3.执行某个测试集里面的某个用例 pybot - ...
- netty 对 http 的实现
netty的http协议栈无论是性能还是可靠性,都表现优异,非常适合在非web容器场景 下应用,相比于tomcat.jetty等web容器,它更轻量.小巧.灵活性和定制性也好: 总结:只要实现了htt ...
- 【翻译自mos文章】执行utlpwdmg.sql之后报ORA-28003, ORA-20001, ORA-20002, ORA-20003, ORA-20004 错误
执行utlpwdmg.sql之后报ORA-28003, ORA-20001, ORA-20002, ORA-20003, ORA-20004 错误. 适用于: Oracle Server - Ente ...
- Sping Boot入门到实战之实战篇(二):一些常用功能的Spring Boot Starters
包含功能 阿里云消息服务MNS 阿里云消息队列服务(即时消息.延迟消息.事务消息) AOP日志 基于MyBatis通用Mapper及DRUID的数据库访问 dubbo支持 错误处理 七牛图片服务 re ...