3年ほど前から、プライベート日記のリアルタイム記録にはDaybookというアプリを使ってきていました。
いろいろある中で一番ましなアプリだとは思っているんですが、微妙に使いづらいところがあるし、明らかなバグも全然修正されません。ちゃんとレポートを上げているのに。
それならもう、Claude Codeに自分専用アプリを作ってもらえばいいんじゃない?ということで、実際にやってみました。
要件
- データの正本はサーバ上に持つけれど、AndroidでもChromebookでも一時的なオフライン状態でも使えるようにする。
- 投稿時刻はUTCで管理して、タイムゾーン情報も別で入れる。
投稿日時に時差の概念がないのがDaybookの欠点でした。たとえば時計が戻るタイプの移動日の投稿は、どこまでがどちらのタイムゾーンでの投稿かをわざわざ手でタグづけしておかないと、正確な投稿順がわからなくなってしまっていました。
- SwitchBotの温湿度ロガーの記録を取り込んでマッチングできる。
今は毎月月初に手作業でスプレッドシートにコピペして突き合わせています。10分ぐらいの作業だとはいえ、ただアップロードするだけで勝手にやってくれるようになると助かります。
- Garminで取得した位置情報を取り込んでマッチングできる。
これも一時期やっていたんですが、温湿度ログより作業に手間がかかるのでやらなくなってしまいました。これもアップロードだけでできるようになるといいなと。
- 文字列検索の結果の前後の投稿も見えるようにする。
JourneyもDaybookもそうだったんですが、文字列検索するとヒットした投稿しか見えなくて、その前後をたどれるしくみがありませんでした。たとえば場所の名前って到着したタイミングの投稿では書くけど、そのあとの投稿にはわざわざ書かないので、その場所でどんなことがあったかが時系列で追えないんです。
実装基盤
▼サーバ側
フロントエンド:Cloudflare Workers
データベース:Cloudflare D1
このブログ基盤と同じですが、同じだという理由で選んだわけではなく、ゼロベースで考えてどうするのが最適かで改めて検討した結果同じになりました。無料やしねー。
▼クライアント側
Android環境はいったんPWAで。オフライン機能に不満が出てきたらアプリ化するつもりです。
Chromebook環境では、今ある自作ローカルアプリ環境に相乗りして、PC上のWebサーバで動かします。PWAよりもよりオフライン感が出るように。
雑感
まだ実運用ではそんなに使ってないけれど、自作だとちょっとしたボタンの配置換えとかが気軽にできるのはめっちゃ楽です。
日記データの長期保管用フォーマットを年別CSVとする方針は変えていなくて、ワンタッチで出力してくれるのも楽!
Daybookアプリって、バックでGoogleのサービスを使っているからか、中国では金盾越え対応しないと通信ができないんですが、そのあたりがどうなるのかも気になるところ。
コメント