FileMakerの実装サンプルとしてFMCon2Go11.fp7を読む

2011年10月28日 18:51

Goを使った、ちょっと凝った引き合いがあったので、参考にしようとFileMaker社謹製の『FMCon2Go』をざっくり読んでのノートです。文字ばっかりです。



スポンサード リンク

ファイルの概要

『FMCon2Go』は、FileMaker社主催のカンファレンスのセッション紹介と、メモやTwitter連携などの機能を提供する、 FileMaker Go用のソリューションです。アメリカでのDevcon用に配布されているものをベースにしていて、確か去年から2度目の配布です。

以下でファイルが配布されています。

アカウント指定無しにファイルを開くと閲覧専用(と言えない部分もあるけど…)ですが、全てを編集可能な完全アクセス権の情報も、合わせて公開されています。

  • アカウント:admin
  • パスワード:fmcon

使用条件は……どうなんでしょうか。ライセンスなどは明記されていないんで、参考に留めておいた方が良さそうです。

テーブル

取り扱うデータはシンプルなんで、テーブルも結構シンプルです。Session, Speaker, Utility, Twitterの4つだけ。

「Session」「 Speaker」は、よくあるFileMakerのテーブルという感じで、「Twitter」はWebビューワーでTwitterを表示する際の情報。「Utility」には、UI用の画像や変数的なグローバル格納フィールドなどが入ってます。

命名規則は、サンプルが少ないですが、恐らく単なるCapsのみ。複数の語を用いる場合の例も見てみたいです。

TO・TOG

TOも、テーブルとほぼ同じものがあるだけで、シンプル。唯一、同一スピーカーのセッションを得るための、SessionBySpeakerが追加されている程度です。これだけではTOの命名規則がはっきり見えませんが、複数のTOを持たないテーブルはテーブル名のみなんでしょうか。複数TOの場合は、そのデータの主となるTOにテーブル名を付け、参照など特定の用途が明らかな場合には、「テーブル名Byキー名」とでもしてるのかも知れません。

何にしても、TOGをモジュール的に切り分ける手法は採っておらず、個人的には好きな作りです。ただ、大規模や複数開発者の場合は問題が出ると思うので、このサイズのソリューションだから採用しただけかも知れません。

フィールド

結構数も多く、ややこしいです。

命名規則

フィールド名順でソートする事を前提の規則になっているようです。テーブルやTOもそうですが、過去のDevConで配布されたPDFなんかにある規則に、基本は準じているんでしょうか。

「Session_Name」だとか「Speaker_Company」だとかの単純なデータ用フィールドでは、それらを一括りにする場合に「Session_」「Time_」といったプレフィックスを付けています。特にまとめる必要がないものは、「Date」など、プレフィックスもありません。

基本は単語をアンダースコアで区切り、単語ごとにCaps。中には、「FullSize」といった例外もあります。

「__kp_」と「__kf_」

これらは恐らく、PKとFKを指しているんだと思いますが、文字の順序が入れ替わってるのは、ソートを考慮しての事でしょう。

面白い点も幾つかあります。SpeakerのPKが「__kp_SPK_ID」と略記されているのは、キー名が長いと不便があるからかと思ったんですが、Sessionテーブルでは略されていません。

その「__kp_SPK_ID」が、シリアル値の自動入力になっているんですが、番号に「JPN」のプレフィックスを付けています。DevCon用ファイルをベースにしているので、混同を防いだり、場合によっては混在を許容したりする為の処置でしょうか。

UtilityのPK「__kp_Utility_ID」も自動入力ですが、「D2G」のプレフィックス付き。多くのフィールドがグローバル格納なのであまり必要に見えませんし、恐らくこのファイルではあまり生きていない工夫のようですが、設定値などをグローバルに持てない場合に、レコードを決め打ちするためのPKを設けるなど、理由があるのかも知れません。

「zz__」

他に目につくのが、「zz__favorite_Flag_16Graphic」など、「zz__」のプレフィックスを持つフィールド。「zz」はソート時に最後部に来るよう選ばれた風で、内容はテンポラリ的な扱いのもののようです。

例えばUI用の画像を計算したり、ソート用のタイムスタンプを算出したり、スピーカーのソートキーとして名前の先頭文字を切り出したり。ほぼ全てが計算フィールドですが、Utilityにだけ、UI用画像を入れたコンテナフィールドがあります。ここは何か特殊な使い方をしているようで、よく解りません。

スクリプト

まず、フォルダによって大きく分けられてるんですが、分け方に強烈な違和感。開発者向けのスクリプトが入った「Development」と、汎用的な処理が雑多に入った「common」、カスタムメニュー設定用の「Custom Menus」、そして「Sessions」だとか「Speakers」「Twitter」、最後に謎の「Info」といったフォルダが、全部同じ階層にだらっと並んでる…。

全体的にかなり分かりにくく作られていて、特にスクリプトの内容は、期待していた分、がっかりします。例えば、「ユーザーによる強制終了を許可 [オフ]」のステップが、やたらとどのスクリプトでも先頭に入ってるんですが、これ何で直に入れ込んでるんでしょうか。こんなものこそ、スクリプトの用途をレベルや目的で分けて、動作に必要な基本処理を共通スクリプトに逃がせる部分だろうに。

スクリプトについては本当に参考になりそうな部分が少なく、古臭い印象です。命名もまちまちですし。スクリプト名に"[トリガ名]"というサフィックスを付けるのが面白かったぐらいです。

Twitter連携

WindowsやMacでは、単にWebビューワーでTwitterを開くだけです。特定のハッシュタグが開けるようになってますが、ブックマークと変わらないし、FileMakerで見る意味が弱いです。というか、Webビューアのコンポーネントが最近のWebアプリ使ってると不安定で、逆に不便に感じます。

iOS端末であれば、Twitter公式アプリによる「twitter://」をWebビューアで叩いて、Tweetできます。でもそれだけ。特に面白い仕掛けとか無いです。

複数プラットフォームへの対応

これも、FM-Kyushu 2010/12/04のファイルと補足の「05_FileMakerでリバーシ」とかでやったのと大差無く、残念。プラットフォームを起動時に判定して、グローバル変数に格納しておいて、各スクリプト内で参照するだけ。

何よりがっかりなのは、未だにiPhone用のリスト表示レイアウトが、横幅318pxで作られている点。そのために、スクロール時横方向への滑りが発生します。もしかしたらiPhone4以降だと発生しない問題なのかもしれませんが、少なくとも手元3GSでは、使ってて嫌になります。

雑感

FileMaker社の開発部隊が作ったという事で、Goでのリファレンス実装だと期待したんですが、そんなに収穫なかったのは残念です。時々FileMaker社が配布するソリューションもパッとしないですし、いっそFileMaker Magazineの人とかに発注すれば良いのになと思いました。少しでも学ぼうってユーザーにまともなパスを用意しないのは、勿体無いです。

あと、せめて対応バージョンと、使用条件ぐらいは明示してほしい。Pro Adv 10で開いてて、変数による検索が動作しませんでした。



新・リレーションで極めるFileMaker FileMaker Server カスタムWebテクニック改訂版 Linux-DB システム構築/運用入門 (DB Magazine SELECTION) 食の文化史―生体‐民族学的素描
カテゴリ:設計・作り方 の最新記事
FileMaker Go 単体でお絵かきアプリっぽいことやる..
IPAmj明朝とFileMaker
タブパネルを使ったレイアウトオブジェクトの切替サンプル
「分離モデル」の参考になるWeb上の情報源
FileMakerで少しでもユニットテストっぽい事したい
Comment(0) | TrackBack(0) | 設計・作り方
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。