高見知英のかいはつにっし(β)

高見知英のアプリケーション開発日誌 のほか、地域活動などの活動報告ブログ。

Androidアプリケーション NFC単語帳を公開しました

表題の通りですが、Androidアプリケーション、NFC単語帳を公開しました。

このアプリケーションは、NFCカードの中に任意の単語をあらかじめ書き込んでおくことで、カードをかざすだけでその単語をクリップボードにコピーしたり、アプリケーションに共有することができるというツールです。

また、おまけ(と言うより、設計当初はこちらがメイン機能だったのですが)として、SimejiやATOKなどに搭載されている文字入力支援機能、マッシュルームにも対応しています。たとえばよく入力するメールアドレスやユーザー名などの情報をカードに書いておき、入力するときにカードをタップして貼り付け、ということができます。

開発動機

この時期であればわかる方はわかるかもですが、今回Android Application AwardNFC賞が追加されました。そこで、せっかくNFCの基礎知識もあることだし、何か作ろうということで作ってみたのがこれです。


NFC自体まだまだそれほど人気があるものではないし、何かのイベントで使うようなアイディアは自分一人では実現できない(ちょっと前行われたアイディアソンでもいろいろアイディアが出たのですが、スケールが壮大で開発期間内に実現できるようなモノも多かった)。
どんなものを作ろうか悩んでいたんですが、何とか無事このような形に落ち着きました。

着想

このアプリケーションの着想は、実は先日開催したスマートフォン教室です。


すでにスマートフォンを使われている生徒さんの中に、アカウントとパスワードの情報が詰まったパスワード帳を持っている人がいました。WEBサービスの種類も増えて、ものによってはユーザー名やパスワードの文字に制限があるサービスもあったりする中、ああいう形に落ち着くのはすごくごもっともな話です。
プログラミングや仕事などで普段からパソコンをいじってる人ならともかく、普通の人はユーザー名やパスワードなどを記憶しようなどとは思わないでしょう。それも「なるべくサービスごとに別々のパスワードを作ってください」とか言われた日には。


とはいえ、あまり誉められた行為でないことに変わりはない。何とかいい方法はないかな と思ったときに思いついたのが、これなわけです。
カードにユーザー名やパスワードを保存するようにすれば、見た目読み取り出来ないので盗まれても比較的安心なものが作れる。まあ、NFC自体がそれほど流行ってない現状ですし、そもそもWebサービスを使うのはAndroidだけではない。これだけではそれほど需要がなさそうですが、まずはコンセプトということで。

本当はブラウザプラグインなどユーザー名とパスワードが一度に貼り付けられるような仕組みでやれれば良かったのですが、開発時間的にそこまで調査する暇はなかった(そもそも個人レベルでは作れない気もしますが)ので、とりあえずマッシュルームという形に。


本当に保存したいのはパスワードなので、できれば暗号化して、自分以外の端末では読めないようなカードを作れるようにしたい(実際は骨組みの実装はもうできているのですが、まともに使えるカードを作るのにはもう少し改修が必要そうだったので結局今回のバージョンでは保留になった)。

今後

カードにパスワードを書き込んで使うには、当然大量のNFCタグ(カード/シール)が必要。タグが欲しければAmazonや東京のReal Touch Shopなどで買えますが、まだまだ入手の機会が少ない。実際まだまだ使いどころは少ないだろうなとは思います。
ただ、個人でNFCを使うとしたらこの辺なのかな とは思いますし、将来的には結構使えるようになる のかな と思います。

蓋部分にカードが入る手帳タイプのジャケットなら、よく使うサービスの情報を書き込んだカードを携帯するなどもやりやすいですし、今後はこういう使い方も流行って欲しいなあ。


・・・というわけで、現状でも使ってみたい と言うかたは是非とも使ってみてください。
自分がよく使う定型文(メールアドレスとか)を一元管理できるので、現状でも便利といえば便利だと思います(定型文を複数デバイスで同期して気軽に使える タイプのアプリは現状無いため)。


その前に、自分ももうちょっとNFCカード買っておこうかな…。

あと、クラス周り

今回アプリ開発にあたり、結構いろんなクラスを作成しました。他で流用することも考えて作ってはいるので、多少は使いどころがあるものも作れてると思います。汎用性を持たせるためにはもうちょっと改修が必要そうですが。
このへん、いいクラスが出来たら、順次GithubQiitaなどにアップロードしていこうと思います。多少時間かかりそうですが。