Spottizmo! 2.20リリース / Background Fetch対応ほか

12/6にリリースされた新バージョン、お試しいただけたでしょうか?

今回のハイライトはiOS7に導入されたBackground Fetchへの対応です。

iOS7からアプリのバックグラウンド動作まわりが大きく変わったのですが、このBackground Fetchもそのひとつです。

Appleの説明によると、たとえばTwitterのタイムライン取得をアプリが起動してから行うのではなく、バックグランド状態で事前に取得しておくことでUX向上を図る機能です。すでにTweetbot等でも採用されてるのでおなじみかもしれません。

挙げられている用例には本バージョンで採用している定期的な位置情報取得というのは載っていないため、審査通るだろうか?と若干不安だったのですが、問題ありませんでしたね。

これまでは移動しないと一切SPOTが作成されなかったので、ずっと引きこもって仕事とかしてると空白の日ができていました。通勤というものがない自分の場合は特に。これが改善されて、移動していなくても定期的にSPOTが自動作成されるようになりました。

とはいえ、同じ場所にいくつもSPOTが作られるのも無駄だし空しいので、今回は記録間隔を6時間固定にしました。なので移動しなくても1日に4つはSPOTが作られると。

ただし、Background Fetchの動作はそのアプリの利用状況に応じて変動します。6時間という設定も「最短間隔」であり保証されるものではありません。

なので、Spottizmo!を毎日起動していれば6時間に近い間隔で記録されますが、全く起動しないとおそらく記録されなくなるはずです。ここ重要。

話は本題からズレますが、iOS7で大きく変わったバックグラウンド動作の仕組みですが、このせいで「全く記録されなくなった!」というクレームがたくさん寄せられるようになりました。

AppStoreのアプリ説明欄等にも追記したのですが、設定アプリの「Appのバックグラウンド更新」をOFFにしたり、タスクスイッチャーで強制終了してしまうと、本アプリの肝である「自動バックグランド起動して位置情報を取得」という動作ができなくなってしまいます。バッテリー消費を抑える方法として「Appのバックグランド更新をOFFにしよう」というブログ記事の氾濫のせいで、深く考えずにOFFにしてしまうユーザが多かったようです。

これまで概ね高い評価をいただいていたのに、これが原因で多くの一つ星評価を喰らってしまいました。まったく迷惑な話です。

さて話は戻りまして、その他の変更についても少々。

分かり易いところでは外観をiOS7っぽくしました。旧OSとの互換性を保ったままiOS7に対応するのは結構大変でした。そしてかなり中途半端。iOS7らしいアプリにするには旧OSは切り捨ててゼロから作り直さないとダメだなという事が良く分かりました。もしそうする場合は別アプリにする事になるでしょうね。

あとは、既存SPOTおよび新規手動作成SPOTの位置や日時を変更できるようになりました。これはずっと要望があったものなのですが、移動距離を使ったゲーミフィケーション機能を考えていて、ログを自由にいじれるとインチキができてしまうため実現できずにいました。結局その機能はお蔵入りになりそうなので今回実装したというわけです。

北米等のエリアで誤った位置のジオタグが付くという恥ずかしいバグをはじめ、細かいバグもいくつか直しています。

ということで、3ヶ月ぶりのアップデートをお楽しみいただければ幸いです。