Geminiでスマホアプリ開発がどこまでできるか?
連載第1回 開発環境とアプリの概要
西国33ヶ所巡礼のアプリ制作をGeminiに教えてもらいながら進めます。開発環境は、Flutter。AndroidとiPhone両方のOSで使えるようにしたいと思います。
Geminiからの回答
2026年現在のFlutter開発のトレンドと、78歳という節目の年のプロジェクトにふさわしい「シンプルかつ堅牢な設計」を提案します。
第1回は難しいのでざっと目を通すだけでいいです。
1. 開発環境と主要パッケージの選定
マルチデバイス対応をスムーズにするため、以下の構成をおすすめします。
- 地図表示:
Maps_flutter- Android/iOS両方で最も安定しており、マーカーの設置や現在地の取得が容易です。
- ローカルデータベース:
Drift(旧 Moor)- SQLiteをベースにした型安全なライブラリです。巡礼の進捗(参拝日やメモ、写真のパス)を保存するのに最適で、SQLを直接書かずに済みます。
- 写真保存:
image_picker&path_provider- カメラで撮った御朱印や境内の写真を、各OSの適切なディレクトリに保存するために使用します。
- 状態管理:
Riverpod- 現在のFlutter開発におけるデファクトスタンダードです。リスト表示や地図の更新を効率的に行えます。
2. アプリの基本構造(ロードマップ)
最初から全てを詰め込まず、以下の3ステップで進めるのが挫折しないコツです。
ステップ1:札所一覧と地図の基本表示
- データ準備: 33の札所の名称、住所、緯度・経度をJSON形式などで用意します。
- UI:
ListViewで札所一覧を表示し、タップするとGoogleMap上にその札所の場所をピン(Marker)で表示します。
ステップ2:参拝記録の保存機能
- データベース:
Driftで「札所ID、参拝日、コメント、写真URL」を保存するテーブルを作成します。 - 機能: 各札所の詳細画面から「参拝完了」ボタンを押すと、日付とメッセージを保存できるようにします。
ステップ3:マルチメディアと利便性
- 写真: 保存した写真を一覧で振り返るギャラリー機能。
- ルート: 現在地から次の札所までの簡易的なナビ連携(
url_launcherでGoogle Mapアプリを起動)。
3. 実装のヒント:札所データの持ち方
まずは、以下のようなDartのクラスを定義することから始めるとスムーズです。
Dart
class Temple {
final int id;
final String name;
final String address;
final double latitude;
final double longitude;
Temple({
required this.id,
required this.name,
required this.address,
required this.latitude,
required this.longitude
});
}
4. 最初の一歩として
まずは、Flutterの新しいプロジェクトを作成し、pubspec.yaml に必要なライブラリを追加するところからスタートしましょう。
アドバイス: 以前は Raspberry Pi や MicroPython でハードウェアに近い開発をされていましたが、Flutterは「UIを組み立てる」作業が中心になります。まずは1番札所の「青岸渡寺」を表示させるだけのシンプルな画面から作ってみませんか?
開発中に詰まったコードや、具体的なエラーが出た際はいつでもお伝えください。一緒に解決していきましょう。
まずは、どの機能(地図、一覧、あるいは記録保存)から着手したいとお考えですか?
私から
新しい仕組みが入っていますね。ありがとうございます。
Geminiからの回答
こちらこそ、お気づきいただきありがとうございます!Flutterの世界は進化が速いので、新しいツールをうまく取り入れると、以前よりもずっと楽に、かつ高機能なアプリが作れるようになります。
特に今回ご紹介した Riverpod や Drift は、現在の開発現場では定番となっている「モダンな仕組み」です。これらを使うと、AndroidとiPhoneでコードを共有しつつ、それぞれのOSで安定して動作させることができます。
開発を再開するにあたって、まずは**「プロジェクトの骨組み(土台)」**を一緒に作っていきましょう。
こちらこそ、お気づきいただきありがとうございます!Flutterの世界は進化が速いので、新しいツールをうまく取り入れると、以前よりもずっと楽に、かつ高機能なアプリが作れるようになります。
特に今回ご紹介した Riverpod や Drift は、現在の開発現場では定番となっている「モダンな仕組み」です。これらを使うと、AndroidとiPhoneでコードを共有しつつ、それぞれのOSで安定して動作させることができます。
開発を再開するにあたって、まずは**「プロジェクトの骨組み(土台)」**を一緒に作っていきましょう。
最初の準備:pubspec.yaml の設定
まずは、プロジェクトの心臓部である pubspec.yaml に、強力な助っ人たちを登録することから始めましょう。以下のようなパッケージを追加するイメージです。
YAML
dependencies:
flutter:
sdk: flutter
flutter_riverpod: ^2.5.1 # データの状態を管理する仕組み
google_maps_flutter: ^2.5.3 # 地図を表示する仕組み
drift: ^2.16.0 # データを保存する仕組み
sqlite3_flutter_libs: ^0.5.20 # データベースのエンジン
path_provider: ^2.1.2 # ファイルの場所を特定する
image_picker: ^1.0.7 # 写真を撮る・選ぶ
dev_dependencies:
drift_dev: ^2.16.0 # データベースのコードを自動生成する
build_runner: ^2.4.8 # 自動生成を実行する
次のステップへのご提案
以前のプロジェクトでの知見もお持ちですので、今回は**「地図と一覧の連動」**から入るのがスムーズかもしれません。
- 地図にピンを立てる: 33ヶ所の座標を読み込んで地図に出す。
- リストから選ぶ: お寺の名前をタップすると、地図がその場所へスッと動く。
このあたりの実装から始めてみませんか?
もし「まずはデータベースの設計(参拝記録の保存方法)から固めたい」など、特定のこだわりがあればぜひ教えてください。一歩ずつ進めていきましょう!
私から
その前にアプリの機能としてはどのようなものがありますか?
Geminiの回答
西国三十三所巡礼アプリを、現代のFlutter技術で再構築するにあたり、**「お参りの現場で本当に役立つ機能」と「後で振り返って楽しい機能」**を整理しました。
Fumioさんが以前から構想されていた「地図」や「写真」のアイデアをさらに深掘りし、以下のような構成はいかがでしょうか。
1. 巡礼サポート機能(お参り中に使う)
- インタラクティブ・マップ
- 現在地と全札所の位置を地図上に表示。
- 「まだ行っていないお寺」を色分けして表示し、次に行くべき場所を一目で確認。
- 参拝ルート案内
- ボタン一つで、現在地からその札所までのナビゲーション(Google Maps連携)を起動。
- デジタル・チェックイン(自動記録)
- GPSを利用し、境内に近づくと「参拝記録を作成しますか?」と通知。
2. 参拝記録・思い出機能(記録を残す)
- デジタル御朱印帳(フォトギャラリー)
- 自分で撮影した御朱印や本堂の写真を、お寺ごとに整理して保存。
- Flutterの
Driftを使えば、何百枚の写真も効率よく管理できます。
- 一言メモ・日記
- 「階段が急だった」「近くの茶店が美味しかった」などの備忘録を日付と共に保存。
- 達成度インジケーター
- 「33ヶ所中 12ヶ所完了(36%)」といった進捗をグラフやバッジで表示し、モチベーションを維持。
3. 2026年版の+α機能(さらに便利に)
- オフライン対応
- 山間部のお寺では電波が不安定なこともあります。地図の一部をキャッシュしたり、データをローカルに保存して、圏外でも記録ができるようにします。
- バックアップ機能
- スマホを買い替えたときのために、記録データをGoogleドライブやiCloudにバックアップする機能。
- ダークモード対応
- 屋外での視認性を高めるため、目に優しい画面設計を採用。
機能の優先順位(おすすめの順序)
まずは**「これだけあれば巡礼ができる」**という最小限のセット(MVP)から着手するのがおすすめです。
| 優先度 | 機能 | 内容 |
|---|---|---|
| 高(まずこれ!) | 札所リストと地図 | 33ヶ所の場所を確認できる |
| 中(次に!) | 参拝日と写真の保存 | データベースに記録を残せる |
| 低(余裕があれば) | 進捗グラフ・バックアップ | アプリとしての完成度を高める |
開発のヒント
例えば、Flutterの ListView を使ってお寺を並べ、その横に 「満願まであと〇ヶ所」 と表示されるだけでも、アプリらしくなってワクワクしてくるものです。
もし「この機能は外せない!」「こんな情報も記録したい」というこだわりはありますか?まずはその一番大事な機能から形にしていきましょう。
私から
素晴らしいです。
Geminiからの回答
お褒めいただき、ありがとうございます!そう言っていただくと、新しいプロジェクトのスタートがより一層楽しみになりますね。
78歳という年齢で、Flutterという最新の道具を使いこなし、AndroidとiPhoneの両方で動くものを作ろうとされるその姿勢は、本当に素晴らしい挑戦だと思います。これまでのプログラミングのご経験や、マイクロコンピュータでの電子工作の知識は、必ずアプリ開発の論理的な組み立てに役立ちます。
本格的なコーディングに入る前に、まずは**「アプリの顔」**となる最初の設計図を一緒に描いてみましょう。
今後の具体的な進め方のイメージ
- 環境構築の確認
- まずはPCのFlutter環境が最新(Android StudioやVS Code)になっているか確認しましょう。
- 33ヶ所のデータ作成
- お寺の名前、住所、座標などを整理した「名簿」のようなものを作ります。
- まずは「表示」から
- 画面にお寺の名前がズラリと並ぶところから始めましょう。
あなたへのご提案
最初は**「第1番 青岸渡寺(せいがんとじ)」の情報を画面に表示し、そこからGoogleマップを開く、という「小さな成功」**を最初の目標にしませんか?
「よし、これならできそうだ」という実感が持てると、開発はぐんと楽しくなります。
まずは、Flutterのプロジェクト作成から取り掛かりますか?それとも、33ヶ所のデータをどう準備するかについて詳しくお話ししましょうか?
次回は、開発環境の構築です。

