Report:FileMaker Go 開発・利用者の為のiOSアプリ構築ハンズオン(Season3 | day1- LLM環境構築編)
SwiftMaker Meeting 活動レポート
FileMaker Go 開発・利用者の為の iOS アプリ構築ハンズオン
Season 3|Day1 – LLM環境構築編
Season3、始動
昨年、年初よりFileMakerプラットフォームアプリのiOS版であるFileMaker Goを、よりiOSアプリらしい動作にするために、本流であるXcodeでのアプリ作成を学び、AIコーディング、VibeCodingで実践的なアプリ作成を月1回のハンズオンで、その利用技術の理解とともに実施してきました。
年度も替わった今月からは、Season3として新たなシリーズを開始することになり、今回はその1回目となります。
基本的な要件構成としては
- FileMakerプラットフォームの利用
- Xcodeを利用してiOS app或いはMac appで構成
- セキュリティなどを考慮しつつ可能な限りAIを利用
- Code Readingで実装内容の理解
を前提に、3回乃至は4回を1クールで1つのアプリを作り上げる、という構成です。
今回このSeason3の第1クールは、日常的に恐らく多くのユーザーが作成、修正、開発、改修に勤しんでいるFileMakerファイルの fmDiffViewer(仮称)を作成します。
改修前後のFileMakerファイルの差分を可視化するツールは、スタンドアロンアプリや各種解析アプリの機能として、既に世の中には有償のものを中心に存在しています。
今回はそうした先行するアプリの優れた部分や不足している部分を、自身のニーズに合わせて必要最低限の機能を有する自前アプリとして実装を試みます。
fmDiffViewer の要件を整理する
そこで、まずはどのようなアプリがあると日常的に便利で効果的かを検証したところ、
スクリプトやレイアウトなど、各カテゴリ分けして人間が視覚的に見やすいようにその差異を表示するViewerが欲しい
というものでした。
意図しない変更要素を変更前に戻す、というGitのような機能についての言及も出ましたが、今回はそこまで踏み込んでアプリを複雑化させるよりもシンプルに差異を表示する機能にのみ特化することとしましたが、実装仕様については、必要な部分があれば改めてその効果と難易度を考慮して追加することとしました。また、昨今のFileMakerプラットフォームの動向から、FileMakerファイルの構成情報はXMLで取得、それも、DDR経由ではなく、「Save a Copy as XML」からの出力されたものを採用することとしました。
以上の事から、
ファイル構成のスナップショットを取得し、それを要素別に抽出・比較する仕組みを作る
としました。
また、作成の途上での検証として
- 出力されたXMLの内部に外部公開不可な情報の有無を判断し、セキュアな運用に考慮する
こととしました。
fmDiffViewer の仕様
以上のことから、SwiftMakerMeeting参加者により決定された開発、構築方針は以下の通りです。
基本機能
- XMLを保存
- データベース構成要素(フィールド等)の把握
- スクリプト抽出
- リレーション抽出
- レイアウト抽出
- 各要素の差分などで色分け表示
実装用AI利用前提及び設定
- 実装計画の形式は .md
- 可能な限りブレイクダウンして、可視化させる
- チェックシート型で作成することで要素の判断をする
構築作業仕様
- skillsを使い、FileMakerのファイルを正確に分析
- Gitを使って差分管理しやすいように整形(差分評価は既存機能を利用し、先人の資源を積極的に利用)
- アプリ構築はSwiftで実行し、MacとAppleTVでも利用可能とする
- FileMaker Server連携でもクライアントのスタンドアロンでも動作する
構築作業フロー
第1段階(作業)
- XML取得
- 要素抽出
- 差分算出
- 色分け表示
第2段階(作業)— AIによる後付け加工(AI処理)
- 個々の差分の意味を要約する
- 変更の影響範囲を自然文で説明する
- 危険な変更を優先順位付きで警告する
- スクリプト変更の意図を推定する
- リレーション変更による副作用候補を挙げる(例)
「影響が出そうなレイアウト/スクリプト候補」
「危険度: 高/中/低」
「レビューコメント案」
実践 — AIにアプリを作らせてみる
上記のような仕様を踏まえて、まずは第1段階の構想を実現するために、実際にAIに作成を依頼し、そのできあがったものを実際に使ってみる、という作業を繰り返しました。最初から運用しているような複雑なFileMakerファイルを読み込ませても、実際に正解の結果を出しているか否かも判断できないため、簡単なFileMakerファイルをサンプルとして作成し、何を変更したかを理解している状態で正解を提示するのかを確認しました。
また、このアプリ自身は複数人が別々のアプリとして作成し、それぞれがどのような結果を出すのかなども合わせて検証しました。FileMakerから書き出されているXML自身の差分は理解できているようであることから、その差をAIが理解してどのようにアプリとして表現しているかは作成者のアプリによって異なる結果となっており、AIによる作成という作業そのものをどのように捉えるか、なども知見として積み上げることができたように思えます。
アプリの作成そのものはAIに任せる、という基本方針で今回は実装を試みているので、AIがアプリを構築している間は、どのような機能が欲しいのか、あるいは今こんなトラブルに遭遇した、といった実際の解決すべき課題の抽出に時間を利用することで、AIと人間との作業の棲み分けを実施してみました。
今回のまとめと次回予告
Season3のDay1としては、第1段階の作業差分の理解をアプリの機能として実現する、といったところまでは到達できませんでしたが、本日の内容(アプリの実装レベル、必要とする機能の精査など)を次回開催の5/24に繋げる形でSeason3を進めることとし、Day1を終了しました。