これはRegroup再実装プロジェクトの個人用メモのハブページです

ネーミング

  • 一番のコア機能は「思考の断片を動かして整理すること」なので「動かせる」を持ってきた
  • 短縮形movidea

なぜ再実装するのか

  • 試行錯誤の結果コードが複雑化して新機能追加の障害になっている
  • /shokai/Scrapbox開発プロセスを読んで、下記の考え方が大事だなと考えた
    • インパクト重視
    • 「どこかで見たような物」に近づけない
    • やたらと機能を追加しない
    • バグらせない
    • コードの量を増やすと次の機能のプロトタイピングの邪魔になる
  • 必要最小限の機能を最小限のコードで実現する

Not to do

  • Canvasを使わない
    • 自由な手書き加筆を実装しない
    • 投げ縄選択を実装しない
    • why?
      • Regroupを作り出した時はiPad+Apple Pencilを前提として「手書き加筆がスムーズに可能か」を真っ先に検証した
      • 技術的にどの程度まで可能かはわかった(結構いける)が、ユーザニーズ的にはそれほどでもなかった
      • これの実現が強い技術的制約を発生させているので、一度封印して別のやり方を模索した方が良い

To do

  • なる早テスト
  • styled-componentsを使う
    • 前回はCanvasだったのでスタイルに関してはJSで定義されていた
    • 今回はDOMを使うが、CSSに分離するのはいまいちなので
  • ReactN + immer
    • 前回はReactを学びながら作ったので組み込みのuseState系を使って作り始めた
      • しかし「巨大なホワイトボードに付箋を貼るアプリ」なので親であるAppコンポーネントがほとんどの状態を持つことになる
      • 後から知ったReactNの方が目的にあっていた

次やること

検証する

前回はテストなしで作って、途中からjest-electronでテストし始めた

  • テストを想定した設計になっていないことや、非同期処理だらけであることから、テスト可能にしていくことに苦労した
  • 結局テストでカバーしきれないままになった
  • 今回はReactNを露出してCypressから使う

前回はiPad+Apple Pencil前提だったが、今回はMacBook前提

前回は付箋のワールド座標系がデバイスのそれと密結合だったが、切り離した方が良いと思う

グループ構造

  • 子要素へのポインタ
  • 描画順?
  • 表札
    • これはポインタではない
    • 子要素でもない
    • 子要素になることもできる??
      • やめた方が良い
    • 単なるテキスト?
      • 何度でも更新できる
      • edit titleみたいなメニューで
      • だからこれは一般の付箋とは違うものだとわかった方が良い
      • 開いた時はどうするか
        • 以前は表札付箋だったが、これは違う
      • 「グループのタイトル」として表示されれば良いのではないか
      • 🤔これを解体した時はどうなるべきか
        • タイトルがないならそのまま解体でいい
        • タイトルがある時、それは知的生産物だから失われてはいけない
          • 付箋にする?
          • 🤔それをもう一度グループ化した時は?
          • 凝ったUIを作らずに付箋を選んでコピペとかでどうか
  • 畳んだものは一段階大きくなるといいのでは
  • 圧縮付箋の展開時どうなるべきか
    • 前回は開いている状態からメニューで閉じ、閉じてる状態からワンクリックで開いた
    • 「デフォルト開」と「デフォルト閉」をトグルするようにしよう
      • ボーダーで区別する?

編集URLどうあるべきか

考察

done

✅普通のメニューを使う 60eff1fcaff09e0000c6d303

  • コンテキストメニュー
    • 前回はバルーンメニューにした
      • これは適切か?
      • メニューの文言が横に書かれているため、ボタンを横に並べるのは細長くなりすぎる
      • 古来からのコンテキストメニューみたいに縦並びのメニューが表示された方が良い