今日はいよいよMicrosoft PowerAppsをさわってみます。
フリーのメールアドレスだと環境がつくれないので、試せない方もいるかもしれませんので、参考になれば幸いです。
注意
Kintone、Oracle Apexと同じ感覚で画面を見ると若干混乱してしまうと思います。 なので、実際に作り始める必要のある方は、ガイドのビデオ等でPhilosophyを理解しておくことをおすすめします。
特徴
PowerAppsの大きな特徴は次の通りです、これによりほかのノンプログラミング系と棲み分けていきましょう。
- Dynamics365ファミリーであるため、アプリケーションの管理・共有は基本的にWeb上で行う
- Windows10、iOS、Androidでの使用を大きく想定している(オンラインでポータブルなデバイス)
- オンプレミスのケアはデータゲートウェイ機能で可能
上記を含めた詳細な特徴は次のスライドが詳しかったです。(ちょっと古いのでオンプレミスゲートウェイは載ってなかった)
サンプルアプリでいろいろ眺めてみる
初めてログインするとホームにはなにもないですね。
Apexの時と同じくトラッカーのデモアプリをつくってみます。
とりあえず成果物をさわってみる
プレビューしてみました。モバイルを想定したUniversalApp感ありますね。
プレビューではなく実動作をブラウザ上で行うと次のような見た目になります。
他の画面もみてみましょう。
「Create Ticket」がボタンである、ということがすごくわかりづらいデザインですが、デザインは作り込み次第なので、不安視する必要はないです。
データが登録できましたね。
データの詳細画面。
選択肢入力は別画面でました。モーダルダイアログにしたいな・・・という人は、必要性とコストを相談したほうがよさそうですね。不可能ではなさそうですが、そうする必要があるのか、と。
Creating a dialog in PowerApps
モバイルの動き
手元のiPhone6Sで動かしてみました。
利用する際にはメールアドレスでログインすると、組織にログインしたことになります。 青い四角で隠してある部分には「hoge.fuga.jp(Default)」のように表示されてくるので、同じメールアドレスで複数の組織に属することができることが伺えます。
組織ログインすると、アプリがでてきます。
このアプリは横表示でした。普通にタッチして操作できます。デバイス画面左からスワイプしてアプリを終了して一覧に戻ることができます。なので、アプリ内に終了ボタンみたいなものはないわけですね。
デザイナー画面
PCでプレビューを終了して、デザイナー画面に戻ってきました。 左サイドバーの構成をみると、それぞれページごとのコンポーネントがあることがわかりますね。ガイドにも「デザイナーはPowerPointのような配置をしています」とありました。
左サイドバーのツリーを展開してみます。ちなみに画面ごとのツリーの、上からの並び順が実際のアプリ上での「前面/背面」関係と一致している模様です。このへんアプリの透明度が高まって助かりますね。
サンプルアプリだと、各アイテムが「TextBox...」みたいな名前になってますが、もちろん適切な名前をつけることができます。
ボタンをみてみましょう。
アクションの定義方法は、次の通りです。
配置した部品ごとに、「HoverColor」などのプロパティ、「OnSelect」などのイベントを、Excelのようなフォーミュラ式で設定できます。 デザイナー画面において同じ場所で属性やアクションを設定する、というのは、なんだかVisualStudioを意識しているようで、Microsoft製品に親しんでいる人にはわかりやすそうですね。
イベント処理はけっこうごちゃついてますが・・・Excelのように色によるガイドが表示されることと、作る際に各部品の名前を適切にすることで、見通しは改善できる余地がありそうです。
メニューの「ファイル」で保存関連メニューです。アプリのアイコン・色選択もできます。
今までの画面をみてお分かりかと思いますが、KintoneやApexと違い、配置やサイズ、色などはオートシェイプのように自由に配置することができます。
つまり同時に、その「デザインのコスト」が必要になる、ということがわかります。
もしプロジェクトである程度の量の画面を作成するなどの場合は、デザインルールなど事前の定義がカギになってくるでしょう。
複数アプリ・データの連携について
ガイドをみたり、実際に空のアプリ作成から部品を置いてみたりするとわかりますが、先に何かしらのデータソースを作成しておき、それを使用する、という流れになります。
これはApexと同様で、Kintone、FileMakerなどとは異なりますね。
データソースの選択肢、めっちゃくちゃ多いです。 DB2のようなレガシーから、Pivotal Trackerのような別ベンダーのサービスまで様々。 もちろん、一番の基本となるExcelアップロードも可能です。
そして、セットアップされたオリジナルのデータ(PowerApps上でいうとエンティティ)や外部接続は、PowerApps全体で管理されます。つまりApexと同様、アプリとデータが1:1ではないことがわかります。
操作トリガーについて
Microsoft Flowという私の知らない謎のパワーにより支配されているようです。
沼ーーーーーーーーーーーーーーーー
認証・認可について
アプリレベルの管理はPowerAppsメニューから行えます。
ボタンが押せる/押せない、というレベルは、認可に必要なデータソースを準備したうえでフォーミュラ式定義することになると思われます。
ロールベースでそれを行う処理の公式解説はAzure ActiveDirectoryが使用されているようです。
Implementing Role Based Security In Your PowerApps App
まとめ
Microsoft PowerAppsはOracle Apexと違って、Dynamics365のサービスの一部として提供されるものなので、”これだけ使用する”という考え方にならない、というのが大きな特徴でしょうか。 完全にクラウドベースです。
ビジョンの違いがエコシステムの違いにもろに現れている例だと思います。
それによって、当初のこの記事の目的であるノンプログラミング開発製品という視点でまとめると、導入環境による使い分けになると、まとめることができそうです。
今の会社は、あんまクラウド乗ってないので、私がこれを仕事でさわるのは、もうちょっと先になりそうですね・・・
以上、参考になれば幸いです。