ScrapDiary
個人的に作っているScrapboxでライフログを取るためのアプリ。
TODO
その場所の位置情報をGoogleマップのリンクと一緒に渡すような処理を作成
別にGoogleマップのURLまでとらなくても、その場所の名前を取得できればOK
そういう地域名を座標から取得できるようなAPIが無料であるかな?
こいつは月10万件までは無料で使えるっぽい。
ソーシャルログイン処理。Googleでログインした後にInAppWebviewにセッションクッキーを渡すような処理を作成
フローティングアクションボタンを押すと複数のメニューを表示するようなライブラリを探して導入。
こちらを導入する。
ユーザが追加したいタグを登録する処理を作成。
管理画面を一つ追加して、そこでタグを登録しておけばフローティングアクションボタンから呼び出したメニューで2タップぐらいですぐに登録してあるタグを記録できる。
SQliteあたりでローカルDBで管理できる仕組みでOKだと思う。
freezeを使ってクラスにデータを入れてDBに保存とかをやっておきたいね。
他のアプリの共有メニューにScrapDiaryにURLを渡す共有メニューを作成する。
Scrabbox以外のURLは別ウインドウで表示。
ヘッダーの左上の方にメニューをひらくボタンを追加する。
メニューではバージョン情報を表示したりとか、タグ追加ページへのボタンをおいておいたりとか。
ルーティングはauto_routeで良いと思う。go_routerも試してみたいけど。
Scrapboxで日記をつけるためのアプリ。開くとすぐにその日に打刻をして入力状態になり、写真やリンクなども貼り付ける事ができる。
ひとまず、基盤は作った。あとはそのアプリでリンクの共有の仕組みを作りたい。
Googleのログインでちゃんとリダイレクトされないので、それをなんとか回避する仕組みを組み込みたい。正攻法ではGoogle Authみたいなものを組み込んで対応せんとならんらしいけど、なかなかに複雑だ。
あと、Javascriptの記述を洗練させて、ページがないときは日記ページを追加して、ある場合は打刻して開くような処理を書きたい。
こいつは無理くさい。プライベートのプロジェクトのAPIを叩く方法が思いつかない。
InAppWebviewのevaluateJavascriptの返り値をwindow.flutter_inappwebview.callHandlerで受け取ることで対応。非同期処理だとなかなかに手強い。
べたにコードを書いてるのでRiverpodを使ってDIなコードに直したい。
んー、バックスペースの文字コードを入れたらScrapboxの新規打刻の時の改行を消せるかなと思ったけど、そんなに簡単じゃなさそうね。
なんかこんな風な奴。ctrl+矢印でカーソールは移動できるが、APIで新規ページを作成したときは入力が指定されてない。
こういうUserScriptを発動させる仕組みをアプリに組み込めば良いのだと思う。
UserScriptの発動の仕組みがよくわからん。Javascript経由で発動できるものなのだろうか?
こういうやつだなぁ。多少しんどそうだがUserScriptは書いておけば読み込むたびに発動するものであるらしい。
ScrapDiaryからその処理を呼ぶのは無理くさい。プロジェクトにUserScriptを組み込ませるようにヘルプで書くとかそれぐらい。
ページを読み込んだタイミングで発動するUserScriptで対応するぐらいしか方法がなさげ。JavaScriptで本文のページを監視してその末尾の場合に処理を行うとかはやれそうな気もするけど、一筋縄ではいかないだろう。
JavaScriptでCSSを突っ込むことも出来るので、ダークモード対応出来る気がする。
gyazoに画像を投稿してリンクを入れる処理を追加したいな。
データピッカーの動きが微妙だな。ページ遷移の時に日付データを変更するような処理を入れようかと思う。
テストコードも書いておいて、自動テストを出来るようにしておくか。
issueはGithubで管理するようにした。
public.icon