Feeds:
投稿
コメント

Posts Tagged ‘iTunes U’

Alan

講義もいよいよ3週目だ。まず第3週前半の講義について。(後半の講義は5日も経つのに、どういうわけか今日現在未だビデオが公開されていない。)

ところでなんと、今回は講義がおおよそ分ってしまった!

アプリケーション作成という具体的なテーマであることが理由のひとつ。

それだけではない。ツールや Objective-C の知識がほんのちょっとあるだけで、かくも違うものか・・・

木下氏の「Cocoaセミナー初級編」の霊験実にあらたかだ。

     *     *     *

第4回講義:HelloPoly

アプリケーションを構成するもの:
Anatomy

アプリケーションとは単一のファイルではない。Code、Nib ファイル、Resource、Info.plist などのファイルの集合体(bundle)だ。

Nib File

Nib ファイルには UI のパーツのレイアウトが含まれているほか、UI とコントローラをつなぐのにも用いられる。

     *     *     *

デザインパターン:

Cocoa アプリケーションの開発を考える上で欠かすことのできない考え方、すなわちデザインパターン(MVC アーキテクチャ)について理解する。プログラミングに関する Smalltalk 以来の基本的考え方だ。(20 分ごろから)

Mvc Architect

来たぞ、きた、キターッ!木下氏の教材で学んだことが出てきた!

Outlet Action

View すなわちボタン・テキストフィールドなどのユーザーインターフェイス(UI)と、Model すなわちアプリケーションのデータ部分とを、Controller でつないで制御する。

Target Action

Interface Builder 上でコントロールキーを押しながらドラッグして文字通りつないでいく。

     *     *     *

HelloPoly のデモ:

今回の講義のメインは、宿題にもなっている「HelloPoly」だ。

多角形(octagon)の角数が、Increase ボタンを押すことによって増え、Decrease ボタンで減るアプリケーション。

Hellopoly

直感的なアプリケーションなので、細かい部分はともかく、プログラミング作業の全体の流れはよく分る。

UI からデータを受け取るか(Outlet)、UI の操作をするか(Action)で、つなぐ方向が異なってくる。

Mvc Hellopoly

文字通り Interface Builder 上でつなぐ作業で、直感的で分かり易い。

Connect

どちらからどちらへつなぐのか、いいかえればデータを受け取るのか(Outlet)、それとも操作をさせるのか(Action)という点の理解が大変重要なのだろう。この点はあとで要復習だ。

     *     *     *

Objective-C の文法や細かいコーディングの話はまだまだ難しいが、今何について講義しているのかというところだけは分ってきたような気がする。

理論と実践の間を行き来することによって、分る範囲も少しずつ広がっていくのだろう。

無知なシロウトの悲しさで、ついつい楽して分る方法はないかと考えてしまう。しかしある程度の基本についてはかじりついてでもやる必要があるということなのだろう。

その意味で木下氏の「Cocoaセミナー初級編」との出会いは実に幸運であった。

その木下氏は、逃げないでちゃんと正面から取り組めと次のように諭(さと)している。

     *     *     *

逃げずに取り組む

AppBank:木下さんはセミナーや講演も多くまた、開発者向けの本も書かれています。その中で開発者の人に対して感じることやメッセージがあれば教えていただきたいです。

[木下誠氏]:プラットフォームを理解してもらいたい。iPhoneアプリ開発において、たまに聞かれる質問や話題として盛り上がるものとして「別の言語でiPhoneアプリ作れますよね。」「Javaで作れますか?」というものがあります。Objective-C、Cocoa Touch、これらのシステムを支える仕組みの理解を放棄しています。自分が取り組むプラットフォームなのだから逃げないで正面から理解してほしい。サービスの利用者のことを考えたらプラットフォームに対して最適なことをするのが当然かと思います。

AppBank: “HMDT木下誠氏インタビュー。アプリケーション開発とデザイン。そして、知への探究心。“: 10 April 2009

     *     *     *

[追記]講義情報について

iPhone Application Programming Course (CS 193P)

講義出席に必要な情報はすべて「CS193P – Cocoa Programming | Announcements」から得られる。ここには最新の情報が載るので、講義出席者はこれを見落としてはならない。

講義ビデオもここからアクセスできる。例えば第4回講義の場合、Lecture 4 の「Download this lecture from iTunes U」をクリックすると直接講義ビデオに飛べる。

4月13日におこなわれた第4回講義の概要はつぎのとおり。

月曜日の講義は、iPhone アプリの構造、モデル・ビュー・コントローラ(iPhone アプリの中核をなすもの)、Interface Builder の nib ファイル、およびコントロールとターゲット・アクションの設計などをカバーする。

Monday’s lecture covered the anatomy of an iPhone application, Model, View, Controller (which is central to all iPhone applications), Interface Builder nib files and an introduction to controls and the target-action design.

宿題3(4月21日火曜日締切り)のダウンロード可。Hello Poly アプリケーションの第2部にあたる。

Assignment 3, due Tuesday April 21, is now available for download. This is the second part of the Hello Poly application.

Apple ADC サイトの日本語 Documentation

木下誠氏の「Cocoaセミナー初級編」ほか、日本語の優れた教材や情報が沢山ある。

     *     *     *

同時進行でみるスタンフォード iPhone プログラミング

[つぎの講義]第5回・第6回・第7回

[これまでの講義]

第3回講義:メモリー管理
第2回講義:Objective-C
第1回開講

Technorati Tags: , , , , ,

Read Full Post »

Alan Cannistraro

[Alan Cannistraro]

これから毎週2回の講義だ。それが10週間続く。結局講義の回数、すなわちビデオの本数は倍ということになる。講義ビデオを見るだけでも大変だ。

     *     *     *

第2回講義:Objective-C

第2回目は Alan Cannistraro が講師で、Objective-C と Foundation framework の話。

まず、OOP(オブジェクト指向プログラミング)の用語を列挙(10分ごろから)、続いて Objective-C の概要(17分ごろから)、Foundation framework の説明(57分ごろから)となる。

Oop Voc

これがコトバによる解説だけなので、初心者にはさっぱり実感が湧かない。

Class Instance

図らしきものはこれだけで、あとはコトバによる説明だけ。

OOP の基礎概念である Class、Instance、Method からして、初心者には聞き慣れぬ用語の羅列なので初めからひっかかってしまう。

説明の仕方も「言い換え」が主だ。Class とは設計図(blue-print)のこと、それによって作られたものが(product)が Instance、Method とはコードのこと(code)などと繰り返し言い換える。その都度頭の中でコトバを置き換えてイメージするのだがこれがなかなか・・

「泳ぐ」といえば済むところを「水中で手足の筋肉を稼働させる」といっているみたいな感じだ。

最後の方は時間が押して駆け足状態で、終わったときは呆然としている筆者だけが取り残されていた。

     *     *     *

第3回講義:メモリー管理

第3回目の講義は少し具体的(?)だ。まず Class の説明から。ついで Object Lifecycle の話が 20 分ごろから。Objective-C Properties の話が 60 分ごろから。

Method Review

まず、復習を兼ねて設計図である Class をもう少し詳しく説明。

Defining A Class

これが .h ファイルや .m ファイルにつながることになる。

     *     *     *

Memory Management

今回のメインは Object Lifecycle だ。C と比較しながら Object-C におけるメモリー管理の重要性についてについてたっぷり時間をかける。

Autorelease

やっかいなメモリー管理を autorelease がいかにうまくやってくれるかということらしい・・・

まだよく分らないが、メモリー空間の大きいマックと比べて、低スペックな iPhone ではメモリーの処理がいかに重要かということなのだろう・・・

     *     *     *

Calling Your Method

ところで、上のような method = code の説明がどんどん出てくる。こちらにとっては暗号みたいなコードの羅列だがそれを講師は実にスラスラと説明していく。というか、頭から英語で読み下していく。

プログラミングとはつまるところ「英語」なのだなあと妙なところで感心する。英語を母国語とする人間にとっては暗号の羅列がそのまま英語の文章に見えるのだろうか。

しかしまあ、これで Object-C やメモリー管理を学習したということになるのではとてもたまったものじゃない。

     *     *     *

講義ビデオさえ見ればプログラミングツールの使い方や Object-C のことが分ると考えた筆者が甘かった。

なんとかしないとこのままでは今回でギブアップということになる。

予習をして、宿題をやって、それから復習して、それでやっと授業についていけた学生時代のことを思い出した。

当時も成績どころではなかった・・・

     *     *     *

すばらしい教材

これではならじと、せっぱ詰ってあちこち探していたら、すばらしい教材を見つけた。

木下誠氏の「Cocoaセミナー初級編」。アップルのセミナーで使われた教材がアップル ADC サイトの日本語 Documentation から入手できる。

藁にもすがる思いで初級編をダウンロードした。

スライドとそれをテキストにしたものがあって、これが実に素晴らしい。

Mac でのプログラミング(iPhone ではないが)について理解するためのすばらしい教材となっている。

     *     *     *

Cocoa Design Patterns

Cocoa とは木下氏によれば Mac OS X が搭載するソフトウェアコンポーネントのこと。「マックらしい」ソフトが可能になるのは Cocoa のお蔭だ。

まず最初に、Cocoa でのプログラミング(すなわちマックでのプログラミング)の全体的流れを掴む。これが「Cocoa Design Patterns」[Cocoa プログラミングの型紙]と呼ばれるもの。

Mvc

その中心的概念が Model、View、Controller という「MVC アーキテクチャ」。

ボタン、テキストフィールドなど画面に表示されるユーザーインターフェイス(UI)が View。そしてアプリケーションのデータ部分が Model。この二つをつなぐのが Controller で、制御を行なう部分ということになる。

アプリケーション開発は、このコントローラ(Controllerが中心になる。

Controller

UI からデータを受け取る(Outlet)か、UI の操作を行なう(Action)か、その方向の違いがのちのち大変重要になる。

     *     *     *

クラスとインスタンスとメソッド

そしてオブジェクト指向プログラミング(OOP)の中心概念である Class、Instance、Method の説明がくる。

プログラミングで出来上がる製品(product)が Instance であり、そのための設計図(blueprint)が Class、実際の処理を行なう部分すなわちコード(code)が Method というわけだ。

木下氏の解説が大変優れているのは、まず全体像を掴ませるところから始めている点だ。今どこにいるのか、これからどこへ行こうとしているのか、初心者が自分の現在位置を確かめられるのはありがたい。

     *     *     *

Hello World プログラミングの実際

その上で、具体的なプログラミングの作業が始まる。

「Cocoa セミナー初級編」の前半は「Hello World」、後半は「電卓アプリケーション」という Cocoa アプリケーションの作成にあてられる。

Hello World

木下氏の「Hello World」はちょっと凝っていて、ボタンを押すと、Hello World というテキストが表示される仕掛けになっている。

ひとまず「Hello World」の 10 ページ余を一生懸命読んだ。

ひとつひとつステップが順次示されるので、それに付いていくだけでツール(Xcode/Interface Builder)や Objective-C の書き方が分る。

Outlet

Xcode と Interface Builder を使ってパーツを作っていくが、説明は最小限に絞られているので、初めてのシロウトにも読み進むのが苦にならない。

     *     *     *

Objective-C はそのあとで

そして Hello World が出来上がったあとに Objective-C の説明がくる。

角括弧

まず実際に作ってみて、必要な理屈はあとから学習するというわけ。それを 10 ページ余に収めてしまった木下氏の手腕は大したものだ。

プログラミングというとまず Objective-C(あるいはその基となっている C)を勉強しなければならないと思い込んでしまい勝ちだが、やみくもに厚い Objective-C(あるいは C)の解説書にとりついたところで、富士の樹海に身を沈めてしまう結果になるのは目に見えている。

     *     *     *

簡単なサンプルプログラムを作ってみて、それに必要な範囲で Objective-C を説明する。シロウトの初心者にも理解できるそんなすばらしい教材を作ってくださった木下誠氏には心から感謝したい。

これまでエイリアンのコトバのように思えていた Objective-C の姿が少しずつ見えてくるような気がする。

スタンフォードの講義にもう一度チャレンジしてみようという元気も出てくる。

今回はスタンフォードの講義というより、「Cocoaセミナー初級編」の感想みたいになってしまったが、闇に道を失いかけていた筆者に一筋の光明を与えてくださった木下氏には心から感謝したい。

     *     *     *

[参考]

講義ビデオ:

Stanford on iTunes U

コース概要とスライド:

iPhone Application Programming Course (CS 193P)

木下誠氏の「Cocoaセミナー初級編」:

Apple ADC サイトの日本語 Documentation

木下誠氏インタビュー:

• AppBank: “木下誠氏インタビュー。HMDTiPhoneアプリ開発とビジネス。“: 10 April 2009
• AppBank: “HMDT木下誠氏インタビュー。アプリケーション開発とデザイン。そして、知への探究心。“: 10 April 2009

     *     *     *

同時進行でみるスタンフォード iPhone プログラミング

[つぎの講義]第4回

[前回の講義]第1回開講

Technorati Tags: , , , , ,

Read Full Post »

Stanford Lecture01

スタンフォード大の iPhone プログラミング講座のビデオが公開されるというので矢も楯もたまらず飛びついた。

無謀なことは分っている。

当方にはプログラミングの知識も経験もまったくない。まるでムチャな話だ。

ムチャを承知で、とにかく付いていけるところまで行ってみようと思う。

まったくのシロウトが覗いてみた名門大学の授業の印象・・・

     *     *     *

学生みたいに若い講師

とにかく講師が若い。Evan Doll と Alan Cannistraro というアップルの現役社員だ。[冒頭画像参照]

講師の経歴はつぎのとおり:

Evan Doll:
Evan
はスタンフォード大コンピュータサイエンスコースの卒業生。アップル歴5年。Final CutAperture など Pro Apps の仕事を経て、iPhone team for version 1.0 に参加、以後のリリースに携わる。各種 iPhone アプリおよび UIKit framework view controller classes の仕事を担当。

Evan is a Stanford CS alum and has been working at Apple for five years. After a stint in Pro Apps which included work on Final Cut and Aperture, he joined the iPhone team for version 1.0 and every release thereafter. His responsibilities include a variety of iPhone applications as well as the view controller classes in the UIKit framework.

Alan Cannistraro:
Alan
のアップル歴は9年。デザイナーやアプリ開発者の仕事に交互に従事。音楽やビデオを好み、Final Cut ProiPod などの製品開発に携わる。最近では iPhone/iPod touch iTunes Remote アプリの仕事。

Alan has worked at Apple for the last nine years, bouncing back and forth between roles as a designer and an application developer. His fondness for music and video has led him to work on several different products, including Final Cut Pro, iPod, and most recently the iTunes Remote app for the iPhone and iPod touch.

現に iPhone 開発を担当しているアップル社員から直接授業が聞けるなんて、さすがアップルのお膝元にある大学だけのことはある。これぞまさにドリームチームだ。

     *     *     *

コース概要

シラバス[Syllabus:講義概要]によれば、講義は毎週1回、1学期で10回のコース。第2週からは月、水各1時間15分の授業になる。

コース概要:
CS193P コースの目的は、iPhone/iPod touch のための object-oriented アプリケーション開発を習得させること。Mac OS X の Cocoa Touch framework を使用、開発言語は Objective-C。使用 OS は Mac OS X 10.5(Leopard)。

Course Overview
The goal of CS193P is to teach you how to write object-oriented applications for iPhone and iPod touch, using the Cocoa Touch framework on Mac OS X.  The language we will be using is Objective-C.  We will be using Mac OS X 10.5 (aka Leopard).

     *     *     *

第1回講義
Cs193P

第1回目[4月1日]の講義は Mac OS X、Cocoa Touch、Objective-C、Dev Tools の入門だ。

オリエンテーション的な話が終わって具体的講義内容に入るのはおおむね 20 分頃から。

・Mac OS X と iPhone OS の違い
Macvsiphone

・Cocoa Touch のアーキテクチャ
Cocoa Touch

・プログラミングツール
Programming Tools

授業で使ったこれらのスライドはこちらから入手できる。

     *     *     *

プログラミングの実際(デモ)

Slider Demo

Cocoa Touch や Objective-C についてスライドでざっと見たあとは直ちにデモに突入。(50  分あたりから)

iPhone の画面上にスライダーを作るデモだ。1回目はうまくいかずクラッシュしてしまう。Xcode とInterface Builder の間を目まぐるしく動き、必要な訂正を加える。

プログラミングツールの使い方の説明があるのかと思ったらとんでもない。

どうやらビデオを見ているだけでツールの使い方や Objective-C 言語の概要が分かるというものではなさそうだ・・・

     *     *     *

講義を受ける前提条件

このコースを受けるための前提条件(Prerequisitesを改めて振り返ってみる。

前提条件:
事前に CS106B あるいは CS106X を履修していること。object-oriented programming の経験があれば役に立つがどうしてもというわけではない。Objective-C はやさしい言語なのですぐ学べる。Cocoa Touch frameworks は Mac OS X Cocoa frameworks をベースにしている。Mac OS X Cocoa frameworks は成熟したフレームワークで、現実の object-oriented applications のためのすばらしい開発環境となっている。しかし心配は無用。C 言語の基礎を知っていればそれで十分だ。ポインター、アレイ、メモリーアロケーションといった C の構成要素や C プログラムのデバッギングについてはすでに馴染んでいるはずだからだ。

Prerequisites
Students should have completed either CS106B or CS106X.  Previous experience with object-oriented programming will be helpful but not strictly required.  Obj-C is a simple language that’s easy to learn. The Cocoa Touch frameworks are based on the Mac OS X Cocoa frameworks which
are mature and provide a wonderful environment for developing real-world object-oriented applications.  Don’t be afraid!  If you’re comfortable with C, you’ll be fine.  You should be familiar with C constructs such as pointers, arrays, memory allocations and debugging C programs.

オヤオヤこれはとんでもないことになった。

このビデオを見たらツールや言語の知識が付くのかと思ったら、そうではなくてツールや言語の知識は前提だという。 C の基礎知識があること(you’re comfortable with C)といわれては、もうその時点で脱落だ。ハードルはとても高そう・・・

     *     *     *

いかにもアメリカの大学らしいと思う。

山ほど出されるアサインメント(宿題)をこなしていかなければ授業に出席することすらかなわない。

ましてやスタンフォードという名門大学、しかもコンピュータサイエンスのコースで、限られた数の学生しか出席できないクラスだ。

生半可なことでは付いていけないのも当然だろう。

     *     *     *

宿題が中心

早速次の週までに提出せよという宿題が出ている。

そのひとつは次のようなものだ:

宿題:
この宿題にはコーディングは必要ない。授業で使うツールに馴染ませることが目的。Xcode と Interface Builder を使って簡単なユーザーインターフェイスを構築する。

Assignment
This assignment requires no coding.  It is intended to get you situated with the tools we’ll be using in the class.  You will use Xcode to create a project and Interface Builder to construct a very simple user interface.

ハロー・スタンフォード
Xcode でプロジェクトをビルドし、シミュレータで動かしてみること。出来上がったインターフェイスは下図のようなものであること。

Hello Stanford
In Xcode, build and run your project in the simulator.  Your interface should look something like the following:

Hello Stanford

Hello World の作り方の説明から始まるのかと思っていたら、それは宿題にすぎず、宿題をこなすだけの知識が期待されているということらしい。

     *     *     *

これともうひとつの宿題をこなして初めて次の講義に進めるというわけだ。

毎回ビデオを漫然と見ているだけでプログラミングが出来るなんてそんな甘いものではなさそうだ。

果たして次回のビデオに付いていけるだろうか・・・

     *     *     *

同時進行でみるスタンフォード iPhone プログラミング

[つぎの講義]第2回・第3回

Technorati Tags: , , ,

Read Full Post »

« Newer Posts