Motohiro Takayama

Nov 28 '11

Time Card

IMG_0108

Thanks Giving 4連休の宿題のひとつは、 NFC を使って Android アプリをつくってみる、にしていた。

何かしはじめると時間の経つのが刹那のごとくで、それは脱線して YouTube にある無限 Watch it later リストにトラップされたり、風呂でえんえんと Kindle / iPad でコンテンツを消費している時間にもあてはまる。

はたして1日を有意義につかえてるんだろうか… かんたんに自分がやっていることを記録できたらいいんじゃないか。そういえば、4年前に Twitter の tweets を iCal で表示させる ていうのを試みたんだけど、いちいちキーボードを叩いて (マイクに話しかけて) tweet するというのはめんどうで、めんどうなことは続かない。

そのへんにある NFC タグ (Suica, PiTaPa, Clipper, …) を使って、それぞれに何をやっているか、というコンテキストを割り当てる。 Android でタグにタッチするとそのコンテキストがはじまり、もう一度タッチするか別のタグにタッチするとコンテキストが変わる、というのをやってみたらどうかと考えた。ばしっと Android なケータイを Suica に叩きつけるだけだ。めんどうさは少なくなるはず。

で、つくってみた。

abcdevice-2011-11-27-032632

左は、それぞれのコンテキストに費やした時間がどれくらいか、時系列に並べている様子。右は、新しい NFC タグをコンテキストに当てはめる画面。

やってみると、なかなか手軽に記録がとれていい。画面をタッチする必要すらないのだ (ただし Android デバイスはスリープから解除されていないといけない)。小さな画面をちまちま触るところから、3歩くらい進化している感じを受ける。

やっかいになるのは、コンテキストごとの NFC タグを持ち歩かないといけないということ。とはいえこれは些細だろう。都市部のひとなら財布に NFC なカードを2-3枚は常に入れているだろうし…

Feasibility study としてのプロトタイピングはできた。あとやるとしたら、その日いちにちの、それぞれに費やした時間を合計して Pie Chart で表示する、とか。自分のやる気の傾向を棒グラフで表示する、とか。もっとビジュアライズしたい。

コードは Github:mootoh/TimeCard に。


はじめてまじめに Android アプリの開発をやってみた。仕事でも Android (と iOS ) のコードを書いてはいるのだけれど、それは中間層づくりなので、アプリをつくるなかで分かることがいちいちある。

  • UI づくりの作法がまるで iOS のと違うのでいちいち調べる必要があって、手が遅かった。 Adapter とか LayoutParams とか
  • Interface Builder はすばらしくできていたんだなぁ
  • いわんや UIKit をや
  • Eclipse は機械に仕事させてる感があってとてもよい。 Eclipse があるなら Java も悪くない、というかがぜん生産性高い (C++ 比)

つくりたいものがあって、その UI を iOS と Android の両方でつくろうとしたら、やり方がまるで違ってわりとストレスになる。両方を同じテイストで、ひとりの人がつくるには、さっと取り出せないといけない知識が膨大で、なかなか大変だ。そりゃ Titanium などが流行るわけだよ。

開発者としてみたときの Android の美点は、 Intent の仕組みおよび Service (バックグラウンド処理) と、その気になればなんでもできそう (な気にさせられる) ところだろう。ダメなところをスルーしつつ、良いところの恩恵を素直に享受したい。


しかしこればかりやっていたために、他にやろうと思っていた他の宿題はこなせなかったな… Node.js さんともっと仲良くしたい。

4 notes Tags: android nfc

  1. mootoh posted this