くうと徒然なるままに

モバイルアプリを作りながらバックエンドも作っています。

Android Architecture Components 勉強会 #5 に参加してきた。

せっかく東京にいるので、ということで AAC の勉強会に参加してきました。

Google で開催されてました。
GDE な人がたくさんいており技術難易度も結構高めだった気がします。

感想

めちゃめちゃ勉強になりました。

AAC は普段使っていてノリで色々しているので細かく確認できてよかったです。

また、ynzm さんの解説も大変わかりやすく非常によかった(語彙力

課題16 RandomLoadLiveData の実装について

最後に頑張ったら少しできたのでコードを公開してみます。

※まだの人はみない方が良さそう

speakerdeck.com

f:id:kuxumarin:20190325234116p:plain

import androidx.lifecycle.LiveData
import kotlin.random.Random

internal class RandomLoadLiveData : LiveData<Status<Long>>() {

    private var isLoad = false

    override fun onActive() {
        super.onActive()

        if (value == null || value is Status.Error) {
            load()
        }
    }

    fun load() {
        isLoad = true
        Thread.sleep(1000)
        if (Random.nextBoolean()) {
            value = Status.Success(System.currentTimeMillis())
        } else {
            value = Status.Error(Exception())
        }
        isLoad = false
    }

    fun reload() {
        if (!isLoad) {
            load()
        }
    }
}

最後に

4,5,6月は東京にいる気がするので次回も参加してみたい✨