Android Weekly Notes Issue #278

作者: 圣骑士wind | 来源:发表于2017-10-13 23:21 被阅读54次

    October 8th, 2017

    Android Weekly Issue #278

    本周内容主要包括两篇涉及Kotlin高级用法的文章,RXJava解决本地与远端存储的冲突,应该如何选择模拟器来测试,Paging Library的使用等等.

    代码部分值得看的是Kolin相关的文章.

    ARTICLES & TUTORIALS

    MidiPad – Tricks With Kotlin And Architecture Components

    文章介绍了如何利用Kotlin的特性来结合Google Architecture Component进行开发.

    其中有三个Trick

    1. 利用lazy {} 来做延迟加载Field变量, 并重写去除了其本身的线程安全,提升速度
    2. 利用by实现delagate,把SpinnerAdapter的一部分功能交给ArrayAdapter来实现,自己只需要关注其特有回调即可.
    3. 给Activity添加Extension,将ViewModelProvider.Factory与其create封装其中,使得创建ViewModel简单又Lazy.

    Database with Room using RxJava

    文章比较简单,主要就是在RoomDao定义的时候,query的返回值可以直接声明为Flowable,这样查询的时候就react了,可以轻松的讲查询放在io线程,写删改等操作数据库的方法直接用RxJava直接封装即可,文章用的Completable

    Create a Clean-Code App

    文章比较前沿,使用Architecture Component开发了一个天气应用,亮点在于用Kotlin实验室的Kotlin Coroutines取代了RxJava,核心逻辑在用suspendCoroutine把Retrofit的异步操作转换为suspend function.相关Coroutine的Doc可以在这里找到.

    12 Practices every Android Development Beginner should know

    看名字就知道了,一些小常识,但是这个是Part1,只有10条,感兴趣的可以看看.

    Check out local storage and RxJava backpressure

    文章通过使用RxJavagroupBybackpresure来帮助我们更好的做一个同步的feature,保证远端与Local保持一致.

    简单的说就是对同一个item的操作标注一个ID,本地把AddRemove操作都记住,然后通过groupBy配合backpresure每次拿一个最新的Event,完成之后再继续拿,这样中间就会省掉很多重复的操作,大致以最后一次为准.

    不过我觉得如果还有Update操作,只拿后压后最后一个Event来处理了就不对了...

    Demystifying Advanced Kotlin Concepts

    介绍了不少Kotlin高级理念,如Lambda Exstension,inlineinfixfunction,等等.

    Genymotion vs Android Emulator

    通过数据对比,得出X86 with google api的模拟器性价比最高.

    [Kotlin Function Literal with Receiver

    ](https://tech.io/playgrounds/6973/kotlin-function-literal-with-receiver)

    介绍了Kotlin的Lambda Exstension特性, 函数本体作为参数被访问,并函数本体内可以访问函数的Receiver.

    Architecture Components: Paging Library

    文章介绍了使用Paging对读取大量数据显示List的帮助.

    注意PagedList#setEnablePlaceholders设置为true当滚动速度大于读取速度onBind中获取的item可能会是null,当数据再次加载时会重新再被调用.如果设置为false,则会跳过null的item,但是滚动条会抖动,建议隐藏滚动条.

    The Care and Feeding of Elephants

    Evernote推出了最新的android-job-lib-1.2.0,这个库主要是封装了AlarmManager(pre 5.0),JobScheduler(after 5.0),GcmNetworkManager(device with Google Service),让你通过统一的API来做run tasks.

    Fast and lazy .apk distribution with Crashlytics

    文章介绍通过git获取最新Tag到上一个Tag之间的Log生成Release Note,然后通过Crashlytics(Fibric)来分发.

    LIBRARIES & CODE

    diagonal-imageview

    一个帮助你斜着切图片的ImageView

    purrge

    node的一个库,可以通过命令轻松删除手机里面的程序

    ScalingLayout

    一个可以做出来Scaling效果的Layout,需要将你的Layout包在它里面.

    欢迎大家关注

    image.png

    相关文章

      网友评论

        本文标题:Android Weekly Notes Issue #278

        本文链接:https://www.haomeiwen.com/subject/yjwtuxtx.html