iOSアプリを公開した後、Androidにも対応させたいと思いました。どちらもExpoで開発していたので簡単だろうと考えていましたし、実際ほとんどは簡単でした。それでもいくつか予想外のことがあったので、同じ作業をする方の参考になればと思います。
⚙️ 1. Expoで移植する
一番よかったのは、大きなコード変更が不要だったことです。
ExpoのおかげでAndroid向けのビルドはとても簡単でした。Managed Workflowから抜ける必要も、複雑なプラットフォーム固有の設定も不要でした。しかしテストを始めると、少し気になる点に気づきました……
🖋️ 2. UIの問題 — Androidのフォントサイズ
Androidでは、一部の画面が少し違って見えました。
AndroidはiOSよりフォントを少し大きく表示するため、いくつかの箇所でUIの余白が崩れていました。そこで、Android端末ではフォントサイズを自動的に少し縮小する小さなヘルパー関数を書きました。
import { Platform } from "react-native";
export const normalizeFont = (size: number) => {
return Platform.OS === "android" ? size * 0.95 : size;
};小さな調整で大きく改善し、全体のバランスが戻りました。
🧩 3. Google Playの設定
ここから少し複雑になりました。公開するために必要だった作業は次のとおりです。
- キーストアを生成してアップロードする(持っていない場合、Expoが自動で作成します)。
- Android連携のためのキーをFirebaseに追加する。
-
google-services.jsonをダウンロードし、Expoプロジェクトのapp/フォルダーに含める。
eas build -p androidを使ったExpoのビルドプロセスが大部分を処理してくれましたが、Firebaseとの接続を再確認することが重要でした。
🔐 4. Google認証の設定
アプリではすでにFirebaseを使っていたので、AndroidでGoogle Authを有効にするのは簡単でした。接続済みのプロジェクトを通じてFirebaseが自動的に連携してくれたため、Firebase Consoleでプロバイダーを有効にする以外に手動設定は必要ありませんでした。
🧪 5. クローズドテスト — テスターを見つける
友人にAndroidユーザーがあまりいなかったので、いくつか試してみました。
- X、Reddit、daily.devでテストへの招待を投稿しました。
- Google Playで「12 Testers - Closed Test Pro」という便利なアプリを見つけました。開発者同士で14日間アプリをテストし合えます。
公開前にコミュニティからもらったフィードバックはとても役立ちました。
✅ 6. 審査と承認
UIの細部を修正してすべてテストしたところ、2つのアプリは問題なく審査に通り、承認されました。iOSの審査よりスムーズでした 😅
📱 ついにアプリを公開できました!
🍱 TinyRecipeはこちらから入手できます。
💰 TinyDebtはこちらから入手できます。
💡 最後に
Expoを使えば、Android向けの公開は驚くほどスムーズです。技術面よりデザイン面の課題がほとんどです。複数の端末でテストすることは重要ですが、それさえ終わればPlayストアへの公開手順は速く、開発者にとって使いやすいものです。
