FileMaker Go 開発・利用者の為のiOSアプリ構築ハンズオン(day3)
FileMaker Go 開発・利用者の為のiOSアプリ構築ハンズオン(3)
2025/03/16 09:00 札幌市生涯学習センターちえりあ

日頃、FileMaker Pro を利用してiOSでの実行環境である FileMaker Go アプリを提供している開発者が、よりネイティブアプリに近い環境での開発体験を通じてiOSアプリの動作の理解を進めることを目標としたハンズオン。FileMaker GoアプリをFileMaker Pro アプリのiOS動作版、と捉えるのではなく、あくまで、iOSアプリとして、iOSユーザーが日ごろ接しているiOSの流儀に従ったiOSアプリはどう作るのか、という基礎を学んだ上で、FileMaker GoアプリをよりiOSネイティブに近いアプリとなる構築手法を学ぼう、というのがこのワークショップの趣旨。講師として、主催のDBPowers のビジネスパートナーである、ソーコネクト社より井口氏を招聘しての基礎編は番外編を含めて全4回を予定していましたが、急きょ1回増やして、このSeacon1 は全5回となり、今回はその第3回。前回、前々回の復習を踏まえながら、画面遷移を作り込むのが今回のテーマ。
今回も初回からのメンバーと前回からの参加者含めて合計8名での開催。少数精鋭の勉強会。
前回の最後にclassを定義しながらFIleMakerデータベースのように情報を格納し、そこでの情報を画面上に表示するような方法を学んできた。
@Model で表現されるような、一見すると難解な表現を「こういうもんだと思って写経する」をモットーにこのタイミングでは、深い理解を試みるのではなく、あくまでコードを書いて、SwiftUIの流儀、や、現方法を学ぶことに集中して少しでも前にすすむようにした。それでも、当初30分の予定だった前回の振返りも、参加者からの質問で行きつ戻りつしながら理解を進めようとしたことで、当初予定を大幅にオーバーして1時間の復習時間となってしまった。結局、このペースで本日の学習を進めても計画通りに進むことは困難なことがはっきりしたので、急きょ次回4月開催の開催枠を午後だけから終日に変更しての復習時間を準備したことに加えて,5月中旬にも補講を設定し、3.5時間の4回予定は、補習を入れて、結果的には3.5時間の6回がSeason1となることに急きょ変更された。それも、参加者が、SwiftUIを利用したApp作成を七転八倒しながらも楽しみ、モダンな開発環境と言われるSwiftUI と、FileMakerでのApp作成体験との違いを吸収しようとしている姿勢の表れと感じている。
閉じられた利用者ー開発者間でのApp利用体験が多いと思われるFileMakerの運用環境に比較して、講師の井口氏から、「こうしたコードの書き方をすると、AppleからRejectされる可能性がある」など、第三者の目線でアプリの完成度を上げる仕組みがあること、そして何より、Appleが提供している、Apple Human Interface Guidline(https://developer.apple.com/design/) に則ったアプリの提供をまずは心がける、というアプローチは、嘗て、AppleがMacintoshを世の中に提供した時に、1つのアプリを使えるようになれば、他のアプリもだいたい使えるという開発指針、或いは、Apple純正のアプリこそが、当時のAHUIG の具現化されたもの、という共通理解を現在のiOSでの再現しているように感じる。

そんなアプリデザインの蘊蓄だけ語っていれば、コードも勝手に書いてくれる、という世界が来るにはもう少しかかりそうなので、細かなコードをエラー表示と戦いながら画面遷移を実現する為に、FileMakerでいうことろのフォーム画面と一覧画面を書き上げる。FileMaker でレイアウトオブジェクトをそれこそ、ポイポイと置くことで感覚的に画面デザインを進めることができるが、ProjectBuilderと異なり、現在のSwiftUIはPreviewが見えるとは言え、画面上にボタン1つ出すのにもせっせとコードを書かねばMacはXcodeの上でなんの画面も表示はしてくれない。こうした異文化交流を進めることで、改めてFIleMakerの画面設計と構築の生産性の高さ、キャンパスプログラムでPBLをアプリで実現する時のプロットフォームはFileMaker プラットフォーム以外にはあり得ない、と実感する。
初回は0から書いていたコード、今回も写経精神は変わらないものの、時間の制約もあることから、当日会場で提供される学習用テキストのPDFからコピーペーストで自身のSwiftUIのファイルに移植する。本来なら、エラーは出ないはずなのだが、文字コードなのか、何か制御文字が入っているのか、なかなか1筋縄ではいかず、何がしかのエラー表示が出る。そこで多少はコードを自身で書こうとするものの、コード補完で表示してくれる候補が余りに似通っていることから、学習テキストで表示されているコードとは異なるコードを選択してしまい、結果、エラーがいつまでたっても消えない、という悪循環に陥るメンバーが続出。実際には、Xcode / SwiftUI の設定で画面表示を自身がコードを書きやすいような環境に設定することが、効率的な作業には最も効果的なのかもしれない。
今回、ことあるごとに出てきた
@Model
で定義したClass を利用したコード。 もうこの辺りになると、本当に習うより慣れろ、或いは慣れるより倣え、の精神なのかもしれない。 生産性、効率性うんぬんよりも数こなして、記述エラーと数多く遭遇しながら直し所の見つけ方を修得するしかない、という雰囲気。正に写経の心得。
結果的に、今日は当初、井口氏が用意してあった50ページ強のテキストをあと数ページ残して、このシリーズ始まって以来の積み残しを出してしまった。 進めることに終始して仕組みの理解がおろそかになっては、と逆にスケジュールを調整し、補講を追加する形で理解を進める方向に方針転換してもらえたことは非常にありがたい。 多かれ少なかれFileMaker開発に慣れた8名がそのレベルには差こそあれ、それぞれの段階で惑い苦しみながらも楽しみつつ学習するこの「FileMaker Go 開発・利用者の為のiOSアプリ構築ハンズオン」
次回まで約1ケ月あるので、その間にしっかりと今日までの内容を振返り、次回はさっさとここまではできたら、この先、ラクになりそうなのだが、さてどうなることか。
今回の時間の中で、今作っている日記帳とは別のアプローチで、「計算機」アプリの作成はコードを書く、という理解をまた1ステージ上げてくれる題材、ということを井口氏がコメント。これでSeason2開催が確定となり、しばらくはSwiftUIを楽しむ仲間達との旅が続きそう、と楽しみになった。
今回はNavigationLinkの途中までしかできませんでしたが、今回の目録。
次回は4月13日。当初の予定を倍にしての終日開催。請うご期待。