街路樹や山で見かける植物を体系的に覚えるための学習アプリ。
- 100種の植物データを閲覧
- 和名・学名でのテキスト検索
- 科・タグ(季節・葉・花・実・樹形・環境)でのフィルタリング
- 各植物の写真ギャラリー、説明、見分け方、分布、似た植物を表示
- 38科の分類データを閲覧
- 科の特徴・説明・所属植物を確認
- Yes/No 形式の分岐で植物の科を絞り込む対話型ガイド
- 11問の質問ツリー
3種類のクイズで知識を定着
- 写真クイズ — 植物の写真から名前を当てる
- 特徴クイズ — 特徴の説明から科や植物を当てる
- 見分け方クイズ — 見分け方のヒントから植物を当てる
- Next.js (App Router、静的エクスポート)
- TypeScript
- pnpm
データは lib/data/ 以下に TypeScript ファイルとして管理。外部 API・データベース不使用。
pnpm install
pnpm dev # 開発サーバー起動
pnpm build # 静的ビルド(out/ に出力)
pnpm lint
pnpm format
pnpm typecheckGitHub Pages にホスティング。main ブランチへのプッシュで GitHub Actions が自動デプロイ。
Trusted Web Activity (TWA) として Play Store に公開する。
keytool -genkey -v -keystore android.keystore \
-alias android -keyalg RSA -keysize 2048 -validity 10000base64 エンコードして GitHub Secrets に登録:
base64 -i android.keystore | pbcopyリポジトリの Settings → Secrets and variables → Actions に以下を追加:
| Secret 名 | 内容 |
|---|---|
ANDROID_KEYSTORE_BASE64 |
keystore を base64 エンコードした文字列 |
ANDROID_KEYSTORE_PASSWORD |
keystore のパスワード |
ANDROID_KEY_PASSWORD |
キーのパスワード |
keystore の SHA256 フィンガープリントを確認:
keytool -list -v -keystore android.keystore -alias android | grep SHA256public/.well-known/assetlinks.json の sha256_cert_fingerprints と package_name を実際の値に更新する。
注意:
assetlinks.jsonはドメインルート (https://reload-co-jp.github.io/.well-known/assetlinks.json) に配置する必要がある。reload-co-jp.github.ioリポジトリに置くこと。
タグをプッシュすると GitHub Actions が自動でビルドし、Artifacts に APK と AAB をアップロードする:
git tag v1.0.0
git push origin v1.0.0Actions の Build Android APK ワークフローから app-release-bundle.aab をダウンロードする。
- Google Play Console でアプリを作成(登録料 $25、初回のみ)
- リリース → 本番 → 新しいリリースを作成 で AAB をアップロード
- ストア掲載情報を入力
- アプリの説明
- スクリーンショット(電話: 2枚以上)
- フィーチャーグラフィック(1024×500px)
- アイコン(512×512px)
- カテゴリー
- ポリシー → アプリのコンテンツ でコンテンツレーティングを設定
- 審査を経て公開(数日かかる場合あり)
TWA の動作確認:
assetlinks.jsonが正しく設定されていないとアプリ起動時にブラウザのアドレスバーが表示される。公開前に Digital Asset Links テストツール で確認すること。