こんにちは。僕は自分で作ったマインドマップアプリの使い心地が悪くて困っています。開発を始めたばかりですがその話をしようと思います。
作ろうと思った理由
既存のマインドマップアプリは、なんか操作しにくいな、と感じていたんです。もっと自由に、ノードの位置を変えたい。画像だって貼り付けたい。マインドマップとOneNoteみたいなキャンバス系ツールが一緒になったようなものが欲しかったんですよ。
そこで思ったんです。「自分で作ってみたら、もっと使いやすいものができるんじゃないか」って。
でも...本当に甘かった。位置計算というやつは、僕が想像していたより何倍も難しかったんです。
ノード操作は快適だったのに
ノードを追加したり、編集したりする時は、本当に快適なんです。書いていて気持ちがいい。AIの力を借りれば、こういう基本的なオペレーションはちゃんと動く。
でも、ノードを消したり、増やしたりすると...レイアウトが崩れるんです。
加えて、保存したデータをインポートすると、形が崩れてしまう。つまり、位置計算がやるのに面倒くらいの複雑さがある、ってわけなんです。
具体的に説明すると:
ノード追加時の位置決定 → 新しいノードをどこに配置するか。既存のノード構造を壊さず、見やすく配置する。わかりますよね、その処理。簡単じゃないんです。
ノード削除時の再配置 → 親ノードが消えた時の子ノードの扱い。あるいはノードを削除した後に、残りのノードを整列させる処理。手間がかかるんですよ。
インポート後のレイアウト → JSONから読み込んだ時に、座標情報がおかしくなる。保存した時点での位置と、読み込み後の位置がズレてしまったり...。
AIに「いい感じに位置計算してくれ」って言っても、細かい工夫が色々必要になってくるんです。そこまで複雑じゃないけど、やるのが面倒。そんな感じですね。
わかったこと
ノード追加・編集はスムーズです。それはいいんですよ。でも、ノードの位置計算が、やるのに面倒くらいの複雑さがある。僕は、それを甘く見ていました。
既存のマインドマップアプリが、ここまで高機能な理由が、今ならわかります。位置計算のロジックって、細かいんです。
- ノードを消した時に、周囲のレイアウトをどう調整するか
- インポート後に、位置情報を正しく復元するか
- ユーザーが自由に位置を変えたのに、その配置を保持し続けるか
こういう細部が詰まっていないと、使っていて「あ、この操作、しづらいな」って感じるんです。
僕は、自分流に作ろうと思っていました。OneNoteみたいな自由度が欲しかった。でも、その分だけ対応することが増えるんですね。面倒ですが...頑張るしかありません。
今の状態
ノード追加・編集・削除は、本当に快適です。書いていて、気持ちがいいんですよ。
でも、使っていると「あ、この操作、しづらいな...」って感じるんです。ノードを消したら位置がおかしくなるし、インポートしたら形が崩れたり。細かいところで引っかかる感じです。
基本的な機能は動いています。コンセプトだって悪くないと思うんです。でも、これを本格的に使えるレベルにするには、位置計算周りをちゃんとやる必要がありますね。
面倒ですが...もっと頑張るかな、って感じです。
リンク
もし興味があったら、見てくださると嬉しいです。
ちょっとずつ改良していこうと思います。
- GitHub: https://github.com/yma2023/coherent-mindmap
- Vercel で公開中: https://coherent-mindmap.vercel.app/
最後に
ノード操作そのものは、スムーズに作れました。ですが、位置計算が、やるのに面倒くらいの複雑さがある。これが、使いやすさの大半を占めるんだな、って気付きました。
既存のマインドマップアプリが高機能で、洗練されている理由も、今ならわかります。あの細かい位置計算のロジックが、詰まっているからなんです。
次のステップは、位置計算のロジックをちゃんと詰めることと、インポート・エクスポート周りの改善ですね。面倒ですが...もっと頑張るかな、って思っています。
こういった細かい作業が、実は大事なんだと、今回わかりました。
質問とか、フィードバックがあれば、言ってくださると助かります。よろしくお願いします。
