【Power Apps】キャンバスアプリしか知らなかった私が、モデル駆動型アプリで「ビューが一瞬で作れる」衝撃を受けた話
はじめに
Power Appsでアプリを作るとき、皆さんはどちらを使っていますか?
私はこれまでキャンバスアプリしか知りませんでした。データの一覧画面を作るときも、ギャラリーコントロールを配置して、ラベルを並べて、検索ボックスを作って、フィルターの式を書いて…と、毎回頑張って一から作っていました。
先日Udemyでモデル駆動型アプリについて学んだところ、衝撃を受けました。
「え、ビューって一瞬で作れるの…?」
今回は、キャンバスアプリしか使ったことがない方に向けて、モデル駆動型アプリの「こんなことができるんだ」という発見を、素人目線でお伝えします。
キャンバスアプリで頑張ってた日々
まず、私がこれまでやってきたことを振り返ります。
キャンバスアプリでデータ一覧を表示する場合、だいたいこんな流れでした:
- 空白のスクリーンを作成
- ギャラリーを配置
- データソースを接続(SharePointやDataverseなど)
- ギャラリー内にラベルを並べて、列ごとに設定
- 検索ボックスを追加して、Filter関数でフィルタリング
- 並び替え機能が欲しければ、さらにコードを書く
慣れてくれば10〜15分でできるようになりましたが、アプリを作るたびに「また一覧画面作るのか…」という気持ちになっていました。フィルターの条件を複数設定したいときも面倒でした・・・
自由度が高い分、全部自分で作らないといけないのがキャンバスアプリの特徴です。
モデル駆動型アプリとの出会い
そんな中、Dataverseについて学ぶ機会があり、合わせてモデル駆動型アプリの存在を知りました。
モデル駆動型アプリを初めて触ったとき、驚いたのがこれです:
「ビューが最初から用意されている」
Dataverseにテーブルを作成すると、そのテーブルに対して自動的にビュー(一覧画面)が生成されます。しかも、検索機能、フィルター機能、並び替え機能が最初から使える状態で。
「え、私が今まで頑張って作ってたやつ、最初からあるじゃん…」
この瞬間、Power Appsに対する見方が変わりました。
【比較】キャンバスアプリ vs モデル駆動型アプリ
実際に作った画面を比較してみます。
キャンバスアプリの一覧画面

- ギャラリー、ラベル、検索ボックスを自分で配置
- 検索・フィルター機能はPower FXで実装
- 見た目の自由度は高いが、全部手作り
モデル駆動型アプリの一覧画面

- Dataverseのテーブルを選ぶだけでビューが自動生成
- 検索、フィルター、並び替えが標準装備
- デザインの自由度は低いが、作成時間はほぼゼロ
この違いを見て、「モデル駆動型アプリって一覧作るのめちゃ向いてる・・・」と気づきました。
モデル駆動型アプリでできること
実際に触ってみて、「これは便利だ」と感じた機能をまとめます。
1. ビュー(一覧)の自動生成
テーブルを作成すると、自動的に一覧画面が用意されます。列の表示/非表示、並び順なども簡単に設定可能。

2. フォームの自動生成
データの新規作成・編集画面も自動生成されます。フィールドの配置やタブ分けなどのカスタマイズもGUIで直感的に操作できます。

3. 検索・フィルタリング機能
ユーザーが画面上で自由に検索したり、列ごとにフィルタリングしたりできます。コードを一切書かずに。

特定のプロジェクトの件数も一瞬でみれる・・・すごい!

4. リレーションシップの扱いやすさ
Dataverseのテーブル間リレーションシップを設定すれば、関連データの表示や参照が簡単にできます。これはテーブルの設計・作成時にやる必要があるみたいです。私はやってなかったので、まだ使えていません・・
5. 業務プロセスフロー
承認フローのようなステップを踏む業務に対応した「ビジネスプロセスフロー」も組み込めます(これはまだ私も勉強中です)。
じゃあ、どっちを使えばいいの?
ここまで読んで「じゃあモデル駆動型だけでいいじゃん」と思うかもしれませんが、そうでもありません。
キャンバスアプリが向いている場合
- デザインの自由度が必要(オリジナルのUIを作りたい)
- 複雑な画面遷移や操作フローを実装したい
- Dataverse以外のデータソース(SharePoint、Excelなど)を使いたい
- モバイルアプリとして配布したい
モデル駆動型アプリが向いている場合
- データの登録・閲覧がメインの業務アプリ
- 開発スピード重視(とにかく早く作りたい)
- Dataverseをデータソースとして使う前提
- 複数のテーブルを扱うリレーショナルなデータ構造
個人的には、「データ管理系ならモデル駆動型、UI重視ならキャンバスアプリ」という使い分けが基本かなと感じています。
あとはライセンスの観点からも考える必要があります。モデル駆動型アプリはM365ライセンスではなく、別途ライセンスが必要になります。アプリを使う人全員にライセンスを付与することができるのかも検討する必要があるみたいですね。この辺りは詳しく説明が難しいので省略します。
まとめ
今回、モデル駆動型アプリを学んで、改めて感じたことがあります。
「適切なツールを選ぶだけで、工数が劇的に変わる」
キャンバスアプリしか知らなかった頃は、「Power Appsってこういうもの」と思い込んでいました。でも、モデル駆動型アプリという選択肢を知ったことで、アプリ開発の幅が一気に広がりました。
もしあなたが今、キャンバスアプリで一覧画面を頑張って作っているなら、一度モデル駆動型アプリを試してみてください。「え、こんなに簡単だったの?」という感動が待っているはずです。
参考リンク
