2008-07-29

Android 勉強会 第 7 回に参加した

昨日、第 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 は、使えたのか使えなかったのか。一つフリー・スポットっぽいのも見つけたけれど、自由に使ってよかったのかしらん。

勉強会後に懇親会があったけれど、疲れてたのと会場に行く途中ではぐれたのとで、速やかに帰宅した。

No comments:

Post a Comment