こんちは、あきらです。
お待たせしてすみません。
誰も待ってないよ!ってTwitterで呟いてくれたら喜ぶ変態です。
今回はワイがPower Appsで初めて作った日報にならって、
約20年ずーーーーーーっと書いている日記をデジタル化(DX(笑))してみようと思います。
- そもそも日記をアプリにすることへの所見
- 10分で終わった画面設計
- 1分で終わったDB設計
- 5分で終わった一覧画面作成
- 5分で終わったPower Automate作成
- 10分で終わった編集機能作成
- アプリ作った理由
- 汎用的に使う
そもそも日記をアプリにすることへの所見
個人的に、日記だの運動記録だのって、手書きでもいいと思っています。
最近本当に思うんですが、
人人人人人人人人人人人人_
> 字が汚い人多すぎ! <
 ̄Y^Y^Y^Y^YY^Y^Y^Y^Y^Y^Y ̄
習字習う、習わない置いといて、「もっときれいに書きたい!」って思ってほしい。
字はその人を移す鏡、とかっていう話もあります(知らんけど)
つまり硬質毛筆の最高段位を取得してる私は最高の人間というわけです。
罵倒は喜びです。是非どうぞ。
というわけでなんでもかんでもアプリにする、というのは適切ではありません。
私は「字を書く」というのも好きなので、とりあえずつくってみよー!っていうノリで作ります。
初心者向けなんでよかったら作ってみてねー
10分で終わった画面設計
今回はスマホでポチポチしていきたいなーと思ったので、スマホで設計。
こんな感じ(アナログ)
1分で終わったDB設計
だって
- 日付(日付列)
- 日記内容(複数行列)
だけだもん
設計ってなんだっけ
SPOのリストでいいと思います。
個人で使うならMAX容量の2000行と考えても、2000/365=約6年
小学生なら卒業してますね。
6年ごとにリスト作ってもいいし、エクスポートしてってもいいかなーと思います。
5分で終わった一覧画面作成
はい。
ブログ書いてる時間のが長いという矛盾。
動画作ったほうが早いんじゃね?と途中で思った。
まずPower Apps開きます。
オートビルドでもいいですが1から作ることに意義がある(?)
TOPScreenをおしゃれに飾りますかね~思わず奮起したくなるフレーズを添えて~
※これはPower Appsのキャンパスアプリです。
右下にボタンコントロールを仕込んで、
Navigate(ViewScreen,Cover)
上記を関数バーに仕込みますかね。
これでページめくったかのような動きが再現できます。
ページめくる画像以外はPower Appsの標準コントロールで作成してます。
SPOのリストをテキトーに作って
Power Appsと接続してLabel、DatePicker、TextInput、icon、Galleryを仕込む
画面は以上
DataPickerは
If(
Text(
Today(),
"ddd","en-US"
) = "Mon",
Today(),
Text(
Today(),
"ddd","en-US"
) = "Tue",
Today() - 1,
Text(
Today(),
"ddd","en-US"
) = "Wed",
Today() - 2,
Text(
Today(),
"ddd","en-US"
) = "Thu",
Today() - 3,
Text(
Today(),
"ddd","en-US"
) = "Fri",
Today() - 4,
Text(
Today(),
"ddd","en-US"
) = "Sat",
Today() - 5,
Today()-6
)
みたいな記述で今日の曜日読み込んで、それに応じて、日付の始まりを調整してるのです。
例:今日が金曜なら、今日の日付-4日してあげれば月曜始まりになる
それでGalleryをFilterしてあげればいいですね。
5分で終わったPower Automate作成
Power Automateで自動的に次の週のデータを作ってあげます。
今回はPower Apps上で「EditMode.Edit」を使用しない設計とした(NewとEditどっちも作るの面倒だから)ので、「日記かくぞー!」の前に土台のカレンダーを作ってあげようと思います。
クラウドフローから「スケジュール済みクラウドフロー」を選択
こんな感じかな
次に現在の時間取得して変数にぶっこむ(DateTime1)
足し算用の変数もぶっこむ(PlusDay)
あとがき:これDateTime変数化する必要なかったわテヘヘ
Dountilでくるくる回しましょう
テストしてみると、
今日を含めて一週間分の日付が生成されたと思います。
これで書くぞーってなったら既にデータが入ってるというわけですね。
10分で終わった編集機能作成
はい、土台が自動生成する仕組みが出来上がったので、
あとはユーザーが作成できる画面を作ればオッケーです。
導線は
各日付をタップしたら、編集画面がポップアップする(のような)仕組みを作ります。
レイヤーで考えると以下のような感じです。
突っ込みたくなる気持ちはわかります。
「なんでコイツ背景にボタンコントロール使ってんねん!」って。
角を丸くしたかったんです。
ただそれだけです。
はい、そして、上物(黒カバー、フォーム、ボタン)のVisibleに
Visible = locVis
を仕込み、Galleryに
OnSelect = UpdateContext({locVis:true})
を仕込み、上物のフォームに
Items = Gallery名.Selected
を仕込む
すると該当日付をクリックするとそのデータが出てきます。
※Galleryのテンプレートの内容は省いています。
あとは、
登録の場合・・・ボタンにSubmitForm→フォームのOnSuccessにUpdateContext(locVisをtrueに)とResetForm
戻るの場合・・・ボタンにUpdateContextでlocVisをFalseに
を仕込めば完了です。
アプリ作った理由
今、英語とドイツ語勉強してるんで、発音矯正のために音声日記作りたくてその土台で作ってみた。
音声を登録する予定。
汎用的に使う
今回書いたアプリは私が昔々(1年半前)作った日報アプリの基礎となるものです。
これを秘伝のタレのように継ぎ足し継ぎ足し追加した機能が以下です。
・上司へ通知
・書いてなかったらリマインド
・返信できるようにした
・提案できるようにした
・提案があったときに部課長に通知できるように
・提案が検討されたときクエスト(社内改善要望)に昇華できるように
・そのクエストを誰もが受注できるように
・受注してこなしたらポイントもらえるようにした
・ポイント溜まったら商品券と交換できるようにした
・社内提案ランキングがわかるようにした
・社長が書いてない人一覧が見れるようにした
アイデア次第で継ぎ足しできますね。
基幹システムではないからこそアイデア次第で毎日の仕事が面白くなる、という一例です。
老いる前に勉強しましょ!手伝います。
次は音声機能を増やす予定!