2009/07/22

OmniFocus for iPhone 1.5.2

OmniFocus for iPhone 1.5.2 がリリース。

リリースノートによると

  1. デフォルトのDue Timeが5:00PMになった
  2. NearByの地図表示に編集機能が追加された
  3. プロジェクトフォルダごと「取り止め」することができる
  4. アクションリストにDue Dateが表示されるようになった
  5. 同期設定の不具合が修正された
  6. 日本語を含むローカリゼーションの改善
  7. Due Dateの通知機能が追加された


デフォルトのDue Time、これまでは0:00だったのでDue Dateのあるアクションを追加する場合、毎回時刻を設定しなおさなければならず面倒だったのですが、午後5時なら時刻再設定の手間が多少は改善されます。
なお、デスクトップ版OFでは「環境設定」→「データ」→「時刻を特に設定せずに期限を設定した場合に適用する時刻」でデフォルトのDue Timeを設定することができます。


NearByの編集機能。
まずNearByで地図表示すると画面右上に「編集」ボタンが現れます。
これを押すと地図の中央にピンがドロップされ、そのピンの場所で新しいコンテキストを作成したり、既存のコンテキストに割り当てることができます。
(ピンの”>”マークを押して新しいコンテキスト名を入力するか、表示されたコンテキストのリストから割り当てたいコンテキストを選んでタップする)
ドロップされるピンは常に地図の中央にドロップされるので、ピンの位置を変更するには地図をスクロールさせなければいけません。
目的の場所を地図の中央になるようスクロールしたら、「ピンを置換」ボタンをタップするとピンが地図中央に再ドロップされます。
ちょっとややこしいUIですね。




あと今回最大の目玉がカレンダーベースの通知機能。

この機能をオンにすればDue Dateが来るとiPhoneの画面にそれを知らせる通知メッセージがポップアップしてきます。
しかもオフライン(3Gが圏外でもWi-Fiがオフでも)でも通知されます!

ただし、条件があって、MobileMeまたはWebDAVを使っていること。

設定方法はOF for iPhoneで「設定」→「日付」の”カレンダーを書き出す”をオンにします。
通知日時はDue Dateの5分前/15分前/30分前/1時間前のどの時点で通知するかを設定。
「カレンダーで購読」をタップするとMobileMeまたはWebDAVのIDとパスワードを聞かれるので入力します。
これで設定は終了。
試しにDue Date/Timeを設定した適当なアクションを追加して、実際に通知されるか試してみてください。

ただし、どうも未だバギーなようで、ボクの環境では同期する度に新しいカレンダーがボコボコできちゃいます。
OFが起動した状態で2回以上同期するとその現象が起こるようで、いったんOFを終了させれば次回起動した時に同期してもそのような現象は発生しないのですが・・・

しかし、よくこんなトリッキーな方法を考えたなぁ〜(笑

まずAppleがサードパーティーのアプリがカレンダーにデータを書き込むことを許可していません。
つまり
OF → カレンダー(あるいはカレンダーアプリ) → ポップアップ通知
をやりたいんだけど出来ない。

そこでOmniが考えたのが、
OF → MobileMe/WebDAV上のカレンダーファイル(.ics) → カレンダーアプリでそれを購読 → ポップアップ通知
という流れ。

MobileMe(実際はiDiskつまりWebDAV)/WebDAVサーバー上にOF専用のカレンダーファイルを作成し、そこにDue Dateが設定されたアクションを、期間0秒のイベントとして登録しておきます。そしてそのカレンダーファイルをiPhoneのカレンダーが購読するよう設定する(ここまでOFが自動的に行なう)という仕組み。

なので、通知機能を使うのにMobileMeまたはWebDAVが必須という訳です。
実際にiPhoneの「設定」→「メール/連絡先/カレンダー」→「アカウント」を見てみると、"OmniFocus Reminders"というカレンダーが作成されているのが判ると思います。

たしかにオフラインでも通知されるし、ユーザは具体的な仕組みを知らなくても良いし、よく出来ていると思います。
それにしても良く考えたし頑張ったな〜。つくづく感心です。