Android
ビルドバリアントでは、mainディレクトリに置いてあるファイルとの差分の内容を、ビルドバリアントのディレクトリに配置することで、そのビルドバリアントを選択してビルドした際に優先的に読み込まれるのかと思っていた。 結論から言うと、ビルドタイプの名…
launchPermissionRequest()を呼び出して、通知に関する権限の確認を行いたい場合がある。 val permission = Manifest.permission.POST_NOTIFICATIONS val permissionState = rememberPermissionState(permission = permission) when { permissionState.statu…
テスト時にViewModelを初期化する処理を次のように書いた。 class LabelListViewModelTest { private val testScheduler = TestCoroutineScheduler() private val dispatcher = StandardTestDispatcher(testScheduler) private val repository = mockk<LabelRepository>(relax</labelrepository>…
DroidKaigi 2022のコードを眺めていると次のような記述にでくわした。 inline fun Modifier.ifTrue(value: Boolean, builder: Modifier.() -> Modifier): Modifier { val modifier = Modifier return then(if (value) modifier.builder() else modifier) } f…
NavigationBarのNavigationBarItemを何度もタップし、最後に一番左のNavigationBarItemを連打するとアプリがクラッシュする現象に遭遇した。 これがその時のエラーの抜粋。 java.util.NoSuchElementException: List contains no element matching the predic…
Androidアプリを開発していると直面するライセンス表示問題。 色々調べるとCookpadさんが公開しているプラグインにたどり着いた。だが、お察しのとおりすでにアーカイブされている。 github.com 代わりにおすすめされているのが、Googleが公開しているOSS Li…
次の様な画面遷移図のアプリを考えてみる。 今までは全ての遷移時に次の様なコードを実行していた。 fun navigate( destination: TnaNavigationDestination, route: String? = null, from: NavBackStackEntry? = navController.currentBackStackEntry ) { if…
Android Studioで、resディレクトリを右クリックして、New -> Android Resource Directoryを選択する。 Directory Nameにvalues-nightを入力して、OKをクリックする。 values-nightディレクトリが表示されない場合は、Projectビューに切り替える。 values-ni…
Androidアプリをコンパイルした後だったり、新しい画像をResource Managerに追加した後に、アプリで表示されていた画像がまったく異なる他の画像に置き換えられているケースが多々あった。 そろそろ対処しないとなーと思って色々調べていたら次のコメントを…
ディープリンクを開くには次の書式でコマンドを実行する。 adb shell am start -W -a android.intent.action.VIEW -d <ディープリンクのURI> <アプリのパッケージ名> 実際に入力するときは次の様な感じ。 adb shell am start -W -a android.intent.action.VI…
Androidでは、アプリのアイコンと通知用のアイコンは異なる。 特に異なる部分はカラーの部分で、通知用のアイコンには基本的に色をつけることはできない。 Android 5.0以降では通知機能が大幅に変更されたため、アイコンのカラーチャンネルがすべて無視され…
Firebase Authに登録されたメールアドレスを認証したあと特定の画面に遷移して結果を表示したいというモチベーションが沸々と湧きあがった。 流れとしては次のような感じ。 firebase/authのsendEmailVerificationメソッドを利用してユーザーのメールアドレス…
EASにはおおまかにわけて2種類の主要なサービスがある。 EAS Build EAS Submit EAS Buildは、ExpoやReact Nativeで作成されたアプリのバイナリをビルドするためのホスティングサービスです。 EAS Submitは、AppleのAppStoreやGoogle Play StoreにEASビルド…
ひとつの端末に本番環境、ステージング環境、開発環境用のそれぞれの環境でビルドされたアプリをインストールするためには、動的にapp.config.jsのios.bundleIdentifierフィールドとandroid.packageフィールドを変更する必要がある。 そのために環境変数APP_…
いつものようにGitHub Actions上で、EAS Buildを実行していたところ次のようなエラーが発生した。 ✔ Using remote Android credentials (Expo server) Error: Generating a new Keystore is not supported in --non-interactive mode 解決方法として、Androi…
AndroidManifest.xmlを開いて、<manifest>と<application>の間に<uses-permission android:name="android.permission.INTERNET" />を追加する。 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapplication"> </manifest></uses-permission></application></manifest>
CoroutineはノンブロッキングプログラミングをKotlinで使えるようにした機能。非同期操作を安全に扱える機能などが含まれている。 導入 Coroutineを使うにはkotlinx.coroutinesというパッケージを使わないといけない。 build.gradle.ktsファイルを開いて、de…
積読していたKotlinの入門本をちょっとずつ読んでみる。 基礎からわかる Kotlin | 富田健二 | 工学 | Kindleストア | Amazon 環境構築 環境設定から始める。 JetBrainsの公式サイトからIntelliJ IDEAをダウンロードする。 ちなみに、僕の場合はCommunity版の…