Power Appsで通信調査アプリを作ってみたら、完全に机上の空論だった話
この記事を読んでわかること
- Power Appsの
Connection.Connected関数の仕様と限界 - 「技術的にできること」と「業務要件を満たすこと」の違い
- 市民開発において、業務理解がなぜ重要なのか
はじめに
突然ですが、皆さんに質問です。
Q. Power Appsにはデバイスの通信状況を取得する関数があります。これを使って、通信調査をするアプリを作ることはできるでしょうか?
答えは「はい」です。作ることはできます。
では、そのアプリは実用に耐えるでしょうか?
答えは——いいえ、耐えられませんでした!
今回は、私が実際に通信調査アプリを作成し、検証してみた結果、「机上の空論」だとわかった話を書きます。
なぜアプリを作ろうと思ったのか
建設業界にいると分かるんですが、日本国内でも未だに通信が無い場所があります。(本当です!)
Power Appsって通信状態を取得できる関数があったよな。じゃあ、通信調査アプリを作れば、緯度・経度と通信の有無をセットで簡単に記録できて「良さそう、作ろう、作った、使った」という感じです。

どんなアプリを作ったのか
Power Appsにタイマーコントロールを配置し、一定間隔ごとに以下の情報を自動で記録するアプリを作りました。
- 緯度・経度(
Location関数) - 日時
- 通信状況(
Connection.Connectedの値)
取得したデータはマップ上にプロットし、通信の有無を色分けして視覚的に確認できるようにしています。
タイマーコントロールのOnTimeEnd
Collect(
colCommLog,
{
TimeStamp: Now(), //現在日時を記録
Connected: Connection.Connected, //通信があるかどうかのブール値を
Latitude: Location.Latitude, //緯度
Longitude: Location.Longitude, //経度
Status: If(Connection.Connected, "通信あり", "通信なし"), //通信があるかどうか
PinColor: If(Connection.Connected, Color.Blue, Color.Red) //通信状態別の色
}
)実際に使ってみた
新幹線は、トンネル区間が連続する箇所で通信が不安定になりますよね。皆さんも一度は経験があるのではないでしょうか。
では、実際にどの区間で、どれくらいの距離にわたって通信が途切れるのか——計測したことはありますか? たぶんないですよね。私もありませんでした。
そこで、試しに使ってみました笑
結果:体感と全然合わない
どれだけ待ってもブラウザが開けない場所でも、ほとんどTrue(通信あり)という結果が得られました・・

原因:Connection.Connectedの仕様
原因に気づきました。
Power AppsのConnection.Connectedは、デバイスが完全にオフラインにならない限りtrue(通信あり)を返すみたいです。 そこに、通信速度は関係無かったのです。
わかったこと:「できる」と「使える」は別物
今回、身をもって実感したのは、ツールの機能として「できること」と、業務の要件として「必要なこと」は別物だということです。
通信調査において求められるのは、通信の有無(0か1か)ではないみたいです。通信速度がどの程度出ているのか、どのキャリアで、どの周波数帯(バンド)を掴んでいるのか等々。
Connection.Connectedが返すtrue/falseだけでは、その要件は満たせませんでした。
作る前は「これでいけるのでは?」と思っていたのですが、完全に見当違い。まさに机上の空論でした〜!
市民開発において本当に必要なこと
今回の失敗で改めて感じたのは、既存業務の要件を正しく理解することの重要性です。
技術だけじゃなくて、要件を理解していかねば・・!
まとめ
やってみて、初めてわかることって多いですね。後から考えると、「そんなのやる前からわかるじゃん」って感じなのが不思議です。今回の経験によって、うまくいかないやり方見つけることができました(発明王のように!)
皆さんも身近な疑問をPower Appsで検証してみてはいかがでしょうか?

最後まで読んでいただきありがとうございました。
いいねと思ったら、いいねお願いします!
