昨日、第 7 回 Android 勉強会に参加した。
最初に iPhone の話が 30 分。その後、Google の石原さん、若狭さん、高岡さんが登壇。2 時間使って Android の話をした。2 時間の内訳は、次の通り。
- Google I/O のプレゼン資料を使って、Android の中身を説明
- 質問タイム その 1
- 第一の刺客: サービス提案 (Cybird)
- 第二の刺客: 3D on mobile (インタラクティブ・ブレインズ)
- 第三の刺客: 仕様統一について (ドワンゴ)
- 質問タイム その 2
iPhone (キーテル)
iPhone のお話が急遽登場。ただし、Apple の NDA が厳しくて突っ込んだ話は出来ないとのこと。
話題は 2 つ。
一つ目は、iPhone に関わるマーケティングの話。これからは、iPhone に最適化されたサイトが出来るんじゃないか、との予測。
二つ目は、iPhone 用のアイコン (ホームに置くアイコンね) の作り方入門。
こちらから Photoshop 用のファイルを取って来る。これが、とてもよく出来たサンプルになってるので、色・マーク等のレイヤーをごちゃごちゃいじると、iPhone のデザインにフィットしたアイコンを作れるとのこと。
Google I/O のプレゼン
Google I/O のプレゼン資料を使って、ダイジェスト・プレゼン。時間が限られているので、3 つのトピックに話題を絞っていた。
- Thread
- Process
- IPC (Inter Process Communication)
Google I/O に行った人・Google I/O の資料をチェックしてた人には、退屈なセッションだったかも。ぼくは Google I/O には行ってないので、話についてくだけで大変だった。
理解できたところをメモっとく。
- Android は基本一つのプロセスに一つのスレッド。ここで言うスレッドは、Linux のスレッドのこと。
- ほとんどのコンポーネントは、一つのスレッドを共有する (サービスなど例外はある)
- implicit なスレッドは勝手に終わるけど、expricit に始めたスレッドは自分で止めてね。
Zygote プロセスという特別なプロセスが、Android 起動時に起ち上がる。必要になりそうなものを全てプリロードするので、初期起動時が重くなる原因になってる (その代わり、その後のパフォーマンスが高くなる)
- IPC には、Percelable を使ってる。これは Java でいう所の Sylializable。Percelable は Sylializable よりシンプルなので軽い。ただし、Percelable は IPC 専用と思う方がいい。Sylializable が必要な場面では、素直に Sylializable を使いませう。
俺たちのサービス妄想 〜地図ナビ編〜 内嶋教人@Cybird
ここから三つ。Android へのサービス提案的な Lightning Talk が続く。一番手は Cybird の内嶋さん。
携帯以外のデバイスの話
Android は携帯以外のデバイスにも使えるよね、ってお話。全てのデバイスが、Android ベースになったら、端末間データ通信も楽になるかも。そんな話の流れで、カーナビ関連のサービスを 2 つ妄想していた。
オレナビ
家にいる家族や友人が、地図端末上で「こう行くんだよ」とルートをなぞると、そのデータがカーナビに転送される。遠回りな道ばかり教えてくれるカーナビよりも、「人」の情報の方が役に立つ!? 友達ん家に行く時とか、威力を発揮しそう。
アッシー君
彼女が携帯+GPSで現在地を彼氏に送信。彼氏のカーナビに彼女の居場所が表示される。そしてお迎えに上がる... と。カーナビに限らず、Android 端末同士の待ち合わせ用に使えさうなアイデア。最近、iPhone の GPS + Google Maps にクラクラさせられてるぼくにとって、とても魅力的なアイデアに聞こえる。
Android で Mobile3D 笠井 @インタラクティブ・ブレインズ
2 つ目の Lightning Talk。軽い (light) はずなのに、内容は激重。Android で 3D をいじるにはどうしたらよいかってお話。
Android をかじってる人なら、OpenGL/ES があるのを知ってると思ふ。問題は、その OpenGL をソフトウェアで動かすか、ハードウェアで動かすか。ハードを使うなら、どう実装するのか。OpenGL の美味さを引き出すには、実装依存な部分を切り抜けないといけない、とのこと。特に OS や VM 回りで、カタログ・スペックを大きく下回る性能しか出せなくなる。
ぼくは 3D を PC 上で glut 使っていじった程度なので、なんかもう異次元の世界を覗いてる気分だった。組み込みの 3D って、凄いのね。
荒木 @ドワンゴ
最後の荒木さんが、一番プレゼン上手かった。半高橋メソッド!?
ドワンゴは Android について、まだ何もしていない。といふわけで、ニコニコ動画モバイルのお話を聞いた。特に携帯電話端末アプリの開発での苦労話について。
以下、面白かったところを列挙。
- i アプリは Java で書くから、互換性問題はないと思ってた
- 端末間の互換性の低いこと! 特に「音」
- 900 の時、メーカーごとの拡張命令を使わないと音が鳴らなかった
- 903i になって、N 以外の音源がようやく統一された
- 905i (2008) に入ってようやく、一つのソース・コードで音が鳴るようになった
- 壁一面に検証用携帯端末の写真! サービス・インの度に、人海戦術で全ての端末で動作検証 (泣)。
オチのつけ方は「Android では、かふいうことのないやうにお願いします」。具体的には、次の項目がモバイル系サイトを作る時に穴になるとのこと。統一されてると嬉しいらしい。
- 画面 (Goldfish?)
- 音 (同時再生数、codec)
- タイマー (精度、個数)
- ユーザー・インターフェース (ボタン配置、個数)
Android で出来る (縛れる) 所もあるし、そうできないところもある、とは Google の中の人の答え。
あとがき
会場はフルに埋まってた。ノート PC 用に、電源と LAN ポートが完備 (自分で LAN ケーブルは持参しないと NG)。無線 LAN は、使えたのか使えなかったのか。一つフリー・スポットっぽいのも見つけたけれど、自由に使ってよかったのかしらん。
勉強会後に懇親会があったけれど、疲れてたのと会場に行く途中ではぐれたのとで、速やかに帰宅した。