00:06
神経質やせ男です。今回は、箇所分時間タイマーの設定を更新ボタンの裏側、 これをできるだけ平易にお話ししていきます。
一見するとこのボタン、かなり複雑な処理をしているように見えます。 ですが、流れ自体は実はとてもシンプル。
大きく分けると、ボタンが押される、 JavaScript がデータ収集、Python に渡す、設定を保存、箇所分時間を再計算。
この5ステップです。では順番に見ていきましょう。 まず最初、画面が読み込まれるとJavaScript が待機状態になります。
そしてユーザーが設定を更新ボタンを押すと、 セーブコンフィグ関数が呼ばれます。
ここで何をしているかというと、入力欄の値を集めています。 集めているのは、目標年月日、睡眠時間、生活必要時間、勤務時間、通勤時間。
これらをまとめて JavaScript のオブジェクトとして一つの箱に詰めます。 ここがポイント。
JavaScript 側では、これらの値はすべて文字列として扱われます。 そこで次のステップ。
PyWebView を通じて、このデータを Python 側のアップデートコンフィグメソッドに渡します。
Python 側では、受け取ったデータをセルフコンフィグアップデートで上書き、 そして数値項目についてはフロート型で型変換を行っています。
なぜかというと、 JavaScript から来た値は文字のままだから。 ここで数値に直しておかないと、後の計算でエラーになるわけですね。
設定の更新が終わると、次に行うのがファイル保存。 Save to ファイルが呼ばれて、
JSON 形式で設定を書き込みます。 これによって次回起動時にも同じ設定が読み込まれます。
そして最後、一番重要な処理。箇所分時間の再計算が実行されます。 計算結果は JavaScript 側に返され、画面表示が更新される。
ここまでが設定を更新ボタンの一連の流れです。 こうして分解してみると、一つ一つはシンプルですが、
JavaScript と Python の連携。 ここが理解の山場ですね。
今回はアルゴリズムの全体像を優しく整理しました。 また細かい計算ロジックについては別の機会に深掘りしていきます。
次回はタイマー最大の謎、1秒更新の仕組みについてお話しする予定です。 ご静聴ありがとうございました。