December 24th, 2017

Android Weekly Issue #289

今年最后一篇, 包含了可以上传log记录的HyperLog,以及Android的面试技巧,还有Model的分层,以及如何迁移到Room.
还有比较炫酷的一个Path动画的实现方法值得去看.剩下的多是一些入门介绍,如kotlin,firebase messaging,contraintset animation等.

ARTICLES & TUTORIALS

HyperLog: Android Remote Logger Library for Debugging

作者讲了很多人苦恼有时候插线数据线Logcat给清掉了,也看不到日志信息,而Timber活着Logger也没法支持Production环境,推荐了HyperLog,可以上传日志文件到远端服务器,可以设定一些schedular定时上传.

Bring life to your custom view

文章介绍了通过动画来绘制一个自定义View,原理是通用的,就是首先分析你的图形构成的元素,需要哪些变量的变化,然后通过ValueAnimator控制这些变量的变化,再通过invalidate触发onDraw依照变量的值进行绘制.

Interviewing Tips for Android Engineers

作者作为Lyfy的一员,作者很高兴的分享自己的一些新的帮助面试者,介绍了Android面试的一些tips,包含从开始的电话初面或者作业,到后来的Java面,Android UI相关技能面,Android Infrastructure面,以及Design与Background的面所应该注意的点以及准备的方法.

Using Architecture Components with Firebase Database - Part 3

文章继续之前通过LiveData封装FirebaseDatabase,与ViewModel结合实现MVVM的工作.

这是第三部分,主要介绍如何优化没有必要的query,Activity有可能因为转屏导致configuration changed,从而引起LiveData瞬间切换到Inactive又变成Active,导致数据库重复的query.

解决方案是将销毁操作封装到延迟的Runnable里面,发送给Handler,并设置标记位.在onActive中检测标记为,如果发现仍然在pending状态,就removeCallbacks,清楚消息…

Data model mapping in Android Apps

文章一步一步介绍了我们应该如何处理我们的Model,其实是希望我们应该对我们的Model进行分层.

API与Cache的原始数据,以及与我们核心业务相关的Domain层,再者就是包含UI state等信息的Presentation层了.

其实就是我们常说的Model->Domain->Presentation.

当然在我们所谓BFF(backends for frontends)理论下(简单来说就是Server为Mobile加一层转换,直接输出显示内容相关数据),可以省去Model与Domain层,但一些UI的state我们仍需想办法维护.

Incrementally migrate from SQLite to Room

介绍了如何逐步将你的db迁移到room.

  • 首先根据你的table定义Entity.
  • 其次实现RoomDatabase,增加版本号并加上空的Migration逻辑.
  • 使用SupportSQLiteOpenHelper替换原有的SQLiteOpenHelper,如果你之前没有使用raw的sql语句,需要用使用SupportSQLiteQuery拼出query条件.
  • 写自己的DAO,替换掉Cusor的操作.

Boost your app reviews with Firebase Predictions!

介绍了利用Firebase正在测试阶段的Predictions帮助我们决定何时弹提醒用户评分的框框.

Playing with Paths

介绍了如何绘制轨迹动画,挺炫酷的,主要使用到了PathDashPathEffect.

How to add Push Notification capability to your Android app

文章介绍了如何通过Firebase Messaging来做推送,包含了详细的Client端的配置,以及Server端的Initialize.

Animations with ConstraintLayout and ConstraintSet

文章介绍了通过ConstraintSetConstraintLayout添加一些如ChangeBounds的动画.

Getting started with Kotlin on Android

Kotlin简单的入门教程,包含IDE的配置,以及几个Kotlin的特点,如when等等.非常初级,想入门的可以多看看…呵呵…

LIBRARIES & CODE

hyperlog-android

可以将log记录发到后台的一个库.

android-clean-architecture-mvi-boilerplate

所谓基于MVI的Clean Architecture.

ReactiveNetwork

基于RxJava监听网络状态的库.