【初心者】気分記録アプリ、公開への道①|進め方とExpo Go

要件定義書をChatGPTと作ったが、Claude Codeに確認すると考えられていない点が10点以上あった。

iOSのアプリなのか、Androidを考えたアプリなのか、学習コスト、個人情報の扱いなど。

データベースは一度Firebaseを使ったので、それを使用するのはどうかと思ったが、用途によって違う選択がいいことがわかった。(わかっているようでわかってなさそうなため再度勉強する予定)

一緒に考えて以下の計画で進むことになった。

Phase 計画

Phase内容ゴール
Phase 0Expo環境構築 / Expo Goで実機表示 / タブ5画面の空箱自分のiPhoneに”Hello”が出る ←ここが初学者の最初の山
Phase 1SQLite設計・utils/date.ts・リポジトリ層データの土台。ここだけテストを書く
Phase 2ホーム画面(気分入力→保存)/詳細入力/タグアプリとして成立する最小形
Phase 3ローカル通知(時刻設定・文言設定・タップで起動)毎日使える状態
Phase 4カレンダー(過去日の追記も)/グラフ振り返れる
Phase 5薬管理/PDFレポート診察で使える
Phase 6書き出し・読み込み/全削除/アプリロック安心して預けられる
Phase 7使い方・規約・ポリシー/EAS Build/TestFlight/申請公開

テストとは

テストは2つあるよう。

手動テスト自動テスト(← 私が言っていたもの)
やり方実機でアプリを触って目で見るチェック用のコードを書いておく
実行毎回自分で操作ターミナルで npm test を1回打つだけ
時間毎回数分数秒(何百項目でも)
実機必要不要(Macの中だけで完結)

テストの必要性

たとえば「日付を YYYY-MM-DD の文字列に変換する関数」を作ったとします。

自動テストはこう書きます。

「2026年1月1日 の午前0時5分」を入れたら、"2026-01-01" が返ってくるはず

これをコードで書いておくと、以降コマンド1つで永久に検証され続けます

なぜ「日付だけ」テストを書くのか

日付のズレは、画面を見ても気づけないからです。

  • ボタンの色が違う → 見ればわかる(自動テスト不要)
  • レイアウトが崩れた → 見ればわかる(自動テスト不要)
  • 12月31日に記録したら1月1日に保存されていた → 見てもわからない。数ヶ月後に「あれ?」となって初めて発覚する

 Expo とは?(Xcodeとの違い)

ひとことで言うと

Xcode + SwiftExpo + React Native
たとえると材料から自炊ミールキット
言語SwiftTypeScript(Web系の言語)
実機で確認Xcodeでビルド→転送QRコードを読むだけ
ケーブル初回は必要なことが多い不要(Wi-Fiだけ)
7日制限あり(無料アカウントの場合)なし
コード修正の反映毎回ビルドし直し(数十秒〜)保存した瞬間に反映(1〜2秒)
App Store公開Xcodeでビルドクラウドがビルドしてくれる

開発中の実際の流れ

① iPhoneのApp Storeで「Expo Go」という無料アプリを入れる

② Macのターミナルで npx expo start と打つ

③ ターミナルにQRコードが出る

④ iPhoneのカメラでQRを読む

⑤ 自分のアプリが Expo Go の中で起動する

以降、Macでコードを保存するたびに、iPhoneの画面が自動で書き換わります。

費用系

XcodeExpo
Macあり
Node.jsインストールが必要無料
VS Code(エディタ)必要無料
Expo Go(iPhoneアプリ)必要無料
Expoアカウント必要無料
Apple Developer ProgramApp Store公開時のみ年 約15,000円

なんでも動くってわけじゃない

機能Expo Go
SQLite / PDF / 共有 / Face ID / カレンダー⭕️ そのまま動く
通知⚠️ 制限が出る場合あり → Phase 3で開発ビルドに切替の可能性が高い
グラフ⚠️ ライブラリ次第 → Phase 4で判明
広告(将来)❌ 開発ビルド必須

ここからアプリ化に向けて頑張っていくので、備忘録として見届けていただけたらと思います。

タイトルとURLをコピーしました