SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

プロの開発者こそローコード開発ツールを活用しよう!「FileMaker」完全ガイド(AD)

FileMakerが持つ最大の強み――「ワンソース・マルチデバイス」の魅力にフォーカス

プロの開発者こそローコード開発ツールを活用しよう!「FileMaker」完全ガイド 第5回

  • このエントリーをはてなブックマークに追加

 本記事では、FileMakerのワンソース・マルチデバイスの強みにフォーカスします。この数年で、どんな規模のプロジェクトを支援するケースでも、モバイル対応が求められるようになりました。このモバイル対応においても、FileMakerにはとても大きなアドバンテージがあります。FileMaker GoというiOS/iPadOS環境におけるランタイムエンジンを活用すれば、PC用に作成したデスクトップアプリケーションを、最小限の作業でiPhoneやiPadで動くモバイルアプリケーションとして展開することが可能です。今回は、過去に弊社が実際に構築したiOS/iPadOSアプリを事例として紹介しつつ、FileMaker Goを用いたソフトウェア開発の技術要素について解説します。

  • このエントリーをはてなブックマークに追加

はじめに

 こんにちは。株式会社ライジングサン・システムコンサルティングの岩佐です。今回は、Claris FileMakerプラットフォーム(以下、FileMaker)が持つ「最大の強み」といっても過言ではない、ワンソース・マルチデバイスにフォーカスして、その魅力をお伝えしていきます。

 また、本記事の最後には、ローコードを武器にした「内製化支援サービス」という、新しい価値提案についても提言してみたいと思います。

 昨今の業務システム開発プロジェクトでは、何らかの形でiPhone/Padに代表される「モバイルデバイス」を絡めたプロジェクトが多数を占めるようになってきました。おそらく、一昔前のようにPCのみで動くシステムを作ればOKというプロジェクトは、かなり減ってきているのではないかと思います。弊社に引き合いをいただくプロジェクトでもほぼ100%、iPhone/iPadで動く機能の実装を求められます。

FileMakerプラットフォームの動作環境

 FileMakerで開発したソフトウェアは、大きく「デスクトップ」「iOS/iPadOSデバイス」「Webブラウザ」の3つの環境で動作可能です。これらは、一般的に「ユーザインタフェース」を持つソフトウェアになりますが、この条件を外して実行環境をより広く捉えると、第3回で紹介したFileMaker Data APIを活用したWebサービスも構築可能です。

デスクトップアプリケーション

 デスクトップは、まだまだ業務システム開発ではメインとなる動作環境です。そしてFileMakerでは、一般的なWindows環境におけるデスクトップアプリだけではなく、macOSで動くデスクトップアプリケーションも開発可能です。

 さらに FileMaker では、ワンソースで、Mac/Windows双方の環境で動くアプリケーションを開発することができます。これは、社内にMacとWindowsが混在するような企業で社内システムを開発する場合、とても強力な武器になります。

 一般的に、Mac/Windows両方で動かす独自のカスタムアプリケーション(以下、カスタム App)を「ワンソース」で作ろうとすると、現実的にはWebアプリ一択となります。しかし、Web環境で、具体的に動くソフトウェアを実装しようとすると、フロントエンドとバックエンドで異なるプログラミング言語をマスターする必要があります。また、フロントエンドひとつをとっても、HTML5/CSS3/JavaScriptという、それぞれが奥の深い言語をマスターする必要があり、そのための学習コストは非常に高くなります。

 その点、FileMakerであれば、1つの開発プラットフォームでの実装方法を習得するだけで、MacとWindows双方で動くソフトウェアを実装することが可能です。もちろん、必要に応じて、各OSが持つウインドウシステムの違いや、ファイルシステムの違いを意識した作りをする必要はあります。しかし、各OSに応じた振る舞いを記述しなければならない絶対的なコード量は極めて少ないです。

 デスクトップアプリケーションを動かすためには、ローカルデバイスに、Mac/Windowsそれぞれに用意されているClaris FileMaker Proをインストールする必要があります。

デスクトップ(Macの場合)
デスクトップ(Macの場合)
デスクトップ(Windowsの場合)
デスクトップ(Windowsの場合)

モバイルアプリケーション

 FileMakerのプロダクトファミリーでは、FileMaker Goという無料のiOS/iPadOSアプリケーションが提供されています。このFileMaker Goは、FileMakerで実装したソフトウェアを、iOS/iPadOS デバイスで実行するためのランタイム環境と思ってください。

 FileMaker GoとiOS/iPadOSデバイスを用いたソリューションには、大きく2つの運用方法があります。1つは、実装したカスタム Appを FileMaker Server にホストする方法。もう1つは、iPhone/iPad にカスタム Appを配布して、ローカルデバイス内で全ての動作が完結する方法です。

 一般的な業務システム開発のプロジェクトであれば、配布の手間もさることながら、ローカルデバイスには一切データを残さないというセキュリティ的な視点からも、前者のFileMaker Serverにホストする方法で運用する形をとります。この時、FileMaker Goは、FileMakerのカスタム Appの「専用ブラウザ」のような振る舞いをします。

iPad
iPad

 次に、後者のローカルデバイス内で全て完結させるタイプについては、FileMaker GoがExcelやAccessのような役割を担うと想像してください。FileMaker Goは、各デバイスに配布された「データとプログラムが一体化したファイル」である、fmp12ファイルを読み込んでカスタム Appを実行します。

 ローカルデバイスにデータとプログラムが保存される形になるので、セキュリティ的なリスクは上がってしまいますが、この運用方法には「オフライン」でも動作する別の強みがあります。例えば、電波の届きづらい地下施設や山間部、海洋上などで動かすことを前提としたカスタム Appも、この形態であれば運用することが可能です。

ブラウザ(WebDirect)

 上記2つは、FileMaker Pro/FileMaker Goといった、各OS用に用意されている専用のクライアントアプリケーションをインストールする必要があります。しかし動作環境要件によっては、クライアントアプリケーションのインストールが難しいケースもあります。

 例えば、社内で構築したソフトウェアの一部を取引先にも使ってもらいたいというケースを想定した場合、各取引先のローカルマシンにFileMaker Pro/FileMaker Goをインストールしてもらうのはハードルが高くなります。

 このような要求を満たそうとした場合、FileMakerではWebDirectという機能を使って、Webブラウザを経由したユーザインタフェースをユーザに提供することが可能です。また、iOS/iPadOSに関してはFileMaker Goが用意されていますが、Android端末で動かす場合には、このWebDirectをモバイルブラウザ経由で使うことになります。

 ただし、FileMaker Pro/FileMaker Goで動かすカスタム Appと比較すると、操作性・機能ともにかなりの制限があります。また、ライセンス的にも注意すべきことが多いので、実際に使うとなると妥協を強いられる部分が多々あります。十分な事前学習およびライセンスに関する理解が肝要です。

マルチデバイス環境におけるプロジェクト事例

 ここからは、読者の皆さまが、よりその魅力を具体的にイメージできるように、弊社が携わったプロジェクトの事例を紹介していきます。

デイサービスのフランチャイズビジネスで利用するソリューション

 全国約200拠点で、リハビリ型デイサービス(介護施設)ビジネスを展開している「リハコンテンツ株式会社」では、各拠点での介護記録および法定書類の管理業務に、FileMakerのカスタム Appを活用しています。

 利用しているカスタム Appの機能は大きく2つに分かれています。1つは、通所介護計画や個別機能訓練計画書といった、国民健康保険団体連合会への保険請求の証跡となる法定書類の管理機能。そしてもう1つが、利用者一人ひとりに対する介護サービスの記録機能です。

 前者の法定書類管理では、官公庁への提出書類にありがちな複雑な様式の帳票を、施設毎に百数十名にのぼる利用者の数だけ、正確に管理する必要があります。このような業務なので、やはり利用環境としては広い画面、そしてマルチウインドウで利用できるデスクトップアプリケーションが最適です。

 一方、介護サービスの記録業務は、各介護職員が利用者ごとにその日提供したサービス内容を詳細に記録します。さらにこちらのデイサービスはリハビリ型ということもあり、3カ月に1回、利用者ごとに体力測定が実施されます。この体力測定では、身長・体重・握力などの数値情報に加えて、立ち姿勢での写真撮影や、TUG(Timed Up and Go test)という運動機能テストの様子を動画で記録する業務が含まれます。

 このような記録業務をサポートするには、やはりモバイルデバイスが最適です。このプロジェクトでは、iPod touch を実行デバイスとして、各種数値情報の入力機能、および写真・動画の記録機能を実装しました。もちろん、使っている開発プラットフォームは「100% Pure FileMaker」です。

観光・長距離バスの電子チケットソリューション

 「濃飛乗合自動車株式会社(本社:岐阜県高山市、以下濃飛バス)」では、従来まで郵送していた長距離バスおよび観光バスの紙の乗車チケットから、QRコードを使った電子チケットに代替するソリューションを、FileMakerプラットフォームで運用しています。

 別システムで運用している、ツアーのネット決済サービスから、FileMaker Serverにデータ連携される決済情報をコンバートし、決済したお客さまへQRコードが埋め込まれたHTMLメールを電子チケットとして送付します。

 お客さまは乗車の際に、このQRコードを濃飛バスのスタッフに提示します。濃飛バスのスタッフは、FileMakerのカスタム Appを使って提示されたQRコードを読み込み、チェックイン処理を実行します。こちらでも、チェックインアプリの実行環境はFileMaker GoとiPod touchです。

 このFileMaker GoとiPod touchで生成したチェックインデータは、FileMaker Serverにホストしているセントラルデータベースに瞬時に記録されます。このチェックインの記録状況は、デスクトップアプリケーションで全体的な進捗などを確認することができます。このデスクトップアプリケーションはFileMaker Proで実行しています。

 もちろん、チェックイン状況の全体把握以外にも、ツアー情報や路線情報のマスター設定など、広い画面で作業したほうが効率の良い業務は、デスクトップアプリケーションとして実装しました。こちらも同じく、「100% Pure FileMaker」で開発・運用しています。

マルチデバイス環境における実装の要点

 ここでは、FileMakerプラットフォームでの開発における、マルチデバイス環境での実装の要点を、システムエンジニアリング的な視点からお話します。

 ワンソース・マルチデバイスのプロジェクトを手掛ける場合、「ひとまず動けば良い」精神で、やみくもに開発を進めてしまうと、システム全体の構造が早晩カオスな状態になります。これを回避するためには、適切なモジュール設計を心がけ、各実行環境間で、似て非なる機能を重複して実装しないなどの配慮が必要です。例えばモジュール分割の考え方のひとつに、MVCモデルがあります。

 FileMakerはその構造上、MVCの各層を完全に分離することは不可能なのですが、この考え方を応用して、各層に該当するオブジェクトやコードをできるだけ独立性が高く、互いに干渉しないような構造で実装することは可能です。

 例えば、デスクトップアプリケーション(FileMaker Pro)とモバイルアプリケーション(FileMaker Go)の双方から、共通して使うビジネスロジックをモデル層として切り出し、それぞれのビュー(レイアウト)から、モデル層に実装したビジネスロジックを実行するといった実装上の配慮は、保守性を考慮すると重要になります。

 この辺りを何も考えずに実装すると、同じような処理を実行するコードが至るところに点在し、保守性が非常に低くなります。この辺りは、ITプロフェッショナルとしては、ある意味で当たり前のことなのですが、一般的に「シチズンデベロッパー」と呼ばれる、非ITプロフェッショナルの開発者には非常にハードルの高いことです。

 また、同じく非ITプロフェッショナルが軽視しがちなことに「セキュリティ」への配慮があります。例えば、先にご紹介したデイサービスの事例では、極めて機密性の高い利用者の写真や動画データを記録・閲覧する機能が実装されています。そのため、確実なユーザ認証機能の実装、各種アクセスログなどをしっかりと記録する配慮が必要です。

 しかし、この辺りの機能は利便性とのトレードオフになるほか、直接は利益をもたらさない機能になるので、非ITプロフェッショナルの開発者はおざなりにする傾向があります。

内製化支援ビジネスという新しい価値提供

 最後に、今回のワンソース・マルチデバイスからは少し話がそれますが、ローコード開発プラットフォームを武器にした新しいビジネスについて提言してみたいと思います。

 ITプロフェッショナルは、これまでの知識・経験に加えて、何かのローコード開発プラットフォームをマスターすることで、上記のような非ITプロフェッショナルが不得意な部分を、「内製化支援サービス」という新しいスキームで価値提供することができます。

 FileMakerを始めとしたローコード開発プラットフォームは、汎用プログラミング言語と、SQLでハンドリングするRDBMSを組み合わせた開発よりも、非ITプロフェッショナルに優しい開発プラットフォームです。そのため、ソフトウェアの内製化というトレンドの中で、ローコード開発プラットフォームは今、強い関心を持たれています。

 当然、ソフトウェア開発の内製化という枠組みでは、ソフトウェア開発に対する知識と経験に乏しい、非ITプロフェッショナルによる開発がその多くを占めるようになります。ローコード開発では、このような専門知識の乏しい人でも、「なんとなく動いてしまう」ソフトウェアが作れてしまうことが強みでもあり、また同時に弱みやリスクでもあります。

 非ITプロフェッショナルがやってしまいがちな、誤ったデータモデリング、誤ったモジュール設計、誤ったセキュリティ設定などが見過ごされてしまう。そして「戦略なき内製化」によってもたらされる大きなリスクである属人化は、開発されたソフトウェアを「企業の資産」という視点から評価すると、極めて危険な「負の遺産」になる可能性があります。

 このようなリスクを取り除けるのは、一定レベルの知識と経験を持っているITプロフェッショナルだけです。このITプロフェッショナルが持つ知識と経験を付加価値として、先に挙げたようなリスクを取り除くサービスは、内製化支援ビジネスならではの価値提案になります。

 内製化支援サービスは、テクニカルトレーニングや実装難易度の高い機能の部分的なアウトソーシング開発だけではありません。視点を高く持てば、このように非常に多岐にわたる価値を提供することが可能なのです。

 これまで、非ITプロフェッショナルとITプロフェッショナルには、お互いの言葉がなかなか理解できない大きな壁がありました。しかし、ローコード開発プラットフォームという「仲介者」を通じて、よりスムーズにお互いの意思疎通ができるようになったと捉えることもできます。このような周辺環境の変化もあり、ソフトウェア開発の内製化支援サービスは、今後より一層多様なニーズが生まれてくると思います。

 そして、このようなサービスであれば、「多重下請け構造」「一括請負契約」「ウォーターフォール」という、ITプロフェッショナルを苦しめがちな三重苦とは無縁のビジネスを構築することも可能なのです。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/15298 2022/02/03 12:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング