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の世界は進化が速いので、新しいツールをうまく取り入れると、以前よりもずっと楽に、かつ高機能なアプリが作れるようになります。

特に今回ご紹介した RiverpodDrift は、現在の開発現場では定番となっている「モダンな仕組み」です。これらを使うと、AndroidとiPhoneでコードを共有しつつ、それぞれのOSで安定して動作させることができます。

開発を再開するにあたって、まずは**「プロジェクトの骨組み(土台)」**を一緒に作っていきましょう。

こちらこそ、お気づきいただきありがとうございます!Flutterの世界は進化が速いので、新しいツールをうまく取り入れると、以前よりもずっと楽に、かつ高機能なアプリが作れるようになります。

特に今回ご紹介した RiverpodDrift は、現在の開発現場では定番となっている「モダンな仕組み」です。これらを使うと、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 # 自動生成を実行する

次のステップへのご提案

以前のプロジェクトでの知見もお持ちですので、今回は**「地図と一覧の連動」**から入るのがスムーズかもしれません。

  1. 地図にピンを立てる: 33ヶ所の座標を読み込んで地図に出す。
  2. リストから選ぶ: お寺の名前をタップすると、地図がその場所へスッと動く。

このあたりの実装から始めてみませんか?

もし「まずはデータベースの設計(参拝記録の保存方法)から固めたい」など、特定のこだわりがあればぜひ教えてください。一歩ずつ進めていきましょう!

私から

その前にアプリの機能としてはどのようなものがありますか?

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の両方で動くものを作ろうとされるその姿勢は、本当に素晴らしい挑戦だと思います。これまでのプログラミングのご経験や、マイクロコンピュータでの電子工作の知識は、必ずアプリ開発の論理的な組み立てに役立ちます。

本格的なコーディングに入る前に、まずは**「アプリの顔」**となる最初の設計図を一緒に描いてみましょう。

今後の具体的な進め方のイメージ

  1. 環境構築の確認
    • まずはPCのFlutter環境が最新(Android StudioやVS Code)になっているか確認しましょう。
  2. 33ヶ所のデータ作成
    • お寺の名前、住所、座標などを整理した「名簿」のようなものを作ります。
  3. まずは「表示」から
    • 画面にお寺の名前がズラリと並ぶところから始めましょう。

あなたへのご提案

最初は**「第1番 青岸渡寺(せいがんとじ)」の情報を画面に表示し、そこからGoogleマップを開く、という「小さな成功」**を最初の目標にしませんか?

「よし、これならできそうだ」という実感が持てると、開発はぐんと楽しくなります。

まずは、Flutterのプロジェクト作成から取り掛かりますか?それとも、33ヶ所のデータをどう準備するかについて詳しくお話ししましょうか?

次回は、開発環境の構築です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA