【Power Apps】リングフィットアドベンチャー!ダイエットチャレンジ。棒グラフをチェックボックスで動的に変化させる
市場に行ったら魚の一夜干し詰め合わせが24尾で2000円だったのでついつい買ってしまったのですが、3日目にして飽きました。
こんにちは、一夜干しのアレンジレシピ募集中の池田です。
現在、弊社でもリモートワークが導入されていて自宅で仕事をしているため、なかなか外出の機会もございません。
なので、車で1時間程度の市場へのお出かけですらテンション爆上がりしました。
しかし、運動の機会も減ってしまっているため、この程度の外出ですらかなり疲れてしまいました。
というか在宅で太りました。
脳内のミニチュアダックスフンド『太った? 運動するワン。ついでに技術紹介するワン。』
というわけで、今回のテーマは......
自分の体が理想の体に近づいていく様子を動的に確認してみよう!
目次
- 今回やる内容
- SharePointListの準備
- アプリケーション作成
- 実際に運動してみる
Power Appsでのアプリケーションの作成部分だけご覧になりたい方は、3の方だけ見ていただければと思います。
1.今回やる内容
運動する!と申しましても、私は走るのは苦手だし、スポーツを一緒にできるような友人もいません。
なので、昨年のリモートワーク導入当初に買ってインテリアと化していたこれを使おうと思います。
リングフィットアドベンチャー!
筋肉は一生の相棒!!!!
大学受験の時に裏切り(不摂生)裏切られ(筋力の低下)てから、君とは絶交したままだね相棒!!!!
これを使って行うトレーニングの消費カロリーから、体重がどれくらい減るのかを算出したいと思います。
行うのは以下の10種目になります。
- プランク 20回
- バンザイスクワット 20回
- レッグレイズ 20回
- サゲテプッシュ 20回
- 舟のポーズ 16回
- リングアロー 20回
- スクワット 20回
- ウシロプッシュ 20回
- ヒップリフト 20回
-
マウンテンクライマー 50回
疲れ果てて死にかけているマッスルボディーになっている未来が見えますね。
2.SharePointListの準備
リストの内容はこのようになっております。
種目名 | 消費カロリー(kcal) | 体重の減少量(kg) |
サゲテプッシュ 20回 | 4.47 | 0.00062083 |
ウシロプッシュ 20回 | 3.53 | 0.00049028 |
リングアロー 20回 | 5.16 | 0.00071667 |
プランク 20回 | 5.63 | 0.00078194 |
レッグレイズ 20回 | 4.58 | 0.00063611 |
スクワット 20回 | 7.16 | 0.00099444 |
バンザイスクワット 20回 | 6.19 | 0.00085972 |
マウンテンクライマー 50回 | 10.93 | 0.00151806 |
ヒップリフト 20回 | 4.11 | 0.00057083 |
舟のポーズ 16回 | 3.01 | 0.00041806 |
まぁ、一回の運動量だとこんなもんですよね。
ちなみに順番は、リングフィット内のジャンルごとになってます。
ちなみに消費カロリーを計測するために、一度このメニューをクリアしました。
1回で全部やらなくても複数回に分けてクリアすればよかったことに、記事を書きながら気づきました。
3.アプリケーション作成
今回はPower Appsのキャンバスアプリ(タブレット)でアプリケーションを作成します。
まずは、アプリにデータソースとして先ほど作成したSharePointListを追加します。
次に、現在の体重を入力する『テキスト入力』、体重を表示する『縦棒グラフ』、運動のリストを表示する『垂直ギャラリー』を挿入します。
ギャラリーには、その運動を行ったことをチェックするためのチェックボックスを挿入します。
なんとなく位置を調節したり、関数を書くわけではない部分の説明は割愛します。
コントロールの名前は変えたり変えなかったりしているので、なんとなく気持ち悪いです。
ですが、形が見えてきましたね。
次は、Screen1のOnVisibleで変数を設定していきます。
現在の体重 nowWeight 、チェックされた項目の合計減少体重 checkedLossWeight 、すべてチェックされたときの合計減少体重 totalLossWeight をローカル変数として設定します。
また、グラフに表示する用のコレクションとして graphNumsList を設定します。
UpdateContext(
{
nowWeight: Value(NowWeightTextInput.Text),
checkedLossWeight: 0,
totalLossWeight: Sum(
運動と消費カロリー,
体重の減少量
)
}
);
ClearCollect(
graphNumsList,
Table(
{
状態: "運動前",
体重: nowWeight
},
{
状態: "運動中",
体重: nowWeight - checkedLossWeight
},
{
状態: "運動後",
体重: nowWeight - totalLossWeight
}
)
);
グラフの Items を graphNumsList に設定いたしましょう。Labels は状態にして、 Series1を体重にします。
さらに、現在の体重が入力されたときの処理も追加します。
体重を入力する TextInput の OnChanege で、現在の体重 nowWeight を更新して graphNumsList も更新します。
UpdateContext(
{
nowWeight: Value(Self.Text)
}
);
ClearCollect(
graphNumsList,
Table(
{
状態: "運動前",
体重: nowWeight
},
{
状態: "運動中",
体重: nowWeight - checkedLossWeight
},
{
状態: "運動後",
体重: nowWeight - totalLossWeight
}
)
);
最後に、チェックボックスがチェックされたときとチェックが外されたときの処理を書きます。
チェックされたときは OnCheckで、 checkedLossWeight にチェックされた項目の体重減少量を足して、 graphNumsList を更新します。
UpdateContext(
{
checkedLossWeight: checkedLossWeight + ThisItem.体重の減少量
}
);
ClearCollect(
graphNumsList,
Table(
{
状態: "運動前",
体重: nowWeight
},
{
状態: "運動中",
体重: nowWeight - checkedLossWeight
},
{
状態: "運動後",
体重: nowWeight - totalLossWeight
}
)
);
チェックが外された場合はOnUncheckで、上記の checkedLossWeight にチェックされた項目の体重減少量を足している部分を引くようにすればよいだけですね。
これで、アプリケーションが一通り完成いたしました。
4.実際に運動してみる
それでは、実際にリングフィットアドベンチャーで運動をしていきたいと思います。
の前に、体重測定ですね。
現在の体重は......
やばいです。これは運動しなければ。
では、今度こそやっていきましょう。
うぉぉぉぉぉぉぉおおおおお!!!
おりゃぁぁぁぁぁぁぁぁああああ!!!!
だぁぁぁぁぁぁあああああああああ!!!!!
一旦、レッグレイズまで行ったところで、アプリケーションの動きを確認したいと思います。
自分の体重を入力して、チェックボックスをチェックいたしますと......
動きました。
微々たる量ですが、体重が減っていそうなことが目視でわかるのはいいですね。
では最後まで運動します。
マウンテンクライマー50回だあぁぁぁあああああ!!!!
うわぁぁぁぁぁぁぁああああああ!!!!!
あぁぁぁぁああああああ!!!!!
走馬灯が見えたような気もしました。
では、最後に体重測定です。
ちなみに計算では69.99で四捨五入すると70のままな気がしますが、どうでしょう。
んん? 落ちてますが、汗で出た水分な気がします。
運動は、継続しなければだめですね。
最後に
弊社では、Power Platformの技術支援や受託開発なども行っております。
興味のございます方や、導入のための初期教育を行ってほしいということがございましたら、ぜひお気軽に弊社までご相談ください。
ではまた。
フォローしませんか?
お気軽にご依頼・ご相談ください