[Loren Brichter]
連休でぽけっとしている間もスタンフォードの講義は着々と進む。第6週目も2回の講義が行なわれた。
それだけではない。補講の2回分もアップされている。
で、今週は都合4本のビデオ講義について・・・
* * *
第10回講義:パフォーマンス
iPhone の限られたメモリー、遅い CPU、遅いネットワークはパフォーマンスにとって限界となる。
どうしたらパフォーマンスを上げられるかが iPhone プログラミングの重要な課題だ。
今回の講義ではメモリーと並列処理(concurrency)についての問題点を取り上げる。
* * *
限られたメモリー
限られたメモリーを有効に活用するために・・・
1)必要なとき必要なデータだけ読み込む(4 分ごろから)
講師はこれを「怠け者のデータ読み込み」(load lazily)という。なるほど。ココアプログラミングの要諦にも通じる。
2)メモリーリークを防ぐ(7分ごろから)
リーク(leak)はメモリー管理の大敵。Autorelease を多用するとメモリーなどすぐ使い切ってしまう。(1万回のループなど。)リークを見つけるための武器がパフォーマンスツールだ。そのデモが 12 分ごろから。
3)オーバーヘッドを減らす(デモは 21 分ごろから)
一体どのくらいメモリーを使っているか(maximum autorelease footprint)、ピークはどうか(High-Water Mark:最高水位)をチェックし、オーバーヘッドを減らすことを心掛ける。
Autorelease を使わないようにしたり、オブジェクトの再利用(Reusing Objects )を図るのもその方法だ。
4)システムからのメモリー警告(Memory Warnings)(28 分ごろから)
メモリーを使い切ったときシステムから発せられるメモリー警告は重大な結果をもたらす。結局は何を捨てるかということに帰する。
* * *
並列処理(Concurrency)
もうひとつ iPhone プログラミングで重要な問題はスレッド(Threads)のような同時進行の処理だ。スレッドはパフォーマンスの低下をもたらす。(30 分ごろから)
スレッドの問題はデバッグが大変むずかしいということらしい。NSThread、NSOperation、NSOperationQueue などに関して Xcode を使ったデモが 37 分ごろからあるがなかなかむずかしくてよく分からない。また Flickr からスレッドを読み込むデモは 54 分ごろから。
* * *
第11回講義:テキスト入力とモーダルコンテンツ
第11回目の講義は宿題 Presence をやるのに必要なテーマを取り上げる。テキスト入力(Text Input)とモーダルコンテンツ(Modal Content)だ。
* * *
Clang Static Analyzer
その前に、前回の復習を兼ねてデバッギングツールのデモがある。オープンソースの Clang Static Analyzer だ。(9 分ごろから)
C/Objective-C コードの静的分析(static analysis)を行なうツールで、バグの可能性を見つける。コマンドラインから起動するのだが、結果が Safari に出力されるところがクールだ。
* * *
iPhone Keyboard
まず最初に iPhone Keyboard について(18 分ごろから)。
これらのキーボードから入力されるテキストには様々な特性(traits)がある。その特性をどう反映させるかという問題。
* * *
テキスト入力をカスタマイズする
テキスト入力をカスタマイズするデモについては 26 分ごろから。
* * *
モーダルコンテンツ(Modal Content)
もうひとつの話題はモーダルコンテンツ。
モーダルダイアログボックス(modal dialog)といえば、一度開いたダイアログボックスを閉じるまで、他の操作をできなくするタイプのダイアログボックスのことだ。話題にされるのはそんなモーダルな形で提供されるコンテンツのこと。
モーダルコンテンツは操作の選択肢が限られる。どうやって片付けるかという問題と、メモリー管理上如何にうまくやるかという問題が生じる。
このあたり delegate method と絡むほか、retain はダメで assign ならいいとかむずかしくてよく分らない。さらには delegation と notification の話なども出てきてややっこしい。
* * *
以上が今週の講義だが、毎週月・水2回の講義のほか、金曜日にも講義が行なわれる。補講だ。ゲストによるものはなかなかおもしろい。
* * *
補講:Tweetie の Loren Brichter
例えば今回アップされている Tweetie の Loren Brichter が5月1日におこなった金曜セッション。App Store でヒットしたアプリのサクセスストーリーだ。
実際に App Store で一儲けしようとと考えているものにとっては、ひょっとしたら講義よりオモシロいのではないか。
[Loren Brichter が作った Tweetie の売り上げグラフ]
Tweetie 売り上げのグラフを示しながら、それぞれ売り上げ急上昇の時点で何が起きたかを説明するので、デベロッパや学生でなくても聞きたくなる。
これこそまさに App Store に向けた実践的講義だ。
* * *
補講:Stanford 大学院生 Steve Marmon
[タンフォード大生の Steve Marmon]
こちらはハウツーもの。「カッコいい iPhone アプリを作るための10のステップ」(How to Build an iPhone App That Doesn’t Suck! in 10 Easy Steps)なるタイトル。
現役のスタンフォード大学院修士過程の学生で、アップルへの就職が決まっているらしい。
[iPhone のプロトタイプ?]
* * *
スタンフォードで iPhone 講義をするということ自体、新しいプラットフォームのユーザーベースを確立するのに大変役立つであろうことは明らかだ。
世界的な有名大学で講義をすればアップルブランドにも資する。さらには優秀な学生をリクルートする場にもなるわけで、二重、三重の役割を果たしているように思われる。
かかる産学協同は果たして日本でも実現可能だろうか・・・
* * *
[参考]
• iPhone Application Programming Course (CS 193P)
講義ビデオも中からアクセスできる
デモのコードサンプルもこちらから入手できる
* * *
同時進行でみるスタンフォード iPhone プログラミング
[つぎの講義]:第12回・第13回
[これまでの講義]
・第9回講義:データ処理
・第8回講義:スクロール
・第7回講義:Navigation Controller
・第6回講義:Designing iPhone Applications
・第5回講義:Views
・第4回講義:HelloPoly
・第3回講義:メモリー管理
・第2回講義:Objective-C
・第1回開講
Technorati Tags: Cocoa, iPhone, iTunes U, Programming, Stanford
コメントを残す