D◯I 語 Client
- Androidスマートフォン専用アプリ
- application moduleは
app/のみ - backendは bvlion/DAIgoAPI2
- JDK 25 LTS(Gradle / CI実行環境)
- Java / Kotlin target 17
- Android Studio
- リポジトリ同梱のGradle Wrapper
backendは bvlion/DAIgoAPI2(PHP / Slim4)です。ローカルではDAIgoAPI2リポジトリで以下を実行して起動します(詳細はDAIgoAPI2のREADMEを参照)。
docker compose up composer
docker compose up slim -d
DAIgoAPP側は HOST / BEARER を環境変数からGradle経由でBuildConfigへ渡します。HOSTが空の場合、Android emulatorからのアクセスを想定し http://10.0.2.2:8080 を使用します(ApiClient.resolveHost)。値そのものは各自のローカル環境(.envrc等)で用意してください。
./gradlew :app:assembleDebug./gradlew :app:testDebugUnitTest./gradlew :app:connectedCheck(端末またはエミュレーターが必要)
release buildは署名用環境変数と後述のrelease.keystoreが必要なため、通常は後述のCIから実行します。
- PR:
main向けPull Requestで対象ファイル(.kt/.kts/.xml/.properties/gradle/libs.versions.toml/.github/workflows/**)が変更されるとpr-ci.yamlがdebug build・unit test・instrumentation testを実行します。 - 本番配信: GitHub Releaseが
publishedになるとrelease.yamlがbundleReleaseとpublishBundle(Google Playproductiontrack)を実行します。 - Play Store掲載情報: listing対象ファイル(
app/src/main/play/listings/ja-JP/**)がmainへpushされるとlisting.yamlがpublishListingを実行します。
以下はリポジトリに含めず、各自の環境で用意します(.gitignoreで除外済み)。
google-play-service.json.envrc(ローカルのHOST/BEARER等)
release buildの署名にはKEYSTORE_ALIAS / KEYSTORE_PASSWORD等の環境変数が必要です。release.keystoreは既存の署名ファイルとしてリポジトリで管理されています。新しい秘密値・資格情報はコミットしないでください。
各ファイル Notion にて管理中
Google Spread Sheet にてある程度は返信を自動化している。 https://docs.google.com/spreadsheets/d/1ZN3u9z5zsbmZky5cOgSt6SZ2q78CKhX0l7Se6tAOM8Y/edit
