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