アプリの複雑度の指標の一つである、アプリのコントロール数の調べ方を解説します。
アプリのコントロール数の調べ方を知ることで、アプリの肥大化によるバグの発生やパフォーマンスの低下を未然に検知し、アプリ分割などの対策ができるようになります。
アプリごと、画面ごとのコントロール数の制限
Power Appsのアプリにはアプリごとに500個、画面ごとに300個の推奨コントロール数が設定されています。
これらの推奨値を超えるコントロールを配置することは可能ですが、パフォーマンスが低下してしまうためおおよそのコントロール数を把握しておく必要があります。
画面ごとのコントロール数の確認方法(300を超えている場合のみ)
アプリの編集画面右上のアプリのチェックをクリック→パフォーマンスをクリックします。
画面ごとのコントロール数が300を超えている画面が表示されます。
画面名を選択すると、現在のコントロール数が表示されます。
アプリのコントロール数の確認方法
アプリのエクスポート
編集画面の右上メニューのvをクリック→コピーのダウンロードをクリックすると、.msappをダウンロードすることができます。
ダウンロードした.msappファイルの拡張子を.zipに変更します。
拡張子変更したzipファイルを解凍すると、アプリの内部情報を確認することができます。
解凍したフォルダ内のProperties.jsonというJSONファイルにコントロールごとのコントロール数が記載されている箇所があります。
コントロール数のJSONから数値のみ抜き出して合計する
該当部分のJSONのみコピーし、Power Appsのテキスト入力コントロール(TextInput2.Text)に貼り付けます。
そしてラベルなどに以下の数式を設定することで、アプリのコントロール数の合計を算出できます。
Sum(MatchAll(TextInput2.Text, "(?<num>\d*),"), num)
画面ごとのコントロール数の確認方法(正規表現によるコントロール数カウント)
画面ごとのコントロールなどの情報の格納場所
画面ごとに300を超えていない場合には警告が表示されないため、以下の方法で画面ごとのコントロール数を計算する必要があります。
解答したzipファイルのControlsフォルダ内に数値.jsonファイルがいくつか存在しています。
jsonファイルを開くと、スクリーンごとに存在するコントロールのプロパティを確認できます。
"Type": "ControlInfo",という文字列の出現回数を調べる
"Type": "ControlInfo",という文字列は全てのコントロールにありそうなので、この文字列の出現回数を正規表現で調べます。
ついでに画面名も取り出します。
これで\d*.jsonの中身をコピペするだけで画面ごとのコントロール数を調べられるようになりました。
コメント