Microsoft PowerAppsをさわってみる

今日はいよいよMicrosoft PowerAppsをさわってみます。

powerapps.microsoft.com

フリーのメールアドレスだと環境がつくれないので、試せない方もいるかもしれませんので、参考になれば幸いです。

注意

Kintone、Oracle Apexと同じ感覚で画面を見ると若干混乱してしまうと思います。 なので、実際に作り始める必要のある方は、ガイドのビデオ等でPhilosophyを理解しておくことをおすすめします。

docs.microsoft.com

特徴

PowerAppsの大きな特徴は次の通りです、これによりほかのノンプログラミング系と棲み分けていきましょう。

  • Dynamics365ファミリーであるため、アプリケーションの管理・共有は基本的にWeb上で行う
  • Windows10、iOSAndroidでの使用を大きく想定している(オンラインでポータブルなデバイス
  • オンプレミスのケアはデータゲートウェイ機能で可能

docs.microsoft.com

o365powerx.blogspot.jp

上記を含めた詳細な特徴は次のスライドが詳しかったです。(ちょっと古いのでオンプレミスゲートウェイは載ってなかった)

PowerApps、始めました

サンプルアプリでいろいろ眺めてみる

初めてログインするとホームにはなにもないですね。

f:id:saikou9901:20180408131951p:plain

Apexの時と同じくトラッカーのデモアプリをつくってみます。

f:id:saikou9901:20180408132133p:plain

f:id:saikou9901:20180408132346p:plain

とりあえず成果物をさわってみる

プレビューしてみました。モバイルを想定したUniversalApp感ありますね。

f:id:saikou9901:20180408132424p:plain

プレビューではなく実動作をブラウザ上で行うと次のような見た目になります。

f:id:saikou9901:20180408132959p:plain

他の画面もみてみましょう。

「Create Ticket」がボタンである、ということがすごくわかりづらいデザインですが、デザインは作り込み次第なので、不安視する必要はないです。

f:id:saikou9901:20180408133409p:plain

データが登録できましたね。

f:id:saikou9901:20180408133457p:plain

データの詳細画面。

f:id:saikou9901:20180408133504p:plain

選択肢入力は別画面でました。モーダルダイアログにしたいな・・・という人は、必要性とコストを相談したほうがよさそうですね。不可能ではなさそうですが、そうする必要があるのか、と。

f:id:saikou9901:20180408133516p:plain

Creating a dialog in PowerApps

モバイルの動き

手元のiPhone6Sで動かしてみました。

利用する際にはメールアドレスでログインすると、組織にログインしたことになります。 青い四角で隠してある部分には「hoge.fuga.jp(Default)」のように表示されてくるので、同じメールアドレスで複数の組織に属することができることが伺えます。

組織ログインすると、アプリがでてきます。

f:id:saikou9901:20180408141448j:plain

このアプリは横表示でした。普通にタッチして操作できます。デバイス画面左からスワイプしてアプリを終了して一覧に戻ることができます。なので、アプリ内に終了ボタンみたいなものはないわけですね。

f:id:saikou9901:20180408141459j:plain

デザイナー画面

PCでプレビューを終了して、デザイナー画面に戻ってきました。 左サイドバーの構成をみると、それぞれページごとのコンポーネントがあることがわかりますね。ガイドにも「デザイナーはPowerPointのような配置をしています」とありました。

f:id:saikou9901:20180408135841p:plain

f:id:saikou9901:20180408135848p:plain

左サイドバーのツリーを展開してみます。ちなみに画面ごとのツリーの、上からの並び順が実際のアプリ上での「前面/背面」関係と一致している模様です。このへんアプリの透明度が高まって助かりますね。

f:id:saikou9901:20180408135856p:plain

サンプルアプリだと、各アイテムが「TextBox...」みたいな名前になってますが、もちろん適切な名前をつけることができます。

f:id:saikou9901:20180408135448p:plain

ボタンをみてみましょう。

f:id:saikou9901:20180408140318p:plain

アクションの定義方法は、次の通りです。

配置した部品ごとに、「HoverColor」などのプロパティ、「OnSelect」などのイベントを、Excelのようなフォーミュラ式で設定できます。 デザイナー画面において同じ場所で属性やアクションを設定する、というのは、なんだかVisualStudioを意識しているようで、Microsoft製品に親しんでいる人にはわかりやすそうですね。

f:id:saikou9901:20180408140338p:plain

イベント処理はけっこうごちゃついてますが・・・Excelのように色によるガイドが表示されることと、作る際に各部品の名前を適切にすることで、見通しは改善できる余地がありそうです。

f:id:saikou9901:20180408140948p:plain

メニューの「ファイル」で保存関連メニューです。アプリのアイコン・色選択もできます。

f:id:saikou9901:20180408142018p:plain


今までの画面をみてお分かりかと思いますが、KintoneやApexと違い、配置やサイズ、色などはオートシェイプのように自由に配置することができます。

つまり同時に、その「デザインのコスト」が必要になる、ということがわかります。

もしプロジェクトである程度の量の画面を作成するなどの場合は、デザインルールなど事前の定義がカギになってくるでしょう。

複数アプリ・データの連携について

ガイドをみたり、実際に空のアプリ作成から部品を置いてみたりするとわかりますが、先に何かしらのデータソースを作成しておき、それを使用する、という流れになります。

これはApexと同様で、Kintone、FileMakerなどとは異なりますね。

f:id:saikou9901:20180408143330p:plain

データソースの選択肢、めっちゃくちゃ多いです。 DB2のようなレガシーから、Pivotal Trackerのような別ベンダーのサービスまで様々。 もちろん、一番の基本となるExcelアップロードも可能です。

f:id:saikou9901:20180408143615p:plain

f:id:saikou9901:20180408143623p:plain

そして、セットアップされたオリジナルのデータ(PowerApps上でいうとエンティティ)や外部接続は、PowerApps全体で管理されます。つまりApexと同様、アプリとデータが1:1ではないことがわかります。

f:id:saikou9901:20180408145253p:plain

操作トリガーについて

Microsoft Flowという私の知らない謎のパワーにより支配されているようです。

f:id:saikou9901:20180408145919p:plain

沼ーーーーーーーーーーーーーーーー

認証・認可について

アプリレベルの管理はPowerAppsメニューから行えます。

f:id:saikou9901:20180408150822p:plain

ボタンが押せる/押せない、というレベルは、認可に必要なデータソースを準備したうえでフォーミュラ式定義することになると思われます。

ロールベースでそれを行う処理の公式解説はAzure ActiveDirectoryが使用されているようです。

Implementing Role Based Security In Your PowerApps App

まとめ

Microsoft PowerAppsはOracle Apexと違って、Dynamics365のサービスの一部として提供されるものなので、”これだけ使用する”という考え方にならない、というのが大きな特徴でしょうか。 完全にクラウドベースです。

ビジョンの違いがエコシステムの違いにもろに現れている例だと思います。

それによって、当初のこの記事の目的であるノンプログラミング開発製品という視点でまとめると、導入環境による使い分けになると、まとめることができそうです。

今の会社は、あんまクラウド乗ってないので、私がこれを仕事でさわるのは、もうちょっと先になりそうですね・・・

以上、参考になれば幸いです。