KosshiKosshi

アウトライナーでタスク管理

アウトライナーをタスク管理に使う人は少なくありません。 行にチェックボックスをつければタスクになり、 インデントすればサブタスクに分解でき、 折りたためば今やることだけが見える。 専用のタスク管理アプリを用意しなくても、 アウトライナーの基本操作だけでタスク管理が成り立ちます。

この記事では、 アウトライナーがタスク管理に向いている理由と、 課題となる「期日の通知」を Kosshi がどう解決しているかを説明します。

なお、ここで扱うのは個人のタスク管理です。 Kosshi にはアウトラインを共有する機能がないため、 チームでのプロジェクト管理には向いていません。 自分の仕事を自分で把握するための道具として使う場合の話です。

メモとタスクが同じ場所にある

タスク管理アプリとノートアプリを別々に使っていると、 情報が分断されます。 打ち合わせのメモはノートアプリに、 そこから生まれたタスクはタスク管理アプリに転記する。 タスクを実行するときはタスク管理アプリで項目を見て、 詳細を確認するためにノートアプリに戻る。

アウトライナーでは、メモとタスクが同じツリーにあります。 メモを書いていて「これはやるべきだ」と気づいた瞬間、 その行にチェックボックスをつけるだけでタスクになります。 タスクの背景や経緯も同じ場所にあるので、 「なぜこのタスクがあるのか」を別のアプリで確認する必要がありません。

テキストだけで完結する

多くのタスク管理アプリでは、 タスクの属性を設定するために専用の UI を操作します。 期日を設定するにはモーダルやポップオーバーを開き、 フィールドを選んで値を入力する。 プロジェクトやタグの分類にもそれぞれ操作が必要です。

Kosshi では、行に書くだけです。

  • ☐ 新機能の仕様を決める @due(4/18)
    • ☐ 要件を整理する
    • ☐ デザインチームに相談する
    • ☑ 既存の実装を確認する
  • ☐ 週次レポート @report(every friday 17:00)

チェックボックス、インデントによる階層、 @タグ による期日—— すべてテキストとして入力します。 行を移動すれば分類が変わり、 インデントを変えれば階層が変わります。

これはすべてを 1 つのアウトラインにで説明した 「ノートを作って分類するコスト」と同じ構造の問題です。 タスク管理アプリでは「プロジェクトを作って分類する」コストが、 アウトライナーでは発生しません。

構造の変更も容易です。 月初には「プロジェクト別」で見ていたタスクを、 締め切り前には「今週やること」としてまとめ直す。 行を選んで移動するだけで組み替えが終わります。 折りたたみを使えば、 100 個のタスクがあっても、 目の前に出すのは今日やる 5 つだけです。

Mac と iPhone で同期する

タスク管理を個人で使うとき、 Mac で書いたものが iPhone でも見られることは基本的な前提です。

Kosshi は iCloud(CloudKit)でアウトラインを同期しています。 Mac で作った買い物リストを出先で iPhone から確認する。 移動中に iPhone で追加したタスクが、 帰宅後に Mac で開くとそこにある。 データはデバイスにローカル保存され、 同期はユーザーの iCloud アカウントを通じて行われます。 開発者側にサーバーはありません。

同期の仕組みについては データの保存と同期で詳しく説明しています。

通知という課題

アウトラインが Mac と iPhone で同期されていても、 一般的なアウトライナーには期日通知の仕組みがありません。 「3/15 までに提出」と書いておいても、 その日になって通知はされません。 通知が必要なタスクだけ別のアプリに転記する、 という運用になりがちです。

メモとタスクが同じ場所にあるというアウトライナーの利点が、 通知のための転記で薄れてしまいます。

Kosshi の解決方法——@タグとリマインダー連携

リマインダーとカレンダーは、 macOS / iOS に標準で備わっている個人のタスク・スケジュール管理ツールです。 期日のあるタスクがそこに現れるのは自然なことです。

Kosshi では、設定でリマインダーまたはカレンダーとの同期を有効にすると、 @タグに日付を書くだけで自動的に同期されます。

  • ☐ 企画書を提出する @due(3/15)
  • ☐ デザインレビュー @due(3/18 15:00)
  • ☐ 週次レポート @report(every friday 17:00)

タグ名は自由です。 @due@todo@meeting—— 括弧内に日付が含まれていれば同期されます。 別のアプリに手動で転記する必要はありません。

時刻を指定すると 1 時間のカレンダーイベントになり、 日付のみの場合は終日イベントまたはリマインダーになります。 行を完了にすると、アラームは自動的に無効になります。

タグの書式の詳細はタグをご覧ください。

なぜリマインダー・カレンダーと連携するのか

Kosshi 自体には通知機能がありません。 これは意図的な設計です。

クロスデバイス通知の問題

アプリがスケジュールするローカル通知は、 そのデバイスでしか届きません。 Mac で設定した期日は Mac でしか通知されず、 iPhone 側でアプリを開いていなければ iPhone には届きません。

CloudKit の変更通知をきっかけに各デバイスでローカル通知を登録する方法もありますが、 いつ配信されるかは iOS 次第で、 通知の確実性は保証されません。 また、通知を届けたいすべてのデバイスに Kosshi がインストールされている必要があります。

一般的に、クロスデバイスで確実に通知を届けるには プッシュ通知サーバーを立てて Apple のプッシュ通知サービス(APNs)経由で配信します。

サーバーを持たない設計

Kosshi はデータをデバイスにローカル保存し、 同期には Apple の CloudKit を使っています。 開発者側にサーバーはなく、 ユーザーのデータが開発者に渡ることもありません。

プッシュ通知サーバーを立てると、 この設計が崩れます。 少なくとも通知の内容とタイミングを サーバーに送る必要があり、 サーバーの運用・保守・セキュリティ対策も発生します。 通知のためにプライバシー設計を変えることは、 Kosshi の設計方針に合いません。

データの保存とプライバシーについては クラウドとプライバシーで詳しく説明しています。

Apple のエコシステムに乗せる

リマインダーとカレンダーは、 iCloud を通じてすべての Apple デバイスに同期されます。 Mac で Kosshi に書いた期日は、 Kosshi がインストールされていない iPhone や Apple Watch でも通知されます。

データの同期には CloudKit を、 通知にはリマインダーとカレンダーを—— Apple のエコシステムが提供する仕組みに乗せることで、 自前のサーバーなしに機能を実現しています。

リマインダーやカレンダーに登録された項目は、 Siri で確認でき、ウィジェットに表示され、 他のアプリからも参照できます。 通知のタイミングやサウンドは OS の設定からカスタマイズできます。

Kosshi について

Kosshi は macOS / iOS 向けのアウトライナーです。 すべての情報を 1 つのアウトラインに入れ、フォーカスで必要な部分だけを表示します。 iCloud で Mac と iPhone を同期し、@タグで書いた日付は Apple リマインダー・カレンダーと連携してクロスデバイスで通知を届けます。 買い切りで、サブスクリプションはありません。

タグの詳細はタグを、基本操作ははじめにをご覧ください。

7 日間無料で試す