遅れていた第3週後半の講義ビデオがアップされたと思ったら、すぐに第4週の分も2本公開された。
ちょっと油断するとすぐ溜まってしまうので、毎週2本のペースについていくのは大変だ。
そこで今回はまとめて3回分・・・
* * *
第5回講義:Views
第5回目の講義は「Views」すなわちユーザーインターフェイス(UI)の話が中心だ。
iPhone のスクリーン上にあるものはすべて Views というわけ。 iPhone のウインドウそのものも一番上位にある UI ということになる。
このウインドウをトップとして、その下に階層構造(Hierarchy)をなしていろいろな UI が位置する。
ウインドウ上の位置を決める座標系(Coordinate System)はすべて左上を基点(0, 0)として計算する。
スクリーン上に四角形を描く簡単な例からはじまって、三角形など複雑な図形へと進む。(20 分ごろから)
複雑な図形については「Paths 」という概念が必要になる。
さらには Text と Image それに Animation をどう扱うかの解説がつづく。(40 分ごろから)
こんな感じで教科書的な解説がつづくのだが、どうもこういうのは苦手だ。ところが、最後にサプライズがある・・・
* * *
第5回講義のハイライトはこの最後の 10 分間(57 分ごろから)だろう。
プログラミングがどれほど簡単なものか Alan が実演して見せるというわけ。プログラミングの即興実演(on-the-fly coding performance)だ。
カーソルを動かすとそれを赤い四角が追っかけるというデモ。名付けてストーカー(Stalker)。
完結したひとつのプログラムの実演なのでとても参考になる。ただし目まぐるしくて一回では分らない。そこはビデオのありがたさ、何度も見るうちに感じは分ってくる。これは必見だ。
メイン部分のコードはつぎのとおり。
うまくできてご満悦の Alan に拍手が沸く。
これぞプログラミング講義の醍醐味(だいごみ)というところか・・・
* * *
最低限これだけは・・・
なお、講義についていくために仕入れた最低限の知識はつぎのとおり。木下氏の「Cocoaセミナー初級編」から拝借。(中級、上級も読みたいのだがまだ余裕がない。)
・ヘッダファイルと実装ファイル
・クラスの宣言
・クラスの実装
・メソッドの宣言
・メソッドの実装
木下誠氏の「Cocoaセミナー初級編」から:
• Apple ADC サイトの日本語 Documentation
* * *
第6回講義:Designing iPhone Applications
第6回講義のテーマは「iPhone アプリのデザイン」。いよいよ本題にはいってきた。
また MVC アーキテクチャ(Model-View-Controller)が如何に大切かという話だ。デザインの要諦の話であり、なぜアップルのデザインがいいのかという話でもある。
その理由が大変おもしろいと思った。
理由の1:スパゲッティコードを避けて、分りやすく、維持しやすいものとする。
理由の2:コードの再利用(reusability)を可能にする。
このデザイン哲学が、そうしなければならないというものではなく、そうした方が一番うまくいく(best practices)というところに、実践的プログラミング重視のアップルを見るようで大変興味深い。
ひいては、独自のコードはよくない(Don’t reinvent the wheel)、楽するコーディングがいい(Cocoa tends to embrace a lazy philosophy)、コードは少なければ少ないほどいい(write less code)ということにもつながってくる。
* * *
つづいて講義は、MVC の考え方に基づいてオブジェクト同士をどう関連づけるかという話。(20 分ごろから)
iPhone のコントロールに欠かせない Navigation Bar と Tab Bar を念頭におきながら、如何に View や Model を構成するかという説明とデモが続く。
デモでは、Interface Builder による View Controller の作成、データのロードおよび保存、画面の回転などの例が取り上げられるが、いずれも宿題の「Presence」の準備になっている。
* * *
宿題「Presence」
シラバスによれば Presence はつぎのようなものだ。
次週から4週間にわたって iPhone アプリを作成する。オンラインでリスト上の友人のステータスを見るソフトで、「presence」という名でも知られているもの。
Over the next four weeks, we’ll be building an iPhone application for viewing online status updates, also known as “presence”, for a list of friends.
* * *
第7回講義:Navigation Controller
盛り沢山だった前回のつづき。今回も同じく盛り沢山でデモがいっぱい。
・スタックという考え方
・Push と Pop
・アプリケーションのデータ処理
・ボタンのカスタマイズ
この辺になると筆者の理解力を超える。
たくさん出てくる神業のような流れのデモをただ呆然と眺めるのみ・・・
印象的なのは、Xcode pop-up からメソッドを呼び出すだけでコーディングできるところ。ひとつひとつコードを手入力するのよりはるかに簡単だ。使いこなせれば強力な武器になるのがよく分る。
次からつぎへコードを積み重ねていくので、途中からついていくというわけにはいかない。いよいよ本格的になってきたか。
宿題の課題とはいえ、ここまでくるとプロ級プログラマーの域なのではないか。プロの開発者の方なら得るところ大きいのではないかと思ったり・・・
* * *
改めて講義というものについて考えさせられた。
たとえば、スタンフォードの講義を参考にして教科書や参考書を作るのなら、講義のビデオやスライドを見るだけでいいだろう。
しかし、講義の主眼が iPhone アプリを実際に作れる能力を付けさせることだとしたら・・・
本当にマスターする気なら、講義ビデオを見るだけでは不十分で、宿題をこなして実際にコードを入力してみるとが必須だろう。
そういうことなら、講義と平行して存在するもうひとつの世界、すなわち宿題の世界、プログラミングのデモの世界が見えてくる。
宿題を自力でこなした上で、講義ビデオのデモを繰り返し見て理解する。ビデオをマネることによってどうしても出来なかったところをみつけるのだ。
こうなると講義ビデオを見るだけで精一杯の筆者にはなかなか手が届かない。
どうやら限界に近づいてきたか・・・
* * *
[参考]
コース概要とスライドおよびビデオ:
• iPhone Application Programming Course (CS 193P)
講義ビデオ:
講義ビデオはダウンロードしてから見る方が、途中途切れたりすることなく見やすい。講義ビデオは上のシラバス(CS 193P)から直接アクセスできる。
木下誠氏の「Cocoaセミナー初級編」:
• Apple ADC サイトの日本語 Documentation
* * *
同時進行でみるスタンフォード iPhone プログラミング
[つぎの講義]:第8回・第9回
[これまでの講義]
Technorati Tags: Cocoa, iPhone, iTunes U, Programming, Stanford, 木下誠
コメントを残す