f:id:kirara_397:20090212100011j:image:right

2月12日、東京は目黒雅叙園にて開催された「Developers Summit 2009(通称デブサミ)」に2セッションだけ参加してきたので簡単にレポートします。

9時30分

B会場入り。空いている。auの電波の入りが悪くて難儀する。ジャマーが設置されているのかも知れない。

10時00分

サイボウズ・ラボの竹迫氏から挨拶。デブサミ2009のテーマ「つなぐ、つながる、そして未来へ」を紹介。Chrome、Firefox、SafariのJS実行速度競争などを話す。

セッション1「実例で学ぶ Objective-C 2.0 と GUI の関係

書籍「詳解 Objective-C 2.0」で有名な荻原剛志氏の講演。「よく学校の授業みたいだと言われますが、本業が教える方なので・・・(笑」という切り出し。

  • プログラミング言語の歴史(一部のみ)
    • Fortran-Cobol-Algol60-C-Objective-C
  • GUIの歴史(一部のみ)
    • Alto Computer-Lisa-Macintosh
    • NeXT Computer
    • 二つの流れが合わさってMac OS Xが生まれた
  • NeXTstep
    • アプリケーション記述にObjective-Cが使われていた
    • メールソフト、表計算、グラフィック、etc.
  • Objective-Cとは
    • C言語+オブジェクト指向
    • 概念や記法はSmallTalkを真似ている
  • Objective-Cの歴史
    • C++はCの拡張
    • 既存のCプログラムを云々
    • Objective-CはC言語の上位互換
  • 他のOO言語との比較(色々)
  • Objective-C 2.0の新機能
    • GC(ガーベジコレクション)
    • 宣言プロパティ
    • 高速列挙
    • 宣言プロパティは便利だが、従来のままでも不便はない
    • ランタイムシステムが大幅に変更された
  • メッセージ式の記述
    • オブジェクトは、どのくらい巣に属するものでもidという特別な型で表現できる
  • クラス定義(インタフェース部)
    • 通常はヘッダフィルに記述する
  • クラス定義(インプリメント部)
    • C言語も混ぜて記述できる
  • 動的結合
    • メッセージの処理は、動的結合とポリモーフィズムを基本とする
    • virtual,finalなどは指定しない
    • 送ったメッセージが存在しなければ、実行時エラーとなる(SmallTalkと同様)。
  • メモリ管理
    • Mac OS Xの実行環境ではリファレンスカウンタ方式・・・
  • セレクタとメッセージ送信
    • セレクタを指定してメッセージを送れる
  • ターゲット-アクション・パラダイム
    • NeXT時代以来の由緒正しい、歴史の長い手法
  • ランタイムシステム
  • システム階層
  • Mac OS XでのAppKitフレームワークにあたるのがiPhoneのUIKitフレームワーク
  • 例題プログラムの概要
    • (XCodeで実演)

このへんで撃沈。だってーやっぱり授業っぽいんだものー(言い訳

セッション2「iPhone 開発者座談会

モデレータ
高橋征義 (Twitter)
パネラー
吉田悠一 (2tch,dharma,hideHere) (Twitter)
森琢磨 (NatsuLion for iPhone) (Twitter)
shachi (Evernote for iPhone) (Twitter)
瀧内元気 (PokéDia,iMarimo) (Twitter)
中川智史 (LimeChat for iPhone,Wikiamo) (Twitter)

による座談会。AppBankさんも速報記事を出している

iPhoneアプリ規模観
  • 開発期間は1ヶ月とか3ヶ月とか3日とか、規模によってまちまち
  • それより開発以外のところ(主にAppStore対策)に時間がかかっている
困ったこと
中川
iPhoneのOSアップデートで挙動が変わる
Submitし直す(反映は1ヶ月くらい)
瀧内
全言語対応

  • 設定画面の変更一つも大変
  • 万国共通のアイコンを探す苦労
shachi
OS更新でタッチ部分の検知範囲が微妙に変わってる
Objective-Cの学習から入ったので時間がかかった(Cの素養はあったとの事)
pending contract」が続いた
できるだけ早めにアカウントを作ってダミーアプリをアップするとかの対応が有効
吉田
審査の蒸し返しがあった
機能の作り込み
中川
Apple「デスクトップアプリの移植はNG」
コアユーザー向け機能は削り落とす
瀧内
思いついたものを勢いで
作れるものから、重要なものから作る
審査で言われたものを追加していく
shachi
機能は一つでいい、十徳ナイフではなく肥後守でいい
最初のEvernoteは音声録音のみだった
iPhoneは書くより読む方が向いている
AutoPagerize機能を入れてみた
機能を削るのが難しい
機能追加要求が激しいが、全部実装するとカオス
吉田
思い立ったら作る
提案されたら作る
機能がカオスになると理念を守れない
UI開発の工夫
中川
iPhoneは画面が狭くキーボードがない
Appleアプリの文法から学ぶ
瀧内
画像データレベルで並べてシミュレート
インターフェースビルダーでシミュレート
shachi
紙を用意してチョキチョキ
ペーパープロトタイピング
図画工作の方が気楽
Apple標準アプリのUIを模倣
基本的にはMacの既存のアプリUIを参考に
ユーザビリティ面でパフォーマンス重視
文字描画の高速化などを駆使
コードの美しさよりも実用性重視
吉田
iPodのメニューUIを参考
NatsuLionのコードを参考
AppStore対策
吉田
色々とリジェクトを食らった:

  • BBSピンクが見られるのはまずい
  • ボタン配置がおかしい
  • 文言がおかしい
などなど。とにかく良く見てくれている
まとめ
中川
世界中に使ってくれる人がいるのがいい
瀧内
色々と落とし穴なりハマリがあるので、開発者同士で情報交換するのがいい
shachi
海外からの仕事が増えた。海外で仕事するチャンス。twitterの活用。
SDKをダウンロードして試してほしい。情報交換していきたい。
吉田
AppStoreとiPhoneの仕組みはおもしろい。フランスで2ch見てる人がいるんだなあ、とかが楽しい。

以上

いかがだったでしょうか?開発者の方々の生の声を聞けて大変刺激になりました。講演者の皆様、ありがとうございました。
プログラミングからは長らく離れていたのですが、iPhoneを機に一発かましたろかと思っています。

おまけ

セッション2の準備中に大写しにされた遠子先輩壁紙。欲しいんですけどどこで手に入りますかー?

f:id:kirara_397:20090212111030j:image

広告