FileMaker Go 開発・利用者の為のiOSアプリ構築ハンズオン(Season3 | day1- アプリ作り編)
FileMaker Go 開発・利用者の為のiOSアプリ構築ハンズオン(Season3 | day1- アプリ作り編)
2026/04/12 10:30 札幌市生涯学習センターちえりあ
主催 株式会社DBPowers
開催支援 Soconnect社 井口氏

昨年、年初よりFileMaker プラットフォームアプリの iOS版であるFileMaker Goを、よりiOSアプリらしい動作らしいものにするために、本流であるXcodeでのアプリ作成を学び、AIコーディング、VibeCoding、で実践的なアプリ作成を月1回のハンズオンでその利用技術の理解ととともに実施してきました。
年度も替わった今月からは、Season3として新たなシリーズを開始することになり、今回はその1回目となります。
基本的な要件構成としては
ー FileMakerプラットフォームの利用
ー Xcodeを利用してiOSapp或いはMacApp で構成
ー セキュリティなどを考慮しつつ可能な限りAIを利用
ー Code Readingで実装内容の理解
を前提に3回乃至は4回を1クールで1つのアプリを作り上げる、という構成です
今回このSeason3 の第1クールは日常的に恐らく多くのユーザーが作成、修正、開発、改修に勤しんでいるFileMakerファイルのfmDiffViewer(仮称)を作成します。
改修前後のFileMakerファイルの差分を可視化するツールは、スタンドアロンアプリや、各種解析アプリの機能として、既に世の中には有償のものを中心に存在しています。
今回はそうした先行するアプリの機能として優れた部分や不足している部分を自身のニーズに合わせて必要最低限の機能を有する自前アプリとして実装を試みます。

そこで、まずはどのようなアプリがあると日常的に便利で効果的かを検証したところ、
「 スクリプトやレイアウトなど、各カテゴリ分けして人間が視覚的に見やすいようにその差異を表示するViewerが欲しい」
というものでした。
意図しない変更要素を変更前に戻す、というGitのような機能についての言及もでましたが、今回はそこまで踏み込んでアプリを複雑化させるよりもシンプルに差異を表示する機能にのみ特化することとしましたが、実装仕様はについて、必要な部分があれば改めてその効果と難易度を考慮して追加することとしました。また、昨今のFileMakerプラットフォームの動向から、FileMakerファイルの構成情報はXMLで取得、それも、DDR経由ではなく、「save a Copy as XML」からの出力されたものを採用することとしました。
以上の事から、
「ファイル構成のスナップショットを取得し、それを要素別に抽出・比較する仕組みを作る」
としました。
また、作成の途上での検証として
- 出力されたxmlの内部に外部公開不可な情報の有無を判断し、セキュアな運用に考慮する
こととしました。

以上のことから、SwiftMakerMeeting参加者により決定された開発、構築方針は以下の通りです。
FMdiffViewerの仕様
基本機能
XMLを保存
データベース構成要素(フィールド等)の把握
スクリプト抽出
リレーション抽出
レイアウト抽出
各要素の差分などで色分け表示
実装用AI利用前提及び設定
– 実装計画の形式は.md
– 可能な限りブレイクダウンして、可視化させる
– チェックシート型で作成することで要素の判断をする
構築作業仕様
– skillsを使い、FileMakerのファイルを正確に分析
– Gitを使って差分管理しやすいように整形(差分評価は既存機能を利用し、先人の資源を積極的に利用)
– アプリ構築はSwiftで実行し、MacとAppleTVでも利用可能とする
– FileMakerServer連携でもクライアントのスタンドアロンでも動作する
構築作業
Save a Copy as XML で全体スナップショットを取る
→ XMLを正規化する
→ 解析側で Scripts / Layouts / Relationships / Tables に分解
→ 追加・削除・変更を判定する
→ テキスト部分は通常のdiffアルゴリズムで比較する
→ 色分け表示する
第1段階(作業)
- XML取得
- 要素抽出
- 差分算出
- 色分け表示
第2段階(作業) ーー AIによる後付け加工(AI処理)
- 個々の差分の意味を要約する
- 変更の影響範囲を自然文で説明する
- 危険な変更を優先順位付きで警告する
- スクリプト変更の意図を推定する
- リレーション変更による副作用候補を挙げる
(例)
「この変更の要点をN行で要約」
「影響が出そうなレイアウト/スクリプト候補」
「危険度: 高/中/低」
「レビューコメント案」
上記のような仕様を踏まえて、まずは第1段階の構想を実現するために、実際にAIに作成を依頼し、そのできあがったものを実際に使ってみる、という作業を繰り返しました。最初から運用しているような複雑なFileMakerファイルを読込ませても、実際に正解の結果を出しているか否かも判断できない為に、簡単なFileMakerファイルをサンプルとして作成し、何を変更したかを理解している状態で正解を提示するのか、を確認しました。また、このアプリ自身は複数人が別々のアプリとして作成し、それぞれがどのような結果を出すのか、なども合わせて検証しました。FileMakerから書き出されているxml自身の差分は理解できているようであることから、その差をAIが理解してどの様にアプリとして表現しているかが作成者のアプリによる異なる結果が出ており、AIによる作成、という作業そのものをどの様に捉えるかなども知見として積み上げることが出来たように思えます。アプリの作成そのものはAIに任せる、という基本方針で今回は実装を試みているので、AIがアプリを構築している間は、どのような機能が欲しいのか、或いは、今、こんなトラブルに遭遇した、といった実際の解決すべき課題の抽出に時間を利用することで、AIと人間との作業の棲分けを実施してみました。
Season3のday1 としては、第1段階の作業差分の理解をアプリの機能として実現する、といったところまでも到達できませんでしたが、本日の内容(アプリの実装レベル、必要ようとする機能の精査など)を次回開催の5/24に繋げる形でseoson3を進めることとし、day1を終了しました。
day2の様子は、改めてご報告致します。
