Android Weekly Issue #320

July 29th, 2018

Android Weekly Issue #320

本期内容包括: Firebase的MLKit; 关于写Android单元测试的几个原则; 用JS代码写Emoji; 用Gradle执行Kotlin脚本; 一个用Kotlin结合Retrofit, LiveData进行网络请求的例子;

用Jitpack发布库来解决想使用库的未发行版本的问题; 在电脑上为不同的项目配置不同的SSH和Git configs; Kotlin的Observable, 代理属性的使用; 谈谈在团队中的远程交流.

ARTICLES & TUTORIALS

Exploring Firebase MLKit: Landmark Detection (Part Four)

使用Firebase MLKit进行地标检测.

Seven Principles of Great Android Unit Tests

好的单元测试的七个原则:

  • 快. (不要用Robolectric, 少用PowerMock, 真正需要的时候才用Mockito.)
  • 独立. (只做一件事, 彼此不依赖.)
  • 彻底. (每种情况都有.)
  • 可重复. (不能具有不确定性, 不能依赖真实IO, 不共享单例.)
  • 专业. (设计, 重构.)
  • 可读.
  • 自动化.

Making Emojis with Code

这个网站可以用来写前端代码: JSFiddle.net.

本文示范了如何用svg tag和js代码写一个有简单交互的emoji表情.

Execute Kotlin Scripts with Gradle

如何用Gradle执行Kotlin脚本.

Simple network calls using Retrofit, LiveData, Kotlin Coroutines and DSL

本文介绍了用Kotlin结合Retrofit进行网络请求, 结合LiveData返回数据和请求状态.

之后又用DSL进行抽象, 变成一个通用的请求方法, 以简化代码.

No Version? No Problem! .. Jitpack comes to the rescue

如果想使用一个库中还未发布的部分(新特性, bug修复), 应该怎么办呢?

有两种选择:

  • 把库代码当做一个module引入.
  • Fork后作为aar加入.

但是这两种方法都不是很好.

本文介绍的方法是利用JitPack.

你可以fork一个库, 选择一个节点, 然后就可以在项目中使用它了.

There’s never been a better time to learn Android development

现在是一个学习Android的好机会, 因为开发的很多方面都被重置了.

首先, 开发语言: Kotlin.

其次, 布局: ConstraintLayout.

构架方式: Google推出的Architecture Components.

文中附有一些相关的资源链接.

Splitting SSH and git configs

如何在电脑上为工作和私人项目区分SSH Keys和Git configs.

Listeners with Observable, from Kotlin's Delegated Properties

要监听变量的变化有很多方法, 本文讲用Kotlin的observable property来实现.

例子:

class Book {
var title: String by observable("untitled") { _, oldValue, newValue ->
onTitleChanged?.invoke(oldValue, newValue)
} var onTitleChanged: ((String, String) -> Unit)? = null
}

还可以用vetoable, 提供了筛选值的方法.

class Book {
var title: String by vetoable("untitled") { _, oldValue, newValue ->
!newValue.isEmpty()
}
}

Kotlin还提供了一些有用的属性操作类, 见: kotlin.properties.

Thoughts on Remote Communication

关于工作中的远程交流问题讨论.

LIBRARIES & CODE

Kin Ecosystem Android SDK

Kin ecosystem sdk.

detox

端到端的灰盒测试和自动化库. 支持iOS, Android和RN应用测试.

Philology

用这个库可以动态地更改Android应用中的字符串. 其实现是截取了View inflate的过程.

Awesome Kotlin Resources

Kotlin的资源集合网站.

Android Weekly Notes Issue #320的更多相关文章

  1. Android Weekly Notes Issue #230

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

  2. Android Weekly Notes Issue #227

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

  3. Android Weekly Notes Issue #237

    Android Weekly Issue #237 December 25th, 2016 Android Weekly Issue #237 这是本年的最后一篇issue, 感谢大家. 本期内容包括 ...

  4. Android Weekly Notes Issue #229

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

  5. Android Weekly Notes Issue #221

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

  6. Android Weekly Notes Issue #219

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

  7. Android Weekly Notes Issue #236

    Android Weekly Issue #236 December 18th, 2016 Android Weekly Issue #236 本期内容包括: Google的物联网平台Android ...

  8. Android Weekly Notes Issue #235

    Android Weekly Issue #235 December 11th, 2016 Android Weekly Issue #235 本期内容包括: 开发一个自定义View并发布为开源库的完 ...

  9. Android Weekly Notes Issue #234

    Android Weekly Issue #234 December 4th, 2016 Android Weekly Issue #234 本期内容包括: ConstraintLayout的使用; ...

随机推荐

  1. django导出数据到excel

    import xlwt,StringIodef dumpData(request): #获取数据 activitys = Activity.objects.all().order_by('id') i ...

  2. *** Python版一键安装脚本

    本脚本适用环境:系统支持:CentOS 6,7,Debian,Ubuntu内存要求:≥128M日期:2018 年 02 月 07 日 关于本脚本:一键安装 Python 版 *** 的最新版.友情提示 ...

  3. 2016.11.25 activiti的配置文件解析

    参考来自activiti的用户手册.   activiti的配置文件解析 1.processEngine的配置 注意,单独创建流程引擎与spring方式创建流程引擎是不一样的,区别在于:process ...

  4. cocos2dx3.x使用cocostudio触摸事件不响应的奇葩问题

    刚刚使用3.1,发现了一些关于触摸的不同之处,对于习惯于2.x的人还是认为坑啊,简单总结一下: 使用cocostudio加进来的ui,当某个可触但不可见的时候,给他加入不论什么触摸监听事件都是依照不可 ...

  5. Chrome 插件 CrxMouse 去除后门优化版

    说明 CrxMouse 是一款挺不错的 Chrome 插件.仅仅是据说这个插件会在后台偷偷的上传用户的浏览数据,无论上传的内容是不是涉及隐私数据,总让人认为不放心,可是因为插件本身功能还是挺好用的,所 ...

  6. layui-字体图标

    layui官网下载:GitHub:https://github.com/sentsin/layui/ layui官网首页-下载:http://www.layui.com/ layui-字体图标-官方网 ...

  7. DevOps必备的20款顶级工具

    原文地址:http://os.51cto.com/art/201606/512423.htm 开发运维工具与软件开发领域的最佳实践密切相关,也与必要的规范密切相关.在整个开发生命周期涉及到一大批新旧工 ...

  8. Linux下Nginx安全证书ssl配置方法

    分享下我是如何一步步在Nginx上配置SSL的.首先,确保安装了OpenSSL库,并且安装Nginx时使用了–with-http_ssl_module参数. 初学者或者菜鸟建议使用LNMP进行一键安装 ...

  9. 宜人贷PaaS数据服务平台Genie:技术架构及功能

    上篇:架构及组件 一.数据平台的发展 1.1 背景介绍 随着数据时代的到来,数据量和数据复杂度的增加推动了数据工程领域的快速发展.为了满足各类数据获取/计算等需求,业内涌现出了诸多解决方案.但大部分方 ...

  10. 开源项目Universal Image Loader for Android 说明文档 (1) 简单介绍

     When developing applications for Android, one often facesthe problem of displaying some graphical ...