本当にスマホはラジオを備えたのか?

毎日のジョギング時に1時間、radiko というアプリを使っていますが、
通信量が、1.5~1.8G/月 でした。

👉 radiko 

これは、格安SIM利用で、だいたい 1000~2000円/月 の範囲。

👉 格安SIMでradikoは聞ける?おすすめの回線プランを紹介! | ゴリラでもわかるBIGLOBEモバイル 


👉 エンタメフリー・オプション 通信制限にサヨナラ!|格安SIM/スマホのBIGLOBEモバイル 

ということで、

スマホでなく、「ポータブルラジオ」のがよくね?

ポータブルラジオ
価格: 1000~2000円
重さ: 160g
電源: 乾電池
通信: 使い放題



パナソニック ラジオ FM/AM/ワイドFM対応 シルバー RF-P155-S


パナソニック ラジオ FM/AM/ワイドFM対応 シルバー RF-P55-S


パナソニック AMラジオ シルバー R-P145-S


AM/FM/ワイドFM対応 ポケットラジオ オーム電機 RAD-P2227S-K(ブラック)


OHM AM/FM コンパクトポータブルラジオ [RAD-F1771M]

当然、非常時にもポータブルラジオは役立ちます。

👉 地下鉄で Radiko を途切れずに聴き続けるかんたんな方法 
👉 NexusOne や NexusS とか Desire とかでFMラジオをかんたんに受信できる件(Radikoではなくて) 


AbsentLiveData とは?

あちこちで見かける AbsentLiveData。

ViewModel の中で以下のように使われています。


val game: LiveData<RefreshableResource<GameEntity>> = Transformations.switchMap(_gameId) { gameId ->
    when (gameId) {
        BggContract.INVALID_ID -> AbsentLiveData.create()
        else -> gameRepository.getGame(gameId)
    }
}

調べてみると、

どうやら、null の入った LiveData のようです。


/**
 * A LiveData class that has `null` value.
 */
class AbsentLiveData<T : Any?> private constructor(): LiveData<T>() {
    init {
        // use post instead of set since this can be created on any thread
        postValue(null)
    }

    companion object {
        fun <T> create(): LiveData<T> {
            return AbsentLiveData()
        }
    }
}

👉 android-architecture-components/AbsentLiveData.kt at master · googlesamples/android-architecture-components 

うん、揃う。

これは、コピペで使っていきましょう。


簡単に Play Store の説明画像が作成できる「Android App Mockup (Beta)」

このサイト。

👉 App Mockup Builder for App Store & Play Store | AppMockUp 

ブラウザ上でPlayStoreにアップロードするための画像が簡単に作成できます。

まずテンプレートを選んで、

スクリーンショットをアップロードして、テキストやカラーなどを設定していきます。

すぐにそれらしくできちゃいます!!

便利なツールです。