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. linux yum 安装软件

    概括了部分常用的yum命令包括: 自动搜索最快镜像插件:yum install yum-fastestmirror安装yum图形窗口插件:yum install yumex 1 安装yum insta ...

  2. ylb: 数据库备份(Backup)和还原(Restore)

    ylbtech-SQL Server:SQL Server- 数据库备份(Backup)和还原(Restore) -- ======================================== ...

  3. 清空catalina.out报错Permission denied

    今天在清空catalina.out的时候报错 [yangkun@sg logs]$ sudo echo '' > catalina.out -bash: catalina.out: Permis ...

  4. Linux 指令篇:系统设置--set

    功能说明:设置shell. 语 法:set [+-abCdefhHklmnpPtuvx] 补充说明:set指令能设置所使用shell的执行方式,可依照不同的需求来做设置. 参 数: -a  标示已修改 ...

  5. 学习使用用Eclipse编写java程序

    本文讲解了在Eclipse中完成一个HelloWorld程序的编写过程. 刚刚学习java的同学们可能用 记事本编写java源代码,在命令提示符中完成java程序的编译和运行过程.这样的方法对于学习j ...

  6. .NET实现爬虫

    前几天看到一个.NET Core写成的爬虫,有些莫名的小兴奋,之前一直用集搜客去爬拉勾网的招聘信息,这个傻瓜化工具相当于用HTML模板页去标记DOM节点,然后在浏览器窗口上模拟人的浏览行为同时跟踪节点 ...

  7. HDU 4930 Fighting the Landlords(扯淡模拟题)

    Fighting the Landlords 大意: 斗地主... . 分别给出两把手牌,肯定都合法.每张牌大小顺序是Y (i.e. colored Joker) > X (i.e. Black ...

  8. scikit-learn(project中用的相对较多的模型介绍):2.3. Clustering(可用于特征的无监督降维)

    參考:http://scikit-learn.org/stable/modules/clustering.html 在实际项目中,我们真的非常少用到那些简单的模型,比方LR.kNN.NB等.尽管经典, ...

  9. partition by和group by对比

    今天大概弄懂了partition by和group by的区别联系. 1. group by是分组函数,partition by是分析函数(然后像sum()等是聚合函数): 2. 在执行顺序上, 以下 ...

  10. Spring cloud微服务实战——基于OAUTH2.0统一认证授权的微服务基础架构

    https://blog.csdn.net/w1054993544/article/details/78932614