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特别篇)的更多相关文章

  1. Android Weekly Notes Issue #227

    Android Weekly Issue #227 October 16th, 2016 Android Weekly Issue #227. 本期内容包括: Google的Mobile Vision ...

  2. Android Weekly Notes Issue #230

    Android Weekly Notes Issue #230 November 6th, 2016 Android Weekly Issue #230. Android Weekly笔记, 本期内容 ...

  3. Android Weekly Notes Issue #229

    Android Weekly Issue #229 October 30th, 2016 Android Weekly Issue #229 Android Weekly笔记, 本期内容包括: 性能库 ...

  4. Android Weekly Notes Issue #283

    November 12th, 2017 Android Weekly Issue #283 本期内容包括Gradle相关的几篇,如封装繁杂依赖的技巧,通过kotlin dsl让gradle支持kotl ...

  5. Android Weekly Notes Issue #321

    Android Weekly Issue #321 August 5th, 2018. Android Weekly Issue #321 本期内容包括: 开源项目Plaid的改版; 使用Tensor ...

  6. Android Weekly Notes Issue #223

    Android Weekly Issue #223 September 18th, 2016 Android Weekly Issue #223 本期内容包括: Offline时间戳处理; Acces ...

  7. Android Weekly Notes Issue #222

    Android Weekly Issue #222 September 11th, 2016 Android Weekly Issue #222 ARTICLES & TUTORIALS Fo ...

  8. Android Weekly Notes Issue #221

    Android Weekly Issue #221 September 4th, 2016 Android Weekly Issue #221 ARTICLES & TUTORIALS And ...

  9. Android Weekly Notes Issue #219

    Android Weekly Issue #219 August 21st, 2016 Android Weekly Issue #219 ARTICLES & TUTORIALS Andro ...

随机推荐

  1. node/webpack/react

    node是运行引擎,通过他可以直接在后端运行js语法 webpack是打包工具 react是前端框架 通过 npm 使用 React 我们建议在 React 中使用 CommonJS 模块系统,比如 ...

  2. java编程思想第四版第9章

    练习3: public class MainTest { public static void main(String args[]){ Bcycle b=new Bcycle(); b.print( ...

  3. DIY树莓派之随身工具箱

    摆弄树莓派有一年多了,在这里把经验分享给大家,少走弯路. 先放图两张. 搭建目的: wifi信号中转站\网站服务器\IC卡渗透测试\中间人\otr… 基于树莓派3 系统为Kali Linux 2017 ...

  4. OSG+VS2010+win7环境搭建 (转)

    OSG+VS2010+win7环境搭建 Win7下 osg+vs2010环境搭建 一.相关准备 a) Osg源码 当前最新版:OpenSceneGraph的3.0.0.zip 下载链接: http:/ ...

  5. TensorFlow笔记五:将cifar10数据文件复原成图片格式

    cifar10数据集(http://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz)源格式是数据文件,因为训练需要转换成图片格式 转换代码: 注意文件路 ...

  6. 【前端阅读】——《活用PHP、MySQL建构Web世界》摘记之设计技巧

    二.设计技巧 Programming的习惯因人而异,这里只提供一些经验,可以参考. 1.利用Include模块化你的程序代码 Include函数基本上说:就像是把另一个文件(HTML或者PHP程序)读 ...

  7. pkav之当php懈垢windows通用上传缺陷

    $pkav->publish{当php懈垢windows}剑心@xsser抛弃了我,但我却不能抛弃乌云..php懈垢windows,就像男人邂逅女人,早晚都会出问题的..感谢二哥@gainove ...

  8. vue2.X 组件通信($emit $on props)

    1.index.html  子组件直接修改父组件的数据 组件通讯: vm.$emit(); vm.$on(); 父组件和子组件: 子组件想要拿到父组件数据: 通过 props 之前,子组件可以更改父组 ...

  9. 【Sprint3冲刺之前】TD学生助手——alpha版发布

    TD学生助手——alpha版发布 1.设想和目标  1.我们的软件要解决的问题 TD学生助手的主要核心思想就是帮助学生安排他们忙碌的学校生活.主要是通过以下几个方面 1.通过学生的需要进行分类(考试, ...

  10. ie63像素bug原因及解决办法不使用hack

    1.浮动元素后边跟不浮动元素时会产生3像素bug 2.解决办法是不要忘记给浮动元素的相邻元素加上浮动.