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. DNS_主从服务_详细搭建&&配置

    DNS主从 安装环境: 三台dns服务器如下: 系统:均为centos7 dns_master:192.168.169.194 dns_slave-1:192.168.169.195 dns_slav ...

  2. 在cmd窗口输入命令遇到You must run this command from a command prompt with administrator privilege怎么办?

    点开始菜单,找到Accessories(附件),找到Command Prompt窗口,点右键,选“run as administrator”(以管理员身份运行),之后再执行先前的命令就好了. 2017 ...

  3. 拿wordpress站的一个小技巧

    记得09年时wp爆过一个重置管理口令的漏洞, 现在用法差不多, 也是我刚刚发现, 网上也没找到有讲述关于这个的. 前提:是在有注入点(注入点的话可以通过寻找插件漏洞获得.), 密码解不开, 无法out ...

  4. Iowait的成因、对系统影响及对策

    什么是iowait?顾名思义,就是系统因为io导致的进程wait.再深一点讲就是:这时候系统在做io,导致没有进程在干活,cpu在执行idle进程空转,所以说iowait的产生要满足两个条件,一是进程 ...

  5. csdn开源夏令营-ospaf中期报告

    1.背景         随着将中期的代码托管到CSDN的平台上,ospaf(开源项目成熟度分析工具)已经有了小小的雏形.当然还远远不够.       首先还是要感谢这次活动组织方CSDN,感觉挺有G ...

  6. eclipse高速查找一个变量、方法或者类被引用的地方

    近期不停debug,拿到一个变量之后总是要先概览一下才好下手,之前一直用Ctrl+F来做,太麻烦. 今天查了下eclipse使用,发现有快捷键,用法: 先双击要查看的变量.方法或者类,使之被选中,然后 ...

  7. 【Python】程序在运行失败时,一声不吭继续运行pass

    在前面程序出现异常时,我们都会给一个提示,告诉用户,程序为什么会异常,但是现在我们想在程序出现异常时,不做处理,让程序默默的往下执行,不要做声. 那么我们就引入了pass语句 def count_wo ...

  8. C++一元多项式相加

    实验名称:一元多项式相加 // multiply.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream& ...

  9. Spring2.5学习3.2_编码剖析@Resource注解的实现原理

    首先看一下J2EE提供的@Resource注解:该注解默认安照名称进行装配,名称能够通过name属性进行指定, 假设没有指定name属性,当注解写在字段上时,默认取字段名进行依照名称查找,假设注解写在 ...

  10. [原创] 浅谈开源项目Android-Universal-Image-Loader(Part 3.1)

    最近,总算有时间去做些平时喜欢而没空去做的事情.一直觉得项目中使用的Image Loader适用性不强,昨晚在github随便逛逛,发现一个开源项目Android-Universal-Image-Lo ...