
[Ge Wang – Smule]
やっと10週目までたどりついた。
第17回講義は Ocarina や Leaf Trombone の大ヒットソフトを開発した Ge Wang がゲストだ。
講義ビデオの中でも白眉。iPhone アプリの開発者には必見だ。
彼についてはアップルも WWDC のサイトでフィーチャーしているほか、USAToday のインタビューもある。
[YouTube – Apple WWDC09 Dr. Ge Wang From Smule]
[YouTube – Talking Tech: Smule]
* * *
第17回講義:開発のヒント
講義のシラバスでは、つぎのように紹介する。
Ge Wang は Smule の共同設立者で、Ocarina や Leaf Trombone の開発者だ。今日の講義では iPhone メタフォール、感性豊かなソーシャルメディアの創造などについてタップリと語る。アプリのアイデアを探しているひとは、是非ともこの講義を聞くべきだ。
Ge Wang, co-founder of Smule and developer of Ocarina and Leaf Trombone, spoke at length today on metaphors for the iPhone and creating expressive social mediums for the phone. If you’re looking for inspriation for your own apps, you should definitely check out this lecture.
* * *

ラップトップオーケストラなど、音楽のインタラクティブな側面に関心を持っていた Ge Wang は iPhone SDK をきっかけに iPhone への関心を深めていく。

ジョイスティックによるデモ[11 分ごろから]があるが、これがなんともおもしろい。まるでひとの声を操るみたいだ。
* * *
Ge Wang はそもそも iPhone とは何か(What is this, really?)、何をさせられるか(What else can it be?)というところから出発する。
まず、第1の答えが Sonic Lighter だ。

すべての元になったのが、この Sonic Lighter・・・
ゆらめく火を傾けると iPhone の縁をこがす。ほかの iPhone を近づけると火が移る。息を吹きかけると火が消える。
つぎつぎにアイデア(new type of interaction)を加えていくことによって可能性がどんどん広がる。
* * *

第2の答えがオカリナ。
楽器としての Ocarina の可能性、マルチタッチのあらゆる可能性を探る。[21 分ごろから]
Ocarina は発売4日目で App Store のトップに躍り出た。ダウンロードは合計で百万をこえたという。

Ocarina のデザインについて語るところが興味深い。[27 分ごろから]
・小さくスタートする(start small)
・形は変えない(preserve physicality)
・技術をひとに合わせる、逆ではない(adapt technology for the human)
そもそも iPhone はどの PC より personal, intimate computer だという発言が繰り返される。
* * *
つぎに着目したのは「community」という視点。[33 分ごろから]

世界中に Ocarina の奏者というコミュニティが生まれる。プロではないけれど音楽好きなコミュニティ。

シロウトでも読めるオカリナ楽譜ができる。その曲が投稿される。

オカリナ奏者のコンテストが始まる。World Stage で優勝者を決める。
予期しない利用法がつぎつぎと生まれる。
広がる、広がる! 世界が広がる!
ひとつのことから次の発想が生まれるところがおもしろい。
* * *
これからどこへ?

ひとつは、楽器(instrument)そのものの可能性を試す。

スピーカーを両手に装着してiPhone を演奏する[39 分ごろから]
* * *
もうひとつは、コミュニティとしての側面を探る。
Leaf Trombone World Stage[45 分ごろから]

演奏の上手下手を判定するジャッジが登場する。
* * *
つぎに進むべき方向は?
テクノロジーは絶え間なく変化する。人間性(human nature)はあまり変化しない。テクノロジーと人間性の納まりどころ(sweet spot)を探るのがつぎの方向。
* * *

そしてすべては iPhone とは何かという問いに帰着する。(What is this, really?)
iPhone はパーソナルで、ひとと親密で、持ち運びのできるコンピュータだ(personal, intimate, mobile computer)という表現が何度も繰り返されるのが印象的。
デベロッパとは、iPhone にさらに何をさせられるか想像力を駆使する人間だ、と・・・
Developers exercise our imagination what else can it be?
* * *

iPhone プログラミングとは単にコーディング技術ではなく、創造性にあるということをこれほど雄弁に物語るプレゼンテーションはないのではないか。
つぎからつぎへと広がっていくアイデアと創造性こそ、iPhone 開発が目指すべき方向だという指摘は、大きな成功を収めたデベロッパの発言だけに重い。
夢を持ったすばらしいアプリが日本からも世界に羽ばたき、みんなの夢をかき立てることを心から希望したい。
* * *
第18回講義:Unit Testing ほか

[Evan Doll]
最後の授業は Unit Test や Localization のほか、質問の多かった項目を取り上げる。
* * *
Unit Testing
まずは開発サイクルにテストを組み込むための手段 Unit Test について。プロジェクトに Unit Test を組み込むことによってビルドフェーズでテストが自動化される。

Unit Testing が重要な理由。早期にバグをみつけ、バグの数を減らし、袋小路を避け、開発プロセスをすっきりさせることを可能にする。
コーディングの都度、まずテストから書けということらしい。(compiler は syntax をチェックし、unit test は semantics をチェックする?)
Unit Test は重要だが、かかる手間と効果のバランスを比較考量すべき。

Objective-C の Unit Test 用のフレームワークが OCUnit。
Unit Test のデモ[14 分ごろから]
* * *
Objective-C の強力な機能
Inspecting Methods のデモ[26 分ごろから]

Method Swizzling のデモ[34 分ごろから]

Swizzling – カテゴリーをオーバーライドする方法。強力なので潜在的危険性をはらむ?
* * *
未公開の API を使う危険性

未公開の API はまだ未完成かもしれないし、消えてなくなるかもしれない。「未公開の API を使うのは高速道路 280 号線を勝手に横断するようなもの。」(“Calling unpublished APIs is like jaywalking across 280”)
* * *
Localization

各国語にローカライズする問題。(lproj = localized project)[43 分ごろから]

Internationalization(l18n)と Localization(l10n)の2つの方法。

* * *
アプリを Landscape で立ち上げるには?

アプリを Landscape で立ち上げられるようにするためには2つのステップ。

Landscape のデモ[55 分ごろから]
* * *
UIKit View のカスタマイズ[58 分ごろから]
* * *
クールなアイコンはどうやって探す?[1 時間 05 分ごろから]
![]()
* * *
iPhone アプリが作れればマックのアプリも可能か?[1 時間 07 分ごろから]

隔世の感がある質問。答えは「within your reach」(もうちょっと)。
* * *
結びのことば

第19回講義に添えられた説明。
CS193P のウェブサイトについて。このサイトに載せられたコンテンツは、夏の間はほぼ入手可能だが、夏が終わる頃には削除されるので入手不可能となる。欲しい材料はそれまでにダウンロードしておくようお勧めする。いったん削除されたら、もう入手は不可能だ。
One note about the class website. The content will remain available for most of the summer, but towards the end of the summer it will be taken down and the materials will no longer be available. It would be a good idea to download all the materials you need now so that when the website is cleaned you’re not left missing stuff. Once it’s gone, it’s gone.
秋学期にもまた授業を再開したいと考えているが、詳しいことは夏の終わり頃までにはこのサイトに発表する予定。授業が iTunes U や SCPD で同じように公開されるかどうかは目下のところ不明。それも夏の間には発表できると思う。
We are expecting to run the class again in the Fall quarter, keep an eye here for more details as that time draws near. At the moment we don’t know if it will be available on iTunes U or SCPD again, we’ll post more over the summer.
みんな授業を楽しんでもらえたことと思う。これからもすばらしい iPhone アプリの開発を止めないでほしい。ほんとにたのしい学期だった。それじゃまた!
We hope you all have had a good time in this class and that you’ll continue on the path of building some amazing iPhone applications. We really enjoyed the quarter! Take care and stay in touch.
* * *
10週に及んだスタンフォードの講義は以上で終了した。
あとは学生が作成したソフトの発表会だけだ。最後の19回目講義がそれにあたる。
それにしても、プログラミングにまったく無知なシロウトがここまで来たのだから感無量・・・
* * *
最後にごく初歩的なアプリを・・・

Hello World をいじったバリエーション。日本語入力も可能だ。

ま、このぐらいでご容赦願いたい・・・
* * *
[講義概要]
• iPhone Application Programming Course (CS 193P)
- 講義ビデオもここからアクセスできる
- デモのサンプルコードもこちらから入手できる
- 教材を利用できる期間は限られているので、必要なものはダウンロードしておくといい
* * *
同時進行でみるスタンフォード iPhone プログラミング
[つぎの講義]:第19回
[これまでの講義]
・補講:OpenGL の最適化
・第16回講義:オーディオ・ビデオ
・第15回講義:Device API
・第14回講義:マルチタッチコントロール
・第13回講義:Notification ほか
・第12回講義:アドレスブック
・補講:Stanford 大学院生 Steve Marmon
・補講:Tweetie の Loren Brichter
・第11回講義:テキスト入力とモーダルコンテンツ
・第10回講義:パフォーマンス
・第9回講義:データ処理
・第8回講義:スクロール
・第7回講義:Navigation Controller
・第6回講義:Designing iPhone Applications
・第5回講義:Views
・第4回講義:HelloPoly
・第3回講義:メモリー管理
・第2回講義:Objective-C
・第1回開講
Technorati Tags: Cocoa, CS 193P, iPhone, iPhone SDK, iTunes U, Programming, Stanford
お疲れ様でした。
最後まで掲載していただき有り難うございました。
敬意を表します。
[...] [...]
[...] 同時進行でみるスタンフォード iPhone プログラミング:第17回開発のヒント・第18回 Unit Testing ほか | maclalala2 [...]