[Steve Demeter by Peter DaSilva/New York Times]
WWDC でスタンフォードの講義がしばらくお留守になった。
第8週目はマルチタッチコントロールや Device API など iPhone らしい機能を中心とした講義だ。
* * *
第14回講義:マルチタッチコントロール
[Steve Demeter – Demiforce]
前半は Trism で大ヒットした Demiforce の Steve Demeter がゲストスピーカー。ゲーム開発者には見逃せない内容だ。
* * *
一応型通り5つのマルチタッチコントロールについて解説する。[10 分ごろから]
1)Sliders
2)Swivels
3)Direct Touch
4)Face Buttons, Simulated D-Pad
5)Create Your Own!
* * *
タッチする指のサイズを、Trism では 64×64 pixel に決めた話がおもしろい。[8 分ごろから]
* * *
アップルの開発者ページにフィーチャーされた Steve Demeter はこちら。
[YouTube – Apple WWDC09 Steve Demeter From Demiforce]
講義そのものより、開発者にとっては 16 分ごろからの Q&A の方が興味深いのではないかと思う。iPhone をみて機会来れりと思ったこと、WWDC までの限られた日時しかなかったこと、アップルとの協力関係に助けられたことなど、ゲーム開発者が関心を持ちそうな苦労話だ。
* * *
[Josh Shaffer – Apple]
後半はアップルの講師によるマルチタッチのより詳しい講義。Josh Shaffer は UIKit チームのメンバーだ。
* * *
Josh がカバーするのは、マルチタッチのすべての局面。「基本的なことを理解しておけばそれだけ書くコードも少なくてすむ」と彼はいう。これはマルチタッチに関するアップルの考えを知る絶好の機会だろう。
マルチタッチに関する様々なクラスの全体像は上の図のようになっている。
* * *
UITouch と UIEvent[25 分ごろから]
* * *
Single Touch のデモ[35 分ごろから]
* * *
Mutiple Touches のデモ[47 分ごろから]
指を2本使う場合。(最大5つのタッチまで可能:25 分ごろ)
* * *
Multiple Views のデモ[53 分ごろから]
同時にタッチした指のどちらを優先するかという問題。
* * *
Hit Testing[59 分ごろから]
どこに触れたかをチェックする。
* * *
UIControl のデモ[1 時間 04 分ごろから]
* * *
クラス名やメソッドを速射砲のように早口で語るのでなかなか付いていけないが、それでも開発の最前線にいるトップランナーが初心者である受講者に対して丁寧に答える真摯な態度はすばらしいと思う。
* * *
第15回講義:Device API
今回もまたアップルのゲスト講師。ソフトウェアエンジニアの Justin Santamaria だ。
[Justin Santamaria]
iPhone というデバイスに固有の機能を利用する API がテーマ。
Device Hardware と呼ばれるカメラ、位置情報(Core Location)、加速時計(Accelerometer)の3つについて。
* * *
Image Picker
まずカメラという Device Hardware の画像を利用するため、Image Picker Interface について学ぶ。[5 分ごろから]
Image Picker で使用するクラスはつぎのとうり。
UIImagePickerController
UIImagePickerControllerDelegate
UIImagePickerControllerOriginalImage
UIImagePickerControllerCropRect
UIImageWriteToSavedPhotosAlbum
UIImagePickerController について気をつけるべき点:
– ソースが利用できるかを常にチェック
– クリーンアップは delegate メソッドを利用
– メモリーをなるべく食わないように
* * *
Core Location (位置情報)[17 分ごろから]
精度に応じて使用可能な位置データがある(Bootstrap、Cross-check、Complement)
Core Location のフレームワーク:
CLLocationManager
CLLocation
CLLocationManagerDelegate
常時細かいデータを必要とするわけではないので適宜精度(accuracy level)を選ぶ。
またエラーやデータが取れない場合の対処も必要。
kCLErrorDenied
kCLErrorLocationUnknown
* * *
Accelerometer(加速時計)[37分ごろから]
向き(orientation)を察知するのに使われる。
向きには2種類ある。デバイスそのものの物理的向き(Physical Orientation)とステイタスバーの向き(Interface Orientation)だ。
UIDevice
UIApplication
UIViewController
UIAccelerometer
UIAcceleration
UIAccelerometerDelegate
大きな動きを捉えるか(low-pass filter)、小さな動きまで捉えるか(high-pass filter)によってフーリエ変換(Fourier Transform)された Accelerometer のデータをフィルターする。
* * *
水準器(Bubble Level)によるフィルタリングのデモ[48 分ごろから]
シミュレータがサポートしないので、Macのカメラで実演。
* * *
バッテリーについて(Power Management)[52 分ごろから]
どんな作業がバッテリーを食うという比較がおもしろい。大きい方から電波(Baseband, Wi-Fi, Bluetooth, GPS )、CPU/GPU、Display、ハードウェアモジュールの順で電力を食う。
したがって Device API は使わないときはオフにしておくことが肝心。
またデバイスそのものも使わない場合はなるべくスリープ状態にするようにという注意。
* * *
[参考:講義内容]
• iPhone Application Programming Course (CS 193P)
講義ビデオもここからアクセスできる
デモのサンプルコードもこちらから入手できる
* * *
同時進行でみるスタンフォード iPhone プログラミング
[つぎの講義]:第16回・補講
[これまでの講義]
・第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
ADC の資料の翻訳を行ってるサイトですが、Mac 関連の日本語情報サイトの収集も行っています。リンク集に掲載させていただきました。問題がありましたら、メール等でご教示くださればありがたいです。
> HK(神吉 秀典)さん
リンクは どうぞご自由になさってください
3か月前に スタンフォードの講義を見始めたとき 日本の関連サイトを探したのですが なかなか見つかりませんでした
(昨年秋に 初めて教材が公開されたときの反応は いくつか散見されましたが・・・)
講義ビデオのダウンロードが 100万回を超えたことが話題になりましたが プログラミング関連でこれほどの関心を呼んだのは 稀有のことではないでしょうか
このうち 日本からのダウンロードはどのくらいでしょうか 5%で5万 1%で1万 いずれにしても万のオーダーではないかと思います
それほど関心があれば スタンフォードの講義そのものに関する日本語情報も たくさんあるのではないかと想像します
そんな情報へのリンクサイトがあったら うれしいですね・・・
すみません。この記事とは関係ありませんが、ジョブズCEOが肝臓移植手術を受けていたと報じられています。
やはり重い病気だったようです。
> TORIO さん
順調な快復を 祈りたいですね
別館をご覧ください