Scrapboxでライフログをつけるためのアプリを自作した。
さて、皆さんはGWを楽しんでいるかい? 僕は最高に休みを満喫しているところだね。GW前にこのような記事を書いた。
仕事以外でもFlutterを使って何かアプリの開発をやりたいなーと思ってたけど、平日は時間がなくてやることができなかった。なので、GWは全期間を使って1つのアプリ開発をやるつもりだったけど、案外スムーズに開発が進んで今日である程度使えるアプリが完成してしまった。
ScrapDiaryというアプリで、Scrapboxを使ってライフログをとるためのアプリなのだけど、WebViewを使ってScrapboxを表示して、JavaScriptで操作したら良いだけなのでめちゃくちゃシンプルなアプリであるね。できるんであればストアにも公開してしまいたいけど、apple developerは年間1万2000円のサブスクという暴利であるし、経験上、WebViewを表示するだけのアプリとか絶対審査は通らないのでこのアプリは自分がScrapboxでライフログを記録する用だけの賄いアプリであるよ。
どんなふうなアプリか紹介するためにひとまずショート動画を撮ってみたので貼り付けておこう。
やれることはシンプルで、右上のページ追加ボタンを押すとその日のページを新しくScrapboxに追加して、右下のフローティングアクションボタンを押すと今日のページを開いて打刻をする。あとは戻る、進むボタンがついていて自分のプロジェクトの中を検索とかもできたりする。
とりあえず、どんなソースコードであるかはGitHubのプロジェクトを公開しておくよ。
やってることは難しいことは何1つなくて、InAppWebviewのライブラリを使ってScrapboxのページを表示して、ボタンにはそれぞれonPressでJavaScriptを実行するだけのアプリである。
まぁ、シンプルなアプリであるけど、僕がScrapboxを使う用途というのはほとんどこいつで賄えるので、本当に自分用の賄いアプリである。基本的に僕のScrapboxの使い方というのは、朝にその日一日のdailyページを作成して、そちらに色々と打刻しながら思いついたことをメモしまくるという使い方であるので、自分がスマホでもScrapboxを十二分に活用するために作ったアプリであるね。
しかし、このアプリはそのまま公開するのには多少問題があって、Scrapboxにログインする機能に難があるのね。ScrapboxはGoogleからのソーシャルログインしか用意されておらず、ログインするためにはGoogleにログインしないといけないのだけど、Googleログインの2段階認証の最後の部分でユーザの選択画面に画面遷移しないのだよね。これが結構調べたけどInAppWebviewのせいなのかScrapboxの認証のコールバックのせいなのかよくわからず、手付かずになっている。
今の段階だとGoogleの認証を使うためにはログインして最後の遷移せずにずっと読み込み中の画面になったら、戻るボタンでScrapboxのトップページに戻ってもう一度ログインボタンを押すとログインできるのだけど、これはいかにも不細工だ。
ChatGPT君にどうしたら良いか尋ねてみるとGoogleの2段階認証をするためのトークンを処理する仕組みなどを組み込む必要があるらしいが、これがえらく煩雑なのでそれはScrapDiaryの次のバージョンで対応するようにしてまいろう。
基本的にこのアプリは自分が作業効率化をするために自分用につくったアプリだなぁ。これからのバージョンで対応していきたいこととしては、ブラウザとか他のアプリを開いて共有ボタンとかをおした時にこのScrapDiaryにURLをコピペして、Scrapboxのリンクのフォーマットで貼り付けるような処理を作りたいな。ネットサーフィンをしてる時に気になったページを一発でScrapboxにシェアすることができたら生活がはかどる。
もしこのアプリが使いたいという特異な人がいるのであれば、GitHubの方からソースをプルしてもらってFlutterの開発環境でビルドしたら動くはずだ。でも、今は前述したようにログインに難があるので、どこかでアプリを公開するにしてもそこを直さないと使い物にならないっすね。
まー、自分用のツールだけどアプリ開発は楽しいなぁ。明日はちょっとAWS周りをいじってこちらも自分用のツールを整備する。今年のGWは開発三昧だね。超楽しい。