Androidでのクラウド連携ってCloud Messaging Service だけでしたっけ? (a.k.a. 古いAPIも見なおそう)
当記事はAndroid Advent Calendar: Welcome to Android Advent Calendar 2012 Project!の7日目、表のエントリです。
本日の裏は@Arigata3のhttp://d.hatena.ne.jp/arigata3/20121206/1354799406です。
ツイッターでは @chun_ryo として活動し、お仕事は AndroidやiPhoneなどのスマートフォンアプリ、ウェブアプリなどを開発する会社を細々と営んでおります。そんな弊社のウェブサイトは http://www.brightechno.com/ です。
と、自己紹介は簡単にして、本題に移りましょう。
早く普及してほしいな新しいAndroidバージョン
Androidは新しいバージョンが半年に一度程度のサイクルで登場しています。皆さまご存知の通り、その新しいバージョンはwith GoogleなNexusブランドの端末、実質的には開発者かアーリーアダプタくらいしか買わない端末でしかしばらくの間(半年〜1年)は使えません。
そして、新しいバージョンのOSに特化したアプリを作ってもいいのは、さらにそのOSバージョン以上が広く普及してから。未だにAndroid 2.2以上で動作するようなプログラムを書かざるをえないのが現実かと思います。
FragmentなどのUIについては、同等機能を提供するAndroid Support Packageのおかげでその点での問題は少なくなっているAPIもあります。とはいえすべての新しい機能が使えるようになるわけではないので、「新しい機能がいつまで経っても自由に使えないAndroidは☓☓だ」という気持ちが沸き上がってきてもしょうがな……いや、本当にそうだろうか?
API Levelの違いが、戦力の決定的差ではないということを・・・教えてやる!
振り返ってみて、自分はそこまで古いAPI Levelを使いきっていただろうか?
Android 2.2 (API Level 8)から導入され、Google I/Oなどでも使い方の紹介されているにも関わらず、世の中の多くのアプリでほとんど使われていない便利機能があるような……。
たとえば、こんなことを経験したことはないですか?
- 端末を初期化して同じアカウントを設定したら、前にインストールしていたアプリが自動的にインストールされた。しかし、アプリに設定したアカウント情報が消えていたので、それぞれのアプリでログインしなおした。
これって使ってるネットサービスのアプリが多いと地味にめんどくさいですよね。
アプリの自動インストールのついでにアカウント情報も復活してくれたら楽なのにな思うことがしばしばあります。
BackupManager を使えば、実現できる機能です。
ということで、なぜ BackupManager ってあまり使われてないのかな、ということを感じたので、試しに使ってみよう、そしてあわよくばみなさんにも使ってもらうための情報を提供しようというのが今日の目論見です。
BackupManager を使ったサンプルアプリ
とはいえ、ただ単にBackupManager を紹介するというのも面白くないので、ちょっとしたアプリをサンプルとして作成しました。サンプルアプリは以下のような機能を持っています。
- アプリ起動時に暗号鍵データが無ければ生成し、BackupManagerでクラウドにバックアップする。すでにバックアップが存在している場合はバックアップから復元する。
- 電話帳から本アプリが作成した鍵で暗号化したメールアドレスを持っているエントリだけを抽出し、一覧を表示する
- 電話帳に名前と暗号化したメールアドレスを登録する
作成したアプリの全ソースコードはGitHubにて公開しています。
https://github.com/ynakanishi/SecretAddressBook
APKはこちら。
https://dl.dropbox.com/u/7073683/SecretAddressBook.apk
注意:
- あくまでもサンプルです。
- ご自身のアプリケーションでバックアップ機能を実現される場合は、ご自身のアプリケーションのパッケージ名からAPI Keyを取得してください。
- https://developer.android.com/google/backup/signup.html こちらでAPI Key取得が可能です。
- 弊社のパッケージ名は念のためGoogle Playに登録済みなので、そのままのパッケージ名で他の方はGoogle Playへのアップロード不可のはずです。
ライセンス条件を入れ忘れてますが、Apache License 2.0 にするつもりです。後で入れておきます。
プログラムの解説 (T.B.D.)
では、どんなことをやっているかについて解説していきましょう、と思ったのですが、一旦ここまでで公開しちゃいます。
プログラム解説については後で追加しますので、時間をおいてご確認いただければと思います。
今後の展開について
このアプリ、現状は既存データの編集も出来ない、削除もできないという単なるサンプルアプリでしかありません。電話帳アプリから名前すら見えるのは困る、PIN入力などで持ち主以外には起動出来ないアプリになっていてほしい、電話番号も暗号化してほしい、などなど足りない機能はたくさんありますね。
もし機能拡張したら実用として使いたいという人がそれなりにいらっしゃるようなら、もう少し改良してGoogle Playにも公開するかもしれません。
でも、このアプリの機能拡張を求める方は、奥さんや彼女に対してやましい(以下略)。