phicdy devlog

Androidアプリ開発やその他技術系の記事をたまに書きます

AndroidとかiOSとかモバイル多め。その他技術的なことも書いていきます。

2020-01-01から1年間の記事一覧

Kotlin Coroutinesで非同期に処理を複数開始して全ての結果を待つ

例えばListの各値に対して非同期に処理を開始してその全ての結果を待って通知したいとする。 こういったときはcoroutineScope内でListの項目ごとにasyncしてdeferredのlistを作りawaitAll()すればよい。結果もListとして受け取ることができる。 suspend fun …

Deep LinkとApp LinksとFirebase Dynamic Linksの使い分け

メール配信からアプリを起動させたい場合や、Webサービスの機能をアプリとして開きたい場合、起動したいURLをAndroidManifestのIntent Filterに定義してアプリを起動できるようにする。方法はだいたい3つに絞られるので使った体感をまとめておく。 Deep Link…

Android Architecture ComponentのNavigationとマルチモジュール

ここ何日かNavigationを使ったプロジェクトでどうマルチモジュールにするかを考えてました。 結論としては下図のように各featureはInterfaceのみに依存し、appで全画面遷移を解決するのが楽でした。 各featureはInterfaceにのみ依存する 画面遷移するfeature…

WorkManagerでWorkerを一意に実行して画面が死んでも復帰する

最近WorkManagerを使ってて少し嵌ったので書く。 環境 WorkManager 2.2.0 最新はappcompat 1.1.0に依存していて問題がちらほらあるので使わない Workerを一意に実行する Workerを一意に実行するにはWorkManagerのbeginUniqueWorkを使う。WorkContinuationか…

既存アプリのNavigation導入

Navigationを新規で入れるのは楽そうだなーと思いつつも現実的には既存アプリに入れることが多いと思う。自分の既存アプリに対して入れてみる。 developer.android.com 環境 Android Studio 3.6.1 Navigation 2.2.1 起動ActivityをFragmentに移行する 一旦To…

Thinkpad X1 Carbon 7th(2019)を買いました

ある日Macbook Proの電源を入れると画面が映らなくなってしまいました... 外部ディスプレイに繋げば使えるのでiMacとして使えますがさすがに手元で使えないのは不便なので買い換えることにしました。 色々悩んだ結果、Thinkpad X1 Carbon 7th(2019)に乗り換…