FileMaker公式テキスト中級編!!!
中級編では、
中級開発者として複数の利用者を想定してシンプルなカスタムAppを作成する
といった内容になります。
全16章です。
前回は、12章『集計とグラフ』について学びました。
👉FileMaker 中級編(12章)
今回は、13章『モバイル/ FileMaker Go』についての知識を学びます。
FileMaker Go のクライアント
FileMaker Goを使ってクライアントのハードウェアとして iPad や iPhone を使用することができます。
FileMaker Go には独自の機能があります。それを活かし、同じ作業でもパソコンとは違う方法で設計することが可能です。iPad や iPhone から使うための専用画面を計画し作成することが可能です。
カスタム App ファイルをどこに持つか
2つの方法があります。
●共有ファイルに接続する(デバイスにファイルを持たない)(モバイルデバイス)
●デバイスにファイルを持つ (ホスト)
●共有ファイルに接続する(デバイスにファイルを持たない)
スタンドアロン
ファイルの所在地: モバイルデバイス(iPad や iPhone にファイルを保存する)
メリット: ファイルがローカルにあるためスピードが早い、設計がシンプル
デメリット: データの共有共有ができない
●デバイスにファイルを持つ (ホスト)
FileMaker Server , FileMaker Cloud 常時通信
ファイルの所在地: ホスト
メリット: データ共有、設計がシンプル
デメリット: 通信環境の影響
通信形態
●一方通行の同期
●双方向通信の同期
●一方通行の同期
例 データのダウンロード→参照のみに使用(データの閲覧だけに使用)
もしデータを書き込むことがあったら(同期)ホストに上書きする手間が必要。
ファイルの所在地: ホスト、モバイルデバイス
メリット: ローカルのスピード、どちらかが参照のみ
デメリット: 設計に技が必要、更新に制限
●双方向通信の同期
ファイルの所在地: ホスト、モバイルデバイス
メリット: ローカルのスピード、同期いつでも最新
デメリット: 設計に技が必要、ツール購入カバー可能
ホスト、モバイルデバイスで新規作成のレコードで主キーが被らないようにするためには。。。
Get(UUID)で主キーを作成すれば絶対被らない番号を作成することができる。
FileMaker Pro との違い
一番大きな違いは、FileMaker Go ではカスタム App のテーブルやフィールドをつくるなどの開発作業ができないことです。
その他にも多少の違いがあります。
↓↓↓
・プレビューモード、レイアウトモードがありません。
・カスタムメニューの表示に違いがあります。
・キーボードを接続するとショートカットが使えます。
・ポータル内では、垂直スクロールバーではなく上下にスワイプすることによってスクロールできます。
・スライドコントロールでは、[スワイプジェスチャを有効にする]が有効な場合、スワイプして前または後ろに移動できます。
・FileMaker Pro でファイルに設定した印刷オプションは、FileMaker Go の同じファイルの印刷オプションには適用されません。逆の場合も同様です。
・iOS/iPadOS でサポートされていないフォントは、サポートされているフォントに変換して表示されます。
・テキストスタイルは、太字、斜体、下線、単語下線、二重下線、字消し線、タイトル、大文字、小文字に対応しています。
・タブ順が設定されている場合、[Tab]や[return]キーで移動できるのはフィールドだけです。レイアウトオブジェクトへの設定や、[Enter]キーでの移動は対応していません。
・FMP12 または XML 形式へのレコードのエクスポートはできません。
・[デバイスから挿入]スクリプトステップを使用して、コンテンツをオブジェクトフィールドに挿入することが可能です。
ミュージックライブラリ
フォトライブラリ
カメラ
ビデオカメラ
マイク
署名
・[デバイスから挿入]スクリプトステップを使用して、バーコードソースからコンテンツをオブジェクトフィールドまたはテキストフィールドに挿入
・レイアウト上のオブジェクトタイプフィールドでは、インスペクタの[データの書式設定] オプション[イメージ]および[インタラクティブコンテンツ]の違いに対応していません。
・デバイスにファイルが保存されている場合、オブジェクトタイプフィールドのデータを外部に格納することはできません。
・iOS/iPadOS の「通知」を利用できます。
・iOS/iPadOS の「センサー情報」を取得できます。
・ファイルオプションの[保存されている資格情報による認証を許可]のオプション[要 iOS または iPadOS パスコード]をオンにすると、Touch ID(指紋認証)や Face ID(顔 認証)を利用できます(デバイスがサポートしている場合のみ)。
・実行中のスクリプトを停止するには、画面の任意の場所をタップしてスクリプトの停止を確認します。停止を確認しないと、スクリプトは実行を続けます。
・別のアプリケーションに切り替えると、FileMaker Go はオーディオまたはビデオファイルが再生中でない限り中断状態になります。
※さらに詳しい情報は、FileMaker 製品のマニュアルやその他の公開されている文書、FileMaker Go のヘルプ、「FileMaker Go デベロップメントガイド」を参照してください。
レイアウト
パソコンとiPhone、iPadでは明らかに画面サイズが小さくなります。また、マウスでなく指での操作になります。また、パソコンよりも作業内容は少ないものとの前提で存在しているためできない操作や、違いがあります。
●レイアウト作成時の注意事項
・タッチテーマの専用レイアウトを使用すると良い
・オブジェクトは大きく表示
・専用レイアウト間の画面遷移
・縦横でサイズが違う
・単一ウインドウしか使用できない
スクリプト
FileMaker Go は FileMaker Pro とほとんど同じスクリプトステップが使用できます。しかし、 レイアウトでも前述したように『パソコンではない』ということを念頭においてスクリプトを作成する必要があります。
●スクリプト作成時の注意事項
・ステップの互換性
・中断を想定
(操作中に電話がかかってくるなどの場合、中断されバックグラウンドに隠れてしまう)
想定した設定が必要
・単一ウインドウしか使用できない
・処理時間 > FileMaker Pro
・サーバー上でのスクリプト実行 を考える
(FileMaker Cloud / FileMaker Server でホストされている場合、複雑で長時間掛かる作業は、iPad、iPhone で行うよりもパソコンやサーバーで行うことを検討します。)
[サーバー上のスクリプト実行]スクリプトステップ
カスタムApp起動時に、パソコンかiPad、iPhoneかを認識させて専用のレイアウトに移動させれば、違うレイアウトに遷移してしまう心配がなくなります。
スクリプトの例
↓↓↓
レイアウト切り替え [「起動画面」(z_ユーティリティ) ]
If[PatternCount ( Get ( アプリケーションバージョン ) ;”Go” )]
PatternCount ( テキスト ;検索テキスト ) 第一引数の中にテキストが含まれている数を出す
※ここでProかGoかを判断する
If[Get( デバイス )=3] iPadだった場合
レイアウト切り替え [「ホーム|iPad」(z_ユーティリティ) ;
アニメーション : 下からスライドイン]
Else if [Get(デバイス)=4] iPhoneだった場合
レイアウト切り替え [「ホーム|iPhone」(z_ユーティリティ) ;
アニメーション : 左からスライドイン]
End If
Else
レイアウト切り替え [「ホーム」(z_ユーティリティ) ]
End If
ウインドウの調整(収まるようにサイズ変更)
スクリプトトリガの設定
↓↓↓
「OnFirstWindowOpen」にチェック
(ファイルが開かれた後に実行)
デバイスの特徴を活かした開発方法
●中断
ユーザーによる強制終了を許可『オフ』
アプリの使用中に他の操作が入ってきた場合(電話)。。。
アプリは自動的にバックグラウンドに移動する。中止されてしまう。
スクリプト実行中に画面をタップ。。。
スクリプトが中止してしまう。中止されてしまう。
●カメラやメディアを使う
AVPlayer 再生
GetAVPlayerPlayer Attribute 関数
オブジェクトフィールド/メディアの操作各種情報取得
●署名・バーコード
デバイスから挿入
署名・各種バーコードの読み取り
●iBeacon/ジオフェンス
領域監視スクリプトを構成
RangeBeacons 関数
位置情報に基づいた処理を実行
●センサー
GetSensor 関数
デバイスの各種センサーから情報取得
●通知
ローカル通知の構成
iOSによる通知を実行
「デバイスからの署名挿入」を実際スクリプトで実行させる記述を確認してみます。
↓↓↓
レコード / 検索条件確定
If [ 見積管理::見積状況 = “結果確定済” and 見積管理::見積結果 = “注文あり” ]
カスタムダイアログを表示 [“署名いただけますか?” ; “ご発注の署名をいただけますか? ” ]
If [ Get ( 最終メッセージ選択 ) = 1 ]
エラー処理 [ オン ]
デバイスから挿入 [ 見積管理::発注署名; タイプ: 署名; タイトル: “サインをお願いいたします” ; メッセージ: “ご発注誠にありがとうございます” ; プロンプト: “ここにサイン” ; 表示: フルスクリーン ]
If [ Get(最終エラー ) ]
Else
カスタムダイアログを表示 [ “ありがとうございました。”]
フィールド設定 [ 見積理::見積状況 ; “結果確定済” ]
フィールド設定 [ 見積管理::見積結果 ; “注文あり” ]
エラー処理 [ オフ ]
End If
Else
End If
ポップオーバーを閉じる
レコード / 検索条件確定
End If
オブジェクトタイプフィールドの操作
[デバイスから挿入]などでオブジェクトタイプフィールドに保存されたバイナリデータを、 FileMaker Go で操作することができます。
・スクリプトステップ
・スクリプトトリガ
・関数
上記などを使用します。
スクリプトステップ:
AVPlayer 再生
AVPlayer オプション設定
AVPlayer 再生状態設定
スクリプトトリガ :
OnObjectAVPlayerChange
OnFileAVPlayerChange
OnExternalcommandReceived
関数 :
GetAVPlayerAttribute
Get ( トリガ外部イベント )
動画を再生について実際のスクリプト動作の記述を確認してみます。
↓↓↓
If [ GetAVPlayerAttribute ( “playbackState” )=1 ]
※・GetAVPlayerAttribute (属性名)
オブジェクトフィールドにあるオーディオ、ビデオ、イメージファイルの特定の属性の設定を返します。
・属性 playbackState
メディアの再生状態を示す数値: 0 (停止) 1 (再生) 2 (一時停止)
フィールド設定 [ z_ユーティリティ ::g_動画再生タイムスタンプ ; Get(スクリプト引数) ]
End If
ポップオーバーの中のオブジェクトタイプフィールドに格納されているバイナリデータに再生などのイベントが起きると(OnObjectAVPlayerChange)、そのタイムスタンプが記憶されます。
センサー情報とローカル通知
iOS または iPadOS の機能を利用することもできます。
●センサーの情報
iPad や iPhone には「センサー」が搭載されています。そして、様々な情報を検知、記録しています。これらの情報を取得する関数が用意されています。
『GetSensor ( センサー名 {; オプション 1 ; オプション 2 } )』
センサー名に、サポートされているセンサーの名前を指定します。
例
GetSensor ( “stepCount” ; 600 )
→ 600 秒、つまり10 分間の歩数(数値)を取得します。
※取得できるセンサー名についてはヘルプを参照してください。
なおiOSまたはiPadOSの「設定」の「FileMaker Go <バージョン>」で「位置情報」や「モー ションとフィットネス」の設定の許可が必要な場合があります。
●ローカル通知
FileMaker Go が
・実行されていない
・バックグラウンドで実行されている
これらの状況でも、指定した時間の経過後に「通知」するスクリプトステップが用意されています。
『[ローカル通知の構成]スクリプトステップ 』
※iOS / iPadOSの「設定」の「FileMaker Go <バージョン>」で、「通知」を許可する必要があります。
●その他
FileMaker Go は、iPad や iPhone 上で、バックグラウンドに切り替わったり、ネットワークの状態によって突然接続が中断することがあります。
拡張アクセス権
FileMaker Cloud / FileMaker Server で共有されるカスタム App に、FileMaker Go のクライアントからの使用を想定する場合。。。
ユーザのアクセス権に「fmreauthenticate[x] 拡張アクセス権」を設定します。
fmreauthenticate[x] 拡張アクセス権
iPad や iPhone で、FileMaker Go がバックグラウンドに切り替わると、開いているすべてのカスタム App ファイルの状態が保存されます。そして、手前に切り替わる時点で、「fmreauthenticate[x]」 拡張アクセス権に指定された制限時間 [x] 分が経過していたら、再ログインが必要です。
例「fmreauthenticate[10]」→ユーザは最大 10 分まで FileMaker Go の使用を中断して も、再ログインを求められません。また、FileMaker Go が手前に戻るたびにユーザにログインさせるには「fmreauthenticate[0]」を設定します。
レコードの確定
FileMaker は、レコードの確定を一定のデータのかたまりとして取り扱っています。確定前の状態で接続が中断したり強制終了するとこのかたまりごと破棄してしまいます。
※FileMaker Go でユーザが実施する作業について、小まめにレコード確定されるように工夫したり、想定される場所のネットワークの状態によっては前述の同期を検討します。
以上で13章は終わりです。
次回は14章「運用を計画しよう」について学習していきます😄
コメント