Power Apps モデル駆動型アプリについてなるべくわかりやすく説明してみる


Power Appsでは、

  • キャンバスアプリ
  • モデル駆動型アプリ
  • Webサイト(Power Pages)

の3種類のアプリケーションを作ることができる。

今回はその中の「モデル駆動型アプリ」について、できる限りわかりやすく説明してみる。

スポンサーリンク

モデル駆動型とは

そもそもPower Appsに限らず「モデル駆動型」とは何か?

モデル駆動型(アーキテクチャ)とはその名の通り、『モデル』を中心として開発を進めていく手法のこと。

ここでの『モデル』とは、
あるシステム化したい対象を、ER図やらコンポーネント図やらで表せる状態にしたもの
だと思ってもらえれば大きく間違っていないはず。

例えば「学校」みたいなのをモデル化すると

  • 先生
  • 生徒
  • 授業
  • クラス

みたいなのが要素(エンティティ)になって、それぞれに属性(名前とか)があり、要素間には関連(生徒はあるクラスに所属する、生徒と授業は多対多で関連とか)がある。

この辺りは「データモデル設計」みたいなキーワードでググると、わかりやすい説明がたくさん出てくるのでぜひ。

そして、モデル駆動型とはこの『モデル』を中心としてシステムを開発していくこと

Power Appsのモデル駆動型アプリ


Power Appsのモデル駆動型アプリを一言で説明すると、
設計したモデルをDataverseに構築すれば、UIやフローは(ほぼ)ノンコーディングで作れる
アプリのこと。

Dataverse

DataverseはPower Platformに用意されているデータベースで、『高機能かつ簡単に使えるデータベース』

データベースを一から構築するのはけっこう手間で、セキュアに扱いたいならインフラの知識とかも必要になるけれど、このDataverseはとにかく簡単にデータベースが使える。

設計したモデルをDataverseの中に組み立てれば、UIとかフローはPower Apps(Power Automateも)を使ってほぼコーディングなしで作れるよ、というのがモデル駆動型アプリ。
Microsoft Dataverse とは - Power Apps
Microsoft Dataverse、テーブル、サーバーサイド ロジック、セキュリティ、開発者向け機能の概要。

モデル駆動型アプリとキャンバスアプリの使い分け

どんなときにキャンバスアプリで作って、どんなときにモデル駆動型アプリで作ればいいか」を考えてみると、

キャンバスアプリで作った方がよいかも

  • 無料で(M365ライセンスの範囲内で)アプリを作りたい
  • デザインが重要(入力しやすい、誰でも使える、めっちゃおしゃれ など)
  • スマホから使うことが多い
モデル駆動型アプリで作った方がよいかも

  • 大量の数字やデータを管理したい
  • データの構成がけっこうややこしい
  • 業務プロセスを簡単に管理したい

※モデル駆動型でおしゃれなUIを作ることも可能だけど、せっかくローコードを使っているのに開発工数が上がって割に合わないことが多い

みたいなイメージ。

少し話は逸れる(?)けど、ちょっと前まで某カフェチェーンで働いていたときに発注システムというのがあった。

その日の在庫(目視確認)をスマホに入力して送信すると、本部側で必要量を計算して翌日分の物資を送ってくれる、みたいなシステムだったんだけど、これをPower Appsで作るとしたら、

  • カフェのスタッフが(現場/前線で)使うアプリ:キャンバス
  • 本部のスタッフが(バックオフィスで)使うアプリ:モデル駆動型

みたいな感じになるかなぁと。

もちろん有料ライセンスを購入する稟議が下りない。。。というときは強制的にキャンバスアプリになるけど。

※あくまで個人の感想です。

公式サイトを乱暴に訳す

Power Apps におけるモデル駆動型アプリとは?

モデル駆動型アプリは、コンポーネント(設計で出てくるデータの構成)をメインとしたアプリ開発手法。

シンプルなアプリから複雑なアプリまで構築が可能。

デザインをがっつり作るキャンバスアプリと違って、アプリのデザイン周りは設計したコンポーネント(モデル)によってシステムがある程度作ってくれる。

その他にもモデル駆動にはこんな利点がある。

  • モデル設計がメインで、アプリはプログラムなしで作れる
  • モバイル対応もしている
  • 豊富なデザイン機能がある
  • 作ったアプリは配布可能

モデル駆動型アプリの作成手法

主に以下の3つでアプリを作る。

ビジネスデータのモデル化

ビジネスデータをモデル化するには、アプリが必要とするデータとそれらのデータ間の関連を設計する。

モデルの設計にはメタデータを使用する。※メタデータはデータのデータ。

ビジネスプロセスの定義

一貫したビジネスプロセスを定義することは、とても大事。

そんなプロセスを業務プロセスフロー機能として定義することで、アプリを使う人たちが手順ミスとかすることを防げる。

モデル駆動型アプリの作成

データをモデル化して、プロセスを定義できたら、あとはPower Appsのアプリデザイナーを使ってモデル駆動型アプリを作ろう。

以上、ちょっと乱暴すぎかもしれないけれど、概ねこんな感じだと思う。

※2021/3/31追記:実際にモデル駆動型アプリを使って「ねこ管理アプリ」を作ってみました。

コメント

タイトルとURLをコピーしました