2026 年の新春を祝う、スマートフォン特化型のデジタルおみくじアプリです。 Expo (React Native) をベースに、Docker を使用した統一開発環境と快適な DX(Developer Experience)を実現しています。
- 📱 シェイク機能: 加速度センサーを活用し、スマホを振る直感的な操作感を実現
- 🎨 リッチなアニメーション:
Moti(Powered by Reanimated) による滑らかで美しい演出 - 📳 触覚フィードバック:
expo-hapticsによる心地よい振動演出 - 📤 SNS シェア: おみくじ結果を画像付きで即座にシェア可能(
react-native-view-shot使用) - 🔊 サウンド: シェイク時・結果表示時の効果音再生(ミュート切替対応)
- 🐞 デバッグモード: 実機がなくても検証可能なシミュレーション機能を搭載
| Category | Technology |
|---|---|
| Framework | Expo SDK 54 / Expo Router |
| Language | TypeScript |
| Styling | NativeWind v4 (Tailwind CSS) |
| Animation | Moti / React Native Reanimated |
| Device API | Expo Sensors / Expo Haptics / Expo AV |
| Testing | Jest / React Native Testing Library |
チーム開発において最も推奨される方法です。環境差異を吸収し、ワンコマンドで起動・終了が可能です。
docker compose up --build(ポート 8081 で Metro Bundler が起動します)
方法 A: QR コード (推奨) ターミナルに表示される QR コードを「Expo Go」アプリ(iOS/Android)でスキャンしてください。 ※ PC とスマホは同一 Wi-Fi ネットワークに接続する必要があります。
方法 B: トンネル接続 Wi-Fi 環境の制約や WSL2 で接続できない場合は、以下のコマンドを別ターミナルで実行してください。
docker compose exec app npx expo start --tunnelNode.js 環境が整っている場合、ローカルで直接実行することも可能です。
- Node.js v20 以上 (必須)
- pnpm
-
依存関係のインストール
pnpm install
-
開発サーバーの起動
pnpm start # または pnpm expo start
品質担保のため、主要ロジックとコンポーネントはテストされています。
# ローカル実行
pnpm test
# Docker実行
docker compose exec app pnpm testExpo Application Services (EAS) を利用してアプリをビルドします。
# EAS CLIログイン
npx eas login
# Android 開発用ビルド
npx eas build --profile development --platform android
# Android プレビュー(APK)ビルド
npx eas build --profile preview --platform android
# Android 本番(AAB)ビルド
npx eas build --profile production --platform androidvariant ごとの Android package 名(app.config.ts が APP_VARIANT で切替):
| variant | package |
|---|---|
| development | com.s977043.digitalomikuji.dev |
| preview | com.s977043.digitalomikuji.preview |
| production | com.s977043.digitalomikuji |
現在のマイルストーンは Android版の Google Play 申請可能化。Goal・Definition of Done・チェックリスト・残ブロッカーは docs/goals/android-release-readiness.md を SSOT とする。
公開前の確認コマンド:
pnpm exec tsc --noEmit
pnpm lint
pnpm test
npx expo-doctor
npx eas build --profile production --platform android/app: アプリのページルーティング (Expo Router)/components: 再利用可能な UI コンポーネント/data: おみくじデータ定義などの固定データ/hooks: 抽選ロジックなどのカスタムフック/utils: サウンド管理などのユーティリティ/assets: 画像・静的リソース
UI まわりの判断に入るときは、まず DESIGN.md から読み始めてください。
- DEVELOPER.md: アーキテクチャと拡張方法
- DESIGN.md: UI 世界観と読む順番を案内する入口ドキュメント
- design-md-adoption.md:
DESIGN.mdの導入目的と運用方法 - design-system/: token / component 契約の SSOT と運用ガイド
- .agent/ai-design-agents/README.md: エージェント運用向けの補助資料
- design_guidelines.md: ムードと参考表現の補助ガイド
- design-samples/: デザイン検討用のサンプル素材
- phase1_roadmap.md: フェーズ1 改善計画と進捗状況(完了・アーカイブ)
- Fork this repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
🎍 2026 年も素晴らしい一年になりますように! Happy New Year! 🎍