2023/09/15
描画の高速化のために、スクロール範囲から見えないアイディアの描画を省略するようにした。(後にこの修正が大きな問題を起こすのですが……この時点では知る由もなし)
アイディアが多いときに処理が重くなっていたのは改善された。しかし描画しないとそのIdeaのStateが存在しなくなってしまい、フォーカスなどの処理に支障が出てくることが分かった。
処理のたびにいちいちアイディアが画面上にあるか(Stateが存在するか)の判断が必要になり、またもや全体的に複雑になってしまった……。
修正箇所が大量に発生。
2023/09/16
描画の高速化関連の修正を引き続き行う。IdeaのStateが存在しなくなってしまい、フォーカスなどの処理がかなりおかしくなっていたので多数修正。また ヘッダーなどの keyの扱いを一部変更した。
休日なのに不具合と半日以上戦い続けた気がする。
2023/9/17
特定のCanvasでデータ消失が発生!
これはまずい……。
調べると先日のパフォーマンス改善によって処理を変えたことにより生まれた問題に起因するものだった。
もともと各アイディアWidgetのStateにいろいろな情報を格納していたのだが、パフォーマンス改善で画面に表示されないアイディアを非表示にしたことで、Stateがきちんと生成されないアイディアが存在するようになった。Stateが存在しないことに気づかず情報にアクセスしようとしてデータがNullになり、テキストが空欄でDBに保存されてしまったようだ。Stateとデータ(テキスト)の分離を正しくしないとダメだ。
既にWebにデプロイしているので誰でもアクセス出来る状態にはなっているが、URLを知っているのは自分だけ。つまり使っているのも自分だけ。それにまだ機能も少ないからアイディアレーンに書いていたアイディアもそれほど多くない。
データが消失しても困ったことは少しだったが、これがもし将来的に他の人も使える状態で起こったとしたら大変だ。
まず原因を正しく理解し不具合を修正して二度と起きなくすることが先決。そしてデータのバックアップも、調べたり考えるべきフェーズになったことを実感した。
2023/09/18
- Canvasのデータが消えた対策
- StateではなくWidget側で値を管理する形に変更してみた。しかしまだ動きが不安定な部分があり、色々と変えたい…。
- Webでの日本語入力の不具合に遭遇
- シンプルなウィジェットのみでも再現出来て、Flutterのバグだった。仕方なく初めてGitHubに投稿した。
- TextField’s underline on text is misaligned on Web when using Japanese Keyboard (ATOK 2014) · Issue #134926 · flutter/flutter · GitHub
※ちなみに投稿して1年以上経った2024/10/11現在も、Flutter側で解決せずOpenのままIssueとして挙がっています……
※開発日記は当時の記録をもとに作成し、必要に応じて加筆・補足しています
この記事はアイディア整理ソフト「idea Lane」の開発記録です
↓どなたでも、ユーザ登録だけで無料ですぐに使えます↓
テキストベースの思考整理ツール「idea Lane」
コメント