写真、場所、そして求めないことにした権限
記録に写真と場所を付ける操作は、ワンタップであるべきです。そのために、簡単に表示できた二つの権限ダイアログを出さないことにしました。
写真と場所が付いた記録は、同じ文章だけの記録よりずっと思い出しやすくなります。一方で、日記アプリが最も多くのアクセスを求めてきた部分でもあります。私たちは数回のリリースをかけて、権限を増やさずに前者を実現しようとしました。
写真:権限を必要としないピッカー
ONEDiaryはメディアライブラリ全体へのアクセスを求めず、Androidの フォトピッカー を使います。ピッカーはアプリの外で動き、選んだ画像だけをアプリが受け取ります。ギャラリー全体の読み取り権限がないため、許可するダイアログも後で取り消す権限もありません。
その代わり、先にピッカーを開かなければライブラリを調べて今日の写真を提案することはできません。これは実際に手放した機能です。端末上のすべての写真への常時許可を持つ日記アプリは、何をするにしても良い形ではないと考えました。
場所:スマホではなく写真を読む
1.4.9では、編集画面の感覚を変える小さな機能を追加しました。添付した写真のEXIFメタデータにGPS情報があれば、記録がその場所を自動で提案します。
面白いのは、これが何を置き換えたかです。場所を自動入力する普通の方法は、位置情報権限を求めて端末の現在地を読むことです。しかし写真は撮影場所をすでに知っていて、ユーザーはその写真を添付すると決めています。必要なのは書いている場所ではなく、その出来事が起きた場所です。ファイルを読むほうが正確で、求める権限も少なくて済みます。
場所を手で検索することもできますし、保存前に提案された場所を削除・変更することもできます。
Places API(New)への移行
その場所欄の検索は1.4.9でPlaces SDK 5.2.0系と新しいPlaces APIへ移行しました。SDK変更に合わせて画面も作り直しました。以前の流れに問題が積み重なっていたからです。
- 検索は別画面へ移動せず、場所シートの中で行います。画面遷移中の認証フローで起きるクラッシュの一つがなくなりました。
- 最近の場所は最新順ではなく現在地からの距離順になり、近い場所が先に表示されます。
- 最近の場所には住所ではなく建物や店の名前を表示します。実際に呼ぶのはそちらだからです。
- シートを開くとキーボードの上に持ち上がります。明らかに思える動作ですが、以前はそうなっていませんでした。
1.4.8では、地図と閉じるジェスチャーが競合しないようにもしました。ドラッグできるシート内で地図を動かすと、すべてのドラッグが曖昧になります。そこで今は、意図を推測せず明示的なボタンで場所パネルを閉じます。
一般的なルール
機能にデータが必要なとき、取得方法はおおむね三つあります。システムに権限を求める、必要なものだけをユーザーに渡してもらう、すでに正当に持っている情報から導き出す、の三つです。私たちにとって便利な順に並べると、後ろへ行くほど便利さは下がり、使う人への敬意は上がります。
いつも三つ目に到達できるわけではありません。それでも最初に探すのはその方法で、今回の二つの機能はそこに到達しました。
自分のスマホで試す。
Google Playから無料で利用できます。Android 10以降なら、アカウントなしで記録を始められます。