なぜネイティブアプリなのか
Kosshi は SwiftUI、AppKit、UIKit など、 Apple のフレームワークを使って構築されています。 ブラウザ上で動く Web アプリではなく、 Web アプリをデスクトップアプリとして包んだものでもありません。
ネイティブアプリを選んだ理由は、 アウトライナーを使うときの応答の速さと、滑らかな操作感を大切にしたかったからです。
思考の流れを止めない
アウトライナーでは、文字を入力するだけでなく、 インデント、行の移動、折りたたみ、展開、ズームを短い間に何度も繰り返します。 一つひとつは小さな操作ですが、そのたびに待たされると考える流れが途切れます。
Kosshi が目指しているのは、キーを押すと行が動き、 折りたたむと周囲の行がすぐに追従する操作感です。 道具の存在を意識せず、アウトラインの内容に集中できることを重視しています。
そのために Kosshi は、文字入力、スクロール、キーボード操作、描画を Apple のフレームワークと結びつけ、Mac、iPhone、iPad に合わせて設計しています。
Apple デバイスに合わせた操作
Mac らしい操作感は、画面の外観だけでは決まりません。 文字の選択と日本語入力、キーボードショートカット、トラックパッドのスクロール、 右クリック、ドラッグ&ドロップ、メニュー、ウインドウといった細部の積み重ねで決まります。
Apple のフレームワークを使うことで、 こうした操作を macOS と iOS の入力方法、アクセシビリティ、外観設定へ自然につなげられます。 OS の更新に合わせて新しい機能や振る舞いを取り入れやすいことも利点です。
もちろん、ネイティブアプリであるだけで快適になるわけではありません。 ネイティブであることは、Kosshi が求める操作感を作り込むための土台です。
滑らかな動きの手触り
応答の速さだけでなく、画面がどう動くかも操作感を左右します。
セクションを折りたたむと、下の行が上に繰り上がる。 展開すると、行が下へ広がる。 行を移動すると、周囲の行が場所を空ける。
Kosshi は Apple のアニメーションと描画の仕組みを使い、 独自の描画エンジンと組み合わせて、こうした変化を画面へ反映します。 行が突然切り替わるのではなく、どこへ移動したのかを目で追えることを大切にしています。
折りたたみや行の移動を繰り返すアウトライナーでは、 この小さな動きの積み重ねが、操作への安心感につながります。
Kosshi の実装
ネイティブであることは土台であり、それだけで速さが決まるわけではありません。
OS 標準のテキスト編集機能は、連続した文書を中心に設計されています。 一方、アウトライナーでは、多数の行を階層として扱い、 その行を折りたたんだり、まとまりごと移動したりします。
Kosshi はこの操作に合わせた独自の描画エンジンを持ち、 行の配置、カーソル、Markdown、画像を一つの流れで扱います。 文字を入力してから、行の高さを計算し、必要な範囲を描き直すまでを アウトライナー向けに設計しています。
編集と描画の中核は macOS と iOS で共有し、 入力やウインドウなど、デバイスごとに異なる部分はそれぞれの環境に合わせて実装しています。
大きなアウトラインでも操作を軽快に保つには、描画だけでなくデータの扱い方も重要です。 その仕組みについては Kosshi が大規模なアウトラインを扱う仕組みをご覧ください。
トレードオフ
Apple デバイス向けのネイティブアプリであるため、 Kosshi は Windows、Android、Linux では利用できません。
多くの環境から同じデータへアクセスしたい場合や、 リアルタイムの共同編集が必要な場合は、Web ベースのツールが適しています。
Kosshi は個人の思考を支える道具として、 幅広いプラットフォームへの対応より、 Apple デバイスでの応答の速さと操作感を選びました。 これは設計上のトレードオフであり、すべての用途に共通する正解ではありません。
ツールの選び方についてはアウトライナーの選び方をご覧ください。
Kosshi について
Kosshi は macOS / iOS 向けのネイティブアウトライナーです。 独自の描画エンジンにより、折りたたみ、行の移動、構造の変更が軽快に応答するよう設計されています。 iCloud で Mac、iPhone、iPad 間を同期します。
基本操作についてはアウトライナーとは?を、機能の詳細はガイドをご覧ください。