Feeds:
投稿
コメント

Posts Tagged ‘Stanford’

stanford_swift

[Developing iOS 8 Apps with Swift by Stanford:iTunes U

恒例のスタンフォード大 iOS コース。

今年のウリは発表されたばかりの Swift だ。

工学部の Paul Hegarty 教授によるコースがさっそく iTunes U で無料公開されている。

Developing iOS 8 Apps with Swift – Download Free Content from Stanford | iTunes

始まったばかりで、最初の2講義(各1時間)がビデオとスライド付きでアップロードされている。

新しいプログラミング言語で iPhone や iPad のアプリを作ろうというひとには見逃せないチャンス!

それにしても名門スタンフォード大の人気コースが世界のどこからでもタダで受講できるのだからじつに素晴らしいご時世になったものだ。

各国語のつぶやきを見ても、世界各地の期待と興奮が伝わって来るようだ・・・

広告

Read Full Post »


[スタンフォード大 AI コース:image

スタンフォード大の iPhone プログラミングコースは有名だ。

この秋には AI[artificial intelligence:人工知能]を含む3つのオンラインコースが新設される。

John Markoff[NY タイムズ]によれば、世界中から受講申し込みが殺到しているらしい。

NYTimes.com: “Virtual and Artificial, but 58,000 Want Course” by John Markoff: 15 August 2011

     *     *     *

人工知能のオンラインコース新設

人工知能[AI:artificial intelligence]に関するオンラインコースがこの秋からスタンフォード大で無料公開される。講師はシリコンバレーの有名な2人の専門家。このコースに世界中から5万 8000 人の学生が殺到した。スタンフォード大の学生数の4倍にもなる数だ。

PALO ALTO, Calif. — A free online course at Stanford University on artificial intelligence, to be taught this fall by two leading experts from Silicon Valley, has attracted more than 58,000 students around the globe — a class nearly four times the size of Stanford’s entire student body.

人口知能のコースはスタンフォード大のコンピュータサイエンス学部が試験的に提供する3つのコースのひとつだ。エリート大学の知識と技術を世界へ広めることがその目的だ。コースの発表は火曜日に行なわれた。

The course is one of three being offered experimentally by the Stanford computer science department to extend technology knowledge and skills beyond this elite campus to the entire world, the university is announcing on Tuesday.

     *     *     *

高校生から退職者まで

人工知能のコースを取る学生には線形代数や確率論など高等数学の知識が必要だが、オンラインコースの学生にはその制約はない。今のところ希望者は高校生から退職者まで広がっており、175 か国以上のひとが関心を示している。

For the artificial intelligence course, students may need some higher math, like linear algebra and probability theory, but there are no restrictions to online participation. So far, the age range is from high school to retirees, and the course has attracted interest from more than 175 countries.

     *     *     *


[左から Peter Norvig と Sebastian Thrun:photo

世界的な専門家が講師

講師は世界的に有名な人工知能の専門家 Sebastian Thrun および Peter Norvig の2人だ。Thrun 博士は 2005 年にスタンフォード大生や教授を率いてロボットカーの製作を行なった。カリフォルニア砂漠で未舗装の道を 132 マイル走らせようというペンタゴンがスポンサーのプロジェクトに挑戦した。最近ではグーグルの秘密プロジェクト、カリフォルニアの公道を10万マイル以上走行する自律走行車の開発にも携わった。

The instructors are Sebastian Thrun and Peter Norvig, two of the world’s best-known artificial intelligence experts. In 2005 Dr. Thrun led a team of Stanford students and professors in building a robotic car that won a Pentagon-sponsored challenge by driving 132 miles over unpaved roads in a California desert. More recently he has led a secret Google project to develop autonomous vehicles that have driven more than 100,000 miles on California public roads.

Norvig 博士は元 NASA の科学者。今はグーグルの研究開発担当で、人工知能に関する代表的教科書の著者でもある。

Dr. Norvig is a former NASA scientist who is now Google’s director of research and the author of a leading textbook on artificial intelligence.

     *     *     *

当初は集まらなかった受講者

なぜたくさんの受講者が人工知能のクラスに殺到したのか分からないと2人のコンピュータ学者はいう。Thrun 博士はこの夏スペインで開かれた学会でチラシを配って宣伝したが、たった 80 人の登録者しか得られなかった。

The computer scientists said they were uncertain about why the A.I. class had drawn such a large audience. Dr. Thrun said he had tried to advertise the course this summer by distributing notices at an academic conference in Spain, but had gotten only 80 registrants.

数週間のち、人口知能向上協会の専務理事 Carol Hamilton にEメールで知らせた。それを彼女があちこち転送してくれたおかげで、知らせはウイルスのように広まった。

Then, several weeks ago he e-mailed an announcement to Carol Hamilton, the executive director of the Association for the Advancement of Artificial Intelligence. She forwarded the e-mail widely, and the announcement spread virally.

     *     *     *

世界に知らしめる

高い授業料をとっているスタンフォード大のコースを無料で提供すれば、大学にとって害があるのではないかという議論もあったらしい。Thrun 博士はその考えを一蹴した。

There has also been some discussion at Stanford about whether making the courses freely available would prove to be a threat to the university, which charges high fees for tuition. Dr. Thrun dismissed that idea.

「世界にスタンフォードを知らしめることの方が興味がある。開発途上国は途方もないほど教育を必要としているのだ」と彼はいう。

“I’m much more interested in bringing Stanford to the world,” he said. “I see the developing world having colossal educational needs.”

     *     *     *

がらりと変わったオンライン環境

MIT のコンピュータ学者 Hal Abelson は、2002 年に始まった教育教材を公開する初期の開発を支援した。スタンフォード大のコースを見ると、オンライン世界がいかに急速に変化してきたか分かるという。

Hal Abelson, a computer scientist at M.I.T. who helped develop an earlier generation of educational offerings that began in 2002, said the Stanford course showed how rapidly the online world was evolving.

「大学のコースを公開するのは10年前は大変危険な考えで、皆とても慎重だった」と彼はいう。「今やどうやって双方向的[interactive]で、共同学習的なもの[collaborative]にするかということが問題なのだ。この4〜5年の間に様々なモデルが輩出するだろう。」

“The idea that you could put up open content at all was risky 10 years ago, and we decided to be very conservative,” he said. “Now the question is how do you move into something that is more interactive and collaborative, and we will see lots and lots of models over the next four or five years.”

     *     *     *

以上のほかにも、「今は手の届かないところに教育を広めることで世界を変える」という Salman Khan のビジョンに啓発された話や、5万 8000 人もの学生にどうやって点数をつけるかなど、John Markoff の記事は興味深い話でいっぱいだ。

先にスタンフォード大の iPhone プログラミングコースを聴講したとき、アジア、特に中国人学生の活躍ぶりに強い印象を受けた。(日本人学生の姿が見えなかったことは残念だが・・・)

強い意志と英語さえあれば、インターネットには国境がないことをつくづく痛感させられたものだ。

米国の有名大学はぞくぞくと看板講座の無料公開に踏み切っている。iTunes U を見るだけでその盛況ぶりが窺える。

英語さえ分かれば誰にでも開かれた世界がそこにある。

国境や貧富に捕われずここから飛び出していく未来の若者たちはどんな活躍を見せるのだろうか・・・

日本の大学のコースが非常に少ないのがさびしい。

日本では教育までが一部エスタブリッシュメントに限られているのでなければいいが・・・

★ →[原文を見る:Original Text

Read Full Post »

Feross_Aboukhadijeh.jpg

Feross Aboukhadijeh

スタンフォード大3年生の Feross Aboukhadijeh はたった3時間プログラムを書いただけでインターネットの有名人になってしまった

彼の作った YouTube Instant がどんなものか、こちらのサイトで試すことができる。

最初 Twitter で友人に知らせ、Y Combinator の Hacker News に載せたのが始まりだった。

AllThingsD[Peter Kafka]がさっそく彼をメールインタビューしている。

AllThingsD: “‘YouTube Instant’ Dude Can’t Go to Work for Chad Hurley, Because He’s Already Working For Mark Zuckerberg” by Peter Kafka: 11 September 2010

     *     *     *

Peter Kafka:すばらしいサイトだ。どこからヒントを得たの?

Peter Kafka: Great site. What’s the inspiration?

Feross Aboukhadijeh:Google Instant の話を聞いてやってみようと思ったんだ。YouTube ビデオのインスタントサーチが出来たらクールだろうなあって。ルームメイトが1時間じゃ出来まいって賭けたんだ。結局3時間かかって、賭けには負けたけど・・・

Feross Aboukhadijeh: I decided to do this after hearing about Google Instant. I thought that instant search for YouTube videos would be really cool. My roommate bet me that I couldn’t code it up in an hour. It ended up taking 3 hours, so he won the bet.

     *     *     *

Kafka:YouTube Instant の目的は?

Kafka: What’s the goal here?

Aboukhadijeh:思いがけないビデオを見つけるには YouTube Instant がオモシロいと思うんだ。Google Instant と違って検索すべき内容がハッキリ分かっている場合はあまり役に立たないかもしれないけど。最終的なビデオが見つかるまで、あまり関係ないものも混じってくるから。でもよろこんでくれるインターネットユーザーはたくさんいると思うよ。:)

Aboukhadijeh: I think YouTube Instant makes sense if you’re looking for a serendipitous video browsing experience. It’s not as useful as Google Instant if you know exactly what you’re looking for, since you’re shown distracting YouTube videos on the way to your destination. But I think this is perfect for many Internet users. 🙂

     *     *     *

Kafka:スタンフォードでは何を専攻しているの?

Kafka: What are you specializing in at Stanford?

Aboukhadijeh:コンピュータサイエンス専攻で3年生だ。インターネット技術、ウェブサイト構築、コンピュータセキュリティに関心を持っている。皆をよろこばせるものを作るのが大好きだ。YouTube Instant みたいなものをね・・・

Aboukhadijeh: I’m a Junior in the Stanford CS program. I’m interested in Internet technology, building websites, and computer security. I really enjoy building products that entertain and delight people, like YouTube Instant.

     *     *     *

Kafka:他にはどんなことをやってるの?

Kafka: Besides this, what’s your favorite project you’ve worked on?

Aboukhadijeh:夏の間 Facebook でソフトウェアエンジニアのアルバイトをやっている。今とてもクールなものを作ってる。もうすぐリリースされる予定だ。トップシークレットだから詳しいことはいえないけど・・・:)

Aboukhadijeh: I’ve been working at Facebook as an software engineer intern for the summer. Right now, we’re building something really cool that’s going to be released soon, but I can’t share any details because it’s top secret! 🙂

     *     *     *

Kafka:YouTube API を利用したの? 反応はどう?

Kafka: I’m assuming you used the YouTube API to build this, correct? Any reaction from them so far?

Aboukhadijeh:YouTube API と YouTube 検索提案を利用して YouTube Instant を作った。グーグルからは今のところ何の反応もない。でも気に入ってくれると思うよ。YouTube CEO はとても気に入って、Twitter で仕事のオファーをくれた

始めは問題がいくつかあった。あまりたくさんのリクエストを繰り返すのでグーグルが自動的にボクのサーバをブロックしてしまうのだ。そこで YouTube に直接検索要求を出すよう Javascript を使ってクライアント側を書き直したんだ。すべてのマジックはユーザーのブラウザ内で起きているということになる。だから早いし、グーグルもブロックできないのさ。

Aboukhadijeh: I built YouTube Instant using a combination of the YouTube API and scraping YouTube search suggestions. No reaction from Google so far, but I think they’ll probably get a kick out of it. The YouTube CEO actually offered me a job on Twitter, he liked it so much.

I initially ran into some issues when Google automatically blocked my server for making too many repeated requests, but I just rewrote the site to query YouTube directly using Javascript on the client-side. This means that all the magic happens in each visitor’s browser, so it’s faster and Google can’t block it.

     *     *     *

Kafka:卒業後は何をする計画?

Kafka: What’s the plan after you graduate?

Aboukhadijeh:いつかグーグルみたいな会社を興して、世界をより良く変えるようなことをしてみたい・・・

Aboukhadijeh: One day, I’d like to start a company that becomes the next Google and fundamentally changes the world for the better.

     *     *     *

世の中には優秀で、引く手あまたの人間がいるものだなあ・・・

YouTube Instant に「Steve Jobs」とか「Facebook」とタイプして、どんなビデオが出てくるか試してみるとオモシロい!

★→[原文を見る:AllThingsD Interview

★→[試してみる:YouTube Instant

Read Full Post »

Chad_Hurley.jpg

Google Instant が発表されたばかりだが、早速それを利用したアイデアをスタンフォード大生が出した。

それに目を付けた YouTube の CEO が彼に声をかけた。Twitter で・・・

VentureBeat: “Stanford student creates YouTube Instant, gets job offer from YouTube CEO” by Matthew Lynley: 10 September 2010

     *     *     *

スタンフォード大生のアイデア

スタンフォード大生の Feross Aboukhadijeh は、最近発表されたばかりの Google Instant を利用して、YouTube ビデオのためのリアルタイム検索エンジンを作った。それが YouTube CEO の Chad Hurley の目にとまった。

Stanford student Feross Aboukhadijeh, in a nod to the recent unveiling of Google Instant, has created a real-time search engine for YouTube videos — and it’s caught the attention of YouTube CEO Chad Hurley.

     *     *     *

Twitter で尋ねた

YouTube Instant を目にした Hurley は、そのアイデアが気に入ったこと、彼に仕事をする気があるかどうかを Aboukhadijeh に Twitter で尋ねた。[冒頭画像]

After spotting YouTube Instant, Hurley Tweeted over to Aboukhadijeh, saying he loved the idea and asking if he wanted a job.

     *     *     *

ホンモノの申し出かどうか

Aboukhadijeh[Twitter のハンドル名 FreeTheFeross]はさっそく Hurley に返事を送って、仕事のオファーがホンモノかどうか尋ねた。なにしろインターネットの話だからね・・・。どうやら Hurley は本気のようだった。

Aboukhadijeh, who goes by the Twitter handle FreeTheFeross, sent a message back to find out if Hurley was serious about the offer — because, after all, this is the Internet. It looks like Hurley was, indeed, quite serious.

     *     *     *

YouTube Instant とは

Aboukhadijeh は YouTube Instant を Y Combinator の Hacker News[Digg や Reddit によく似たアグリゲーションサイト]で発表した。YouTube Instant は Google Instant と同じような振る舞いをする検索エンジンだ。探しているビデオ名をタイプすると、即座に反応してビデオを探し出すのだ。

Aboukhadijeh announced the launch of YouTube Instant on Y Combinator’s Hacker News feed, a news aggregation site similar to Digg and Reddit. It behaves much the same way Google Instant does — as a viewer types in the video they are looking for, the engine guesses the video and begins playing it immediately.

     *     *     *

黒字のきっかけとなるか

YouTube は4年前に 16.5 億ドルでグーグルに買収された。今年は黒字に転ずるかもしれないというアナリストもいる。

YouTube, which was acquired by google four years ago for about $1.65 billion, might finally turn profitable this year according to some analyst predictions.

YouTube の確認がとれ次第アップデートする予定。

We’ve reached out for confirmation from YouTube and will update when we hear back.

     *     *     *

いくつかの点でいかにもインターネット時代だなあと思わせる。

1)発表されたばかりの Google Instant を使ったアイデアが即座に登場する

2)会社のトップ[YouTube CEO]が常時ネットの動向をチェックしている

3)トップから相手個人に直接 Tweet が行く

4)ホンモノかどうかを相手に直接確かめる

5)第三者にもネット上の動きが確認できる

それにしても、アイデアが製品化されるスピードには恐るべきものがある・・・

★ →[原文を見る:Original Text


Read Full Post »

Final Presentations-1

     *     *     *

第19回:Final Presentations

19回目はいよいよ最後の講義。3か月の iPhone プログラミングの授業を受けた学生たちがその成果を競う発表会(Final Project Presentations)だ。

28 組の学生たちが成果を競う様子は必見だ。

プレゼンにはいくつかの制限がある。2分以内という枠、講義に使われたのと同じラップトップを使用、事前に学校側の OK をとる、など。

今回は内容の要約はしないので、ぜひともご自分の目で確かめていただきたい。

プロジェクトを製作した学生たちの姿も、画像の一部に表示しておいた。ヒーローたちの晴れ姿だ。

     *     *     *

[発表されたプロジェクト]

1. Basic Vector Program

Basic Vector Prog

2. PING

Ping

3. VocalBeater

Vocalbeater

4. UpQuest

Upquest

5. Friction Circle

Friction Circle

6. Pop Friction

Pop Friction

7. GRAViTAS

Gravitas

8. Scopa!

Scopa

9. Tone-Matrix

Tone Matrix

10. SweetSpot

Sweetspot

11. Tribal Atmosphere

Tribal Atmosphere

12. TodayScreen

Todayscreen

13. Towers

Towers

14. Nemesis

Nemesis

15. Marguerita Tracker

Marguerita Tracker

16. Block Attack

Block Attack

17. Timesheet

Timesheet

18. TodayList

Todaylist

19. SFGate

Sfgate

20. Pirate’s Dice

Prates Dice

21. Motivate

Motivate

22. RockJourney

Rockjourney

23. Musical Magnetic Poetry

Musical Magnetic Poetry

24. Pilcrow

Pilcrow

25. Goapet

Goapet

26. uPoet

Upoetjpg

27. Blackjack Card Counter

Blackjack Card Counter-1

28. inMoustache

Inmoustache

     *     *     *

完成度の高さ

まず驚かされるのは完成度の高さだろう。

技術的な内容までは理解できないが、それでも3か月の講義でここまでくるとは・・・

講義や宿題と平行して自分のプロジェクトをここまで立ち上げられるのはやはりただ者ではない。

ぜひともご自分の目でそれぞれの作品をご覧になっていただきたい。

     *     *     *

プレゼンのおもしろさ

発表作品そのものもだが、アイデアを凝らしたプレゼンがこれまたおもしろい。

2分間という枠をものともせず、みな様々な工夫を凝らす。

15分の内容を2分間に凝縮してみせるプレゼンとしてもこれは一見の価値がある。(世間には逆のケースが多々あるが・・・)

     *     *     *

外国人学生が多い

すぐ気付くことは外国人留学生(?)の活躍かもしれない。

これまで講義ビデオには教室の風景や学生の様子は一度も映らなかった。

アジア系、とくに中国系と思われる顔がたくさん登場する。(残念ながら日本人はいない。)

彼らがソフト開発の最前線に立つとき何が起きるだろうか。

そのとき日本はどこに位置しているのだろうか。

もうすぐ来る未来の姿を垣間みるような気がした。

     *     *     *

Thank You-1

10週間のスタンフォード講義は以上で終わる。

プログラミングのことを一切知らない筆者がなぜ無謀な受講をしようと思ったのか・・・それにはきっかけがあった。

ケータイにも、したがって iPhone にも興味のなかった自分の気持ちが動いたのは iPhone 3G が発表された 2008 年 WWDC のときだった。

新しいプラットフォームの予感が自分を突き動かしたのだと思う。

もっと知りたい。何がマックと違うのか、何がマックと同じなのか・・・

そんな時に出会ったのがスタンフォードの講義だった。

しかしすぐ難しさに直面した。次の講義に進めるだろうか、3回戦ボーイで終わるのではないか・・・

いま10週間たって振り返ると、もう一度じっくり見直してみたいという気がしている。

やっとスタートラインに立てた・・・そんな気持ちだ。

ここまで導いてくれたスタンフォードの講義には心から感謝したい。

It’s been a fun quarter… Thank you!

     *     *     *

[講義概要]

iPhone Application Programming Course (CS 193P)

– 講義ビデオもここからアクセスできる
– デモのサンプルコードもこちらから入手できる
– 教材を利用できる期間は限られているので、必要なものはダウンロードしておくといい

     *     *     *

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

[全講義のリスト]

第19回:Final Presentations
第18回講義:Unit Testing ほか
第17回講義:開発のヒント
補講: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: , , , , , ,

Read Full Post »

Ge Wang

[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.

     *     *     *

Laptop Orchestra

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

Joystick Demo

ジョイスティックによるデモ[11 分ごろから]があるが、これがなんともおもしろい。まるでひとの声を操るみたいだ。

     *     *     *

Ge Wang はそもそも iPhone とは何か(What is this, really?)、何をさせられるか(What else can it be?)というところから出発する。

まず、第1の答えが Sonic Lighter だ。

Sonic Lighter

すべての元になったのが、この Sonic Lighter・・・

ゆらめく火を傾けると iPhone の縁をこがす。ほかの iPhone を近づけると火が移る。息を吹きかけると火が消える。

つぎつぎにアイデア(new type of interaction)を加えていくことによって可能性がどんどん広がる。

     *     *     *

Ocarina

第2の答えがオカリナ。

楽器としての Ocarina の可能性、マルチタッチのあらゆる可能性を探る。[21 分ごろから]

Ocarina は発売4日目で App Store のトップに躍り出た。ダウンロードは合計で百万をこえたという。

Ocarina Design

Ocarina のデザインについて語るところが興味深い。[27 分ごろから]

・小さくスタートする(start small)
・形は変えない(preserve physicality)
・技術をひとに合わせる、逆ではない(adapt technology for the human)

そもそも iPhone はどの PC より personal, intimate computer だという発言が繰り返される。

     *     *     *

つぎに着目したのは「community」という視点。[33 分ごろから]

Ocarina World

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

Music Soore

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

Ocarina Contest

オカリナ奏者のコンテストが始まる。World Stage で優勝者を決める。

予期しない利用法がつぎつぎと生まれる。

広がる、広がる! 世界が広がる!

ひとつのことから次の発想が生まれるところがおもしろい。

     *     *     *

これからどこへ?

Where To Go

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

Instrument Side

スピーカーを両手に装着してiPhone を演奏する[39 分ごろから]

     *     *     *

もうひとつは、コミュニティとしての側面を探る。

Leaf Trombone World Stage[45 分ごろから]

world_stage_judge

演奏の上手下手を判定するジャッジが登場する。

     *     *     *

つぎに進むべき方向は?

テクノロジーは絶え間なく変化する。人間性(human nature)はあまり変化しない。テクノロジーと人間性の納まりどころ(sweet spot)を探るのがつぎの方向。

     *     *     *

What Is This

そしてすべては iPhone とは何かという問いに帰着する。(What is this, really?)

iPhone はパーソナルで、ひとと親密で、持ち運びのできるコンピュータだ(personal, intimate, mobile computer)という表現が何度も繰り返されるのが印象的。

デベロッパとは、iPhone にさらに何をさせられるか想像力を駆使する人間だ、と・・・

Developers exercise our imagination what else can it be?

     *     *     *

Thoughts

iPhone プログラミングとは単にコーディング技術ではなく、創造性にあるということをこれほど雄弁に物語るプレゼンテーションはないのではないか。

つぎからつぎへと広がっていくアイデアと創造性こそ、iPhone 開発が目指すべき方向だという指摘は、大きな成功を収めたデベロッパの発言だけに重い。

夢を持ったすばらしいアプリが日本からも世界に羽ばたき、みんなの夢をかき立てることを心から希望したい。

     *     *     *

第18回講義:Unit Testing ほか

Evan Doll

[Evan Doll]

最後の授業は Unit Test や Localization のほか、質問の多かった項目を取り上げる。

     *     *     *

Unit Testing

まずは開発サイクルにテストを組み込むための手段 Unit Test について。プロジェクトに Unit Test を組み込むことによってビルドフェーズでテストが自動化される。

Why Unit Test

Unit Testing が重要な理由。早期にバグをみつけ、バグの数を減らし、袋小路を避け、開発プロセスをすっきりさせることを可能にする。

コーディングの都度、まずテストから書けということらしい。(compiler は syntax をチェックし、unit test は semantics をチェックする?)

Unit Test は重要だが、かかる手間と効果のバランスを比較考量すべき。

Ocunit

Objective-C の Unit Test 用のフレームワークが OCUnit。

Unit Test のデモ[14 分ごろから]

     *     *     *

Objective-C の強力な機能

Inspecting Methods のデモ[26 分ごろから]

Inspecting Methods

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

Method Swizzling

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

     *     *     *

未公開の API を使う危険性

Private Api

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

     *     *     *

Localization

Localizing Resource

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

Two Steps

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

String File Example

     *     *     *

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

Landscape Lauch

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

Launch Steps

Landscape のデモ[55 分ごろから]

     *     *     *

UIKit View のカスタマイズ[58 分ごろから]

     *     *     *

クールなアイコンはどうやって探す?[1 時間 05 分ごろから]

Cool Free Icons

     *     *     *

iPhone アプリが作れればマックのアプリも可能か?[1 時間 07 分ごろから]

Build Mac App

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

     *     *     *

結びのことば

Thank You

第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回目講義がそれにあたる。

それにしても、プログラミングにまったく無知なシロウトがここまで来たのだから感無量・・・

     *     *     *

最後にごく初歩的なアプリを・・・

My Hello World

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

My Hello World2

ま、このぐらいでご容赦願いたい・・・

     *     *     *

[講義概要]

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: , , , , , ,

Read Full Post »

Alan Cannistraro-1

[Alan Cannistraro – Apple]

スタンフォードの講義も第9週目。いよいよ余すところ1週となった。

学生も最後の自由課題に取り組んでいる最中なので、講義の方はこれまで取り残したテーマやゲストスピーカーの話題になっている。

     *     *     *

第16回講義:オーディオ・ビデオ

前週のマルチタッチやデバイス API につづき、iPhone の魅力のひとつであるオーディオやビデオがテーマだ。

     *     *     *

オーディオ

まず Audio だが、単純なビープサウンドから曲のフルプレイバックまで、必要に応じてたくさんの手法がある。

Core Audio

短い音声には System Sound API や AVAudioPlayer class が用いられる。[6 分ごろから]

AVAudioPlayer

この他に複雑なレベルの音声コントロールを行なうために次のようなものがある。[28 分ごろから]

・Audio Toolbox – レコードや再生のフルコントロール
・Audio Units – オーディオ処理
・OpenAL – 3D サウンド

     *     *     *

Audio のデモ

Short Sound Demo

ボタンを押すと様々な音を出すデモ。[20 分ごろから]

     *     *     *

ビデオ

つづいて Video だ。音声の場合と異なり、いつもフルスクリーンのひとつのクラスしかない。MPMoviePlayerController という API がそれだ。[32 分ごろから]

Mpmovieplayercontroller

     *     *     *

Video のデモ

Video Demo

コントロール有/無の再生デモ。[35 分ごろから]

     *     *     *

Web コンテンツの表示

もうひとつのテーマはWeb コンテンツの表示。[43 分ごろから]

Uiwebview

Web コンテンツの表示するために使うクラスが UIWebView、そのためのデリゲートメソッドが UIWebViewDelegate だ。

     *     *     *

UIWebView のデモ

Uiwebview Demo

Web コンテンツを表示するデモ。[48 分ごろから]

     *     *     *

設定(Settings)

最後の話題が設定(Settings)。[55 分ごろから]

Settings Ui

特別に設定画面を作るより、アプリの中に溶け込ませる方がいいということらしいがこのあたりはよく分らない。

     *     *     *

Setting Bundle のデモ[59 分ごろから]

Settings Bundles

     *     *     *

講義スライドではこの後も View Transition、Flipper Example などがあるが、時間がなくて省略。

     *     *     *

補講:OpenGL の最適化

他言語とのブリッジについてはこれまでも取り上げられたが[第9回、第12回]、グラフィックスの高速化に効果的な OpenGL とのブリッジが今回のテーマ。

Tim Omernick

[Tim Omernick – ngmoco:)]

ゲスト講師は ngmoco:) の Tim Omernick だ。

     *     *     *

花火(Firework)のデモ

花火のデモを具体例としながら話を進める。[8 分ごろから]

Firework01

ベースとなるのは OpenGL で描かれた回転する四角。

Firework02

これを次第に細かい小片(particle)にしていくことによって花火らしく見せる。

Firework03

様々なカラーの無数の小片を何度も描くためにスピードが遅くなる。そのため OpenGL を高速化(最適化)する必要が生じる。

     *     *     *

スピードアップさせる最適化はつぎのような方法で行なう。[13 分ごろから]

• Batch Geometry
• Texture Atlases
• Interleaved Arrays
• Indexed Triangles
• Floats vs. Shorts

最適化のデモは 19 分ごろから。

結果は大幅なスピードアップが図られるのだが、このあたりは難しくて理解できないので省略。

     *     *     *

Arsenal

ngmoco:) が開発中のゲーム「arsenal」のデモも見せる。iPhoneでこんなゲームまで出来るのかと興味深い。[24 分ごろから]

最後に 28 分ごろから Q&A があるが、これがなかなかおもしろい。

・今回の花火のデモは2日で作った

・iPhone 3G より iPod touch の方が遥かに早い。シミュレータはマック上で動くので、デバイスの違いを反映させるには不十分。[29 分ごろ]

・iPhone は携帯ゲーム機器(mobile device for gaming)ではない、コンピュータだ。(a lot closer to a computer)[33 分ごろ]

     *     *     *

「同時進行でみるスタンフォード iPhone プログラミング」について

スタンフォードの講義は、シロウトにとっては毎回胸突き八丁の岩場みたいだ。第2回目の講義で、ああ、もうこれはダメだと思った。

2、3日おきに1時間モノのビデオがつぎからつぎへ登場するので、とても咀嚼し、宿題をやるだけの余裕はない。見るだけで精一杯・・・

それでも不思議なもので、なんとなく雰囲気だけは感じられるようになった気がする。

スタンフォードの講義ビデオの素晴らしさは、テーマ毎にプログラミングの実際を実演してみせる「デモ」とよく考えられた「宿題」だろう。

そこで自分の気持ちを切り替えた。

シロウトなのだから一度で分ろうとすまい、あとでもう一度帰ってこよう・・・と。

とりあえず iPhone プログラミングとはどんなものか、まず全体の感じを掴むことに集中しよう・・・と。

あとでもう一度ビデオを見て、デモを復習し、宿題をやってみよう。そのためにどのビデオのどこを見ればいいのか、自分のためのメモを残しておこうというわけ。

スライド教材を挿絵がわりにして、どんなテーマが扱われたか、ビデオの何分ごろにそのデモがあるか・・・そんな自分用のメモが「同時進行でみるスタンフォード iPhone プログラミング」となった。

9週間かけてこの程度というのはなんとも情けないが、まったくのシロウトということでご容赦願うことにしよう。

     *     *     *

Evan Counts

第11回講義の冒頭に印象的な場面があった。[2 分ごろ]

講師の Evan Doll が学生たちに尋ねる。「君たちのうちで App Store にアプリを出したことがあるひとはどれくらいいる?」

手を挙げたのが 3.5 人。40 人ほどのクラスだから1割に近い。スタートの時点ではやくもこうなのだ。世間の 2.5% の壁とは大違いだ。

そんな優秀で経験もある学生を相手にアップル自らが最新の内容を教えるのが CS193P だ。

そもそもオブジェクト指向プログラミングのなんたるかも一切知らないシロウトが付いていける代物ではなかった。

でも、一回だけで分ろうとせず、もう一度帰ってきたら・・・プログラミングそのものに絞ってもう一度やれば・・・なんとか食らいついていけるところはあるのではないか・・・

第9週まで来て、まだそんなことを考えている。

     *     *     *

[講義概要]

iPhone Application Programming Course (CS 193P)

講義ビデオもここからアクセスできる
デモのサンプルコードもこちらから入手できる

     *     *     *

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

[つぎの講義]第17回・第18回

[これまでの講義]

第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: , , , , , ,

Read Full Post »

Steve Demeter

Steve Demeter by Peter DaSilva/New York Times

WWDC でスタンフォードの講義がしばらくお留守になった。

第8週目はマルチタッチコントロールや Device API など iPhone らしい機能を中心とした講義だ。

     *     *     *

第14回講義:マルチタッチコントロール

Steve Demeter2

[Steve Demeter – Demiforce]

前半は Trism で大ヒットした Demiforce の Steve Demeter がゲストスピーカー。ゲーム開発者には見逃せない内容だ。

     *     *     *

5 Control Schemes

一応型通り5つのマルチタッチコントロールについて解説する。[10 分ごろから]

1)Sliders
2)Swivels
3)Direct Touch
4)Face Buttons, Simulated D-Pad
5)Create Your Own!

     *     *     *

Finger Size

タッチする指のサイズを、Trism では 64×64 pixel に決めた話がおもしろい。[8 分ごろから]

     *     *     *

アップルの開発者ページにフィーチャーされた Steve Demeter はこちら

YouTube – Apple WWDC09 Steve Demeter From Demiforce

講義そのものより、開発者にとっては 16 分ごろからの Q&A の方が興味深いのではないかと思う。iPhone をみて機会来れりと思ったこと、WWDC までの限られた日時しかなかったこと、アップルとの協力関係に助けられたことなど、ゲーム開発者が関心を持ちそうな苦労話だ。

     *     *     *

Josh Shaffer

[Josh Shaffer – Apple]

後半はアップルの講師によるマルチタッチのより詳しい講義。Josh Shaffer は UIKit チームのメンバーだ。

     *     *     *

Josh がカバーするのは、マルチタッチのすべての局面。「基本的なことを理解しておけばそれだけ書くコードも少なくてすむ」と彼はいう。これはマルチタッチに関するアップルの考えを知る絶好の機会だろう。

Uiresponder

マルチタッチに関する様々なクラスの全体像は上の図のようになっている。

     *     *     *

UITouch UIEvent[25 分ごろから]

Uievent

     *     *     *

Single Touch のデモ[35 分ごろから]

Single Touch Demo

     *     *     *

Mutiple Touches のデモ[47 分ごろから]

Multiple Touch Demo

指を2本使う場合。(最大5つのタッチまで可能:25 分ごろ)

     *     *     *

Multiple Views のデモ[53 分ごろから]

Multiple Views Demo

同時にタッチした指のどちらを優先するかという問題。

     *     *     *

Hit Testing[59 分ごろから]

Hit Testing

どこに触れたかをチェックする。

     *     *     *

UIControl のデモ[1 時間 04 分ごろから]

Uicontrol Demo

     *     *     *

Josh02

クラス名やメソッドを速射砲のように早口で語るのでなかなか付いていけないが、それでも開発の最前線にいるトップランナーが初心者である受講者に対して丁寧に答える真摯な態度はすばらしいと思う。

     *     *     *

第15回講義:Device API

今回もまたアップルのゲスト講師。ソフトウェアエンジニアの Justin Santamaria だ。

Justin Santamaria

[Justin Santamaria]

iPhone というデバイスに固有の機能を利用する API がテーマ。

Device Hardware と呼ばれるカメラ、位置情報(Core Location)、加速時計(Accelerometer)の3つについて。

     *     *     *

Image Picker

Image Picker

まずカメラという Device Hardware の画像を利用するため、Image Picker Interface について学ぶ。[5  分ごろから]

Image Picker Interface

Image Picker で使用するクラスはつぎのとうり。

UIImagePickerController
UIImagePickerControllerDelegate
UIImagePickerControllerOriginalImage
UIImagePickerControllerCropRect
UIImageWriteToSavedPhotosAlbum

UIImagePickerController について気をつけるべき点:

– ソースが利用できるかを常にチェック
– クリーンアップは delegate メソッドを利用
– メモリーをなるべく食わないように

     *     *     *

Core Location (位置情報)[17 分ごろから]

Core Location

精度に応じて使用可能な位置データがある(Bootstrap、Cross-check、Complement)

Core Location Framework

Core Location のフレームワーク:

CLLocationManager
CLLocation
CLLocationManagerDelegate

常時細かいデータを必要とするわけではないので適宜精度(accuracy level)を選ぶ。

またエラーやデータが取れない場合の対処も必要。

kCLErrorDenied
kCLErrorLocationUnknown

     *     *     *

Accelerometer(加速時計)[37分ごろから]

Accelerometer

向き(orientation)を察知するのに使われる。

向きには2種類ある。デバイスそのものの物理的向き(Physical Orientation)とステイタスバーの向き(Interface Orientation)だ。

Accelerometer Interface

UIDevice
UIApplication
UIViewController
UIAccelerometer
UIAcceleration
UIAccelerometerDelegate

大きな動きを捉えるか(low-pass filter)、小さな動きまで捉えるか(high-pass filter)によってフーリエ変換(Fourier Transform)された Accelerometer のデータをフィルターする。

Filtering Accelerometer Data

     *     *     *

水準器(Bubble Level)によるフィルタリングのデモ[48 分ごろから]

Demo Filtering Accelerometer Data

シミュレータがサポートしないので、Macのカメラで実演。

Bubble Level Demo-1

     *     *     *

バッテリーについて(Power Management[52 分ごろから]

Power Consumption

どんな作業がバッテリーを食うという比較がおもしろい。大きい方から電波(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: , , , , , ,

Read Full Post »

Alex Aybes

[Alex Aybes – Apple]

iPhone 知らず、プログラミング知らずのスタンフォード講義受講も第7週目にはいった。

講義内容はますますプログラミングの実際に合わせたより実践的なものになっていく。

     *     *     *

第12回講義:アドレスブック

講師はゲストスピーカー Alex Aybes。やはりアップルの iPhone ソフトウェアエンジニアだ。[冒頭画像参照]

Evan Alan

[Evan and Alan]

いつもの Evan と Alan は最前列で Alex をフォローする。

     *     *     *

アドレスブック

今回のテーマはアドレスブック。冒頭の「アドレスブックの Hello World」というデモが印象的。

Empty Screen

iPhone のカラッポのスクリーンが、ほんの数行のコードを加えるだけで、本物のアドレスブックが持つすべての UI を利用できるようになる。これはなかなかの圧巻だ。

Edit Phone Screen

たぶんこれが iPhone プログラミングの威力なのだろう。

どのコードがどの UI に対応するものか、デモをじっくり見ながら、加えたり削除したりすれば、たった一行のもたらす威力が実感できるはず。

     *     *     *

ローレベル C API の利用

アドレスブックで個人データを処理し、表示するためには、ローレベルの C API の利用が必須となる。

これらの背後にあるのが CoreFoundation だ。C ベースで書かれたフレームワークで、Objective-C 用のもの。(7分ごろから)

Corefoundation

C と Objective-C をミックスして用いるときに効力を発揮する。C と Objective-C が自由にミックスして使えるため、ローレベルでは純粋 C にすることが可能で、このためオーバーヘッドを減らすことができる。相互乗り入れ自由なことを「無料の高速道路ブリッジ」(Toll-Free Bridging)に例える。

Toll Free Bridging

     *     *     *

ネットワーク上の個人データ:手順

アドレスブックがもっと威力を発揮するのは、ネットワーク上の個人データを読み込むときだ。

Social Networking Website の個人データは、次のような手順で読み込む。(18 分ごろから)

Social Networking Website

Step 1: Search
ダウンロードしたデータから個人名を探す。

Search

Step 2: Update
アドレスブックを更新する

Update

Step 3: Display
結果をソートして表示する

Display

     *     *     *

ネットワーク上の個人データ:デモ

Social Networking Website から個人データを読み込むデモは 35 分ごろから。

全体の処理をコード毎に解説しながら実演する。必要な関数を加えれば、ホンモノと同じ UI が利用できるようになるわけで、これはなかなかのものだ。ただし結構長いので、一度見るだけでは分りにくい。

Person List Demo

     *     *     *

データの表示は View Controller

そのほかアドレスブックの具体的ケースを想定して、そこで生じる問題を解説する。

・複雑な情報の取り扱い(46 分ごろから)

Adding Contacts

・未知の個人の処理(48 分ごろから)

 ABPersonViewController
 ABUnknownPersonViewController

Unknown Person

・Eメールアドレスの処理(56 分ごろから)
 ABPeoplePickerNavigationController

Picking People

・Notification(60 分ごろから)

     *     *     *

第13回講義:Notification ほか

今回の講義も前回同様非常に実践的。宿題「Presence」をやる過程で遭遇する様々な問題について解決方法を解説し、そのデモを行なう。

     *     *     *

例外(Exception

予想外の事態 Exception(例外)に遭遇するとアプリはクラッシュする。Exception を見つけるのはなかなか難しいが、それをどうやってデバッギングするかという問題。

Debugging Exceptions

任意の箇所にブレイクポイントを挿入して Exceptions を見つけるデモが 4 分ごろから。

Debugging Demo

     *     *     *

検索(Searching

検索に用いる UISearchBar の解説。

Uisearchbar

データがマッチしたときにどう処理するかというデモが 11 分ごろから。

Data Matched

     *     *     *

通知(Notification

UIKit で多用される Notification がどういう仕掛けになっているかという舞台裏について。

Notification

強力かつフレキシブルだが、デバッグはむずかしい。

Receiving Notification

Keyboard Notification の例として、キーボードを使う際、キーボードがかぶったリストをどう短縮して表示するかというデモが 26 分ごろから。

Shortened Lists

     *     *     *

Key-Value CodingKVC)と Key-Value ObservingKVO

Kvc Kvo Demo

変数の値(Value)が変化したことを知らせる Notification の例として、Key-Value Coding(KVC)と Key-Value Observing(KVO)について。

Kvc

Kvo

入力に応じてデータを変更する KVC のデモが 33 分ごろから。

Kvc Demo-1

誰かの社会保障番号(SSN)を変えようとするとアラートがでるデモが 48 分ごろから。

Warnig Alert

     *     *     *

こうしてみると、それぞれ如何にも実践的な講義であることが分る。サンプルコードもダウンロードできるので、模範的なコードを「盗んで」自分のプログラミングをブラッシュアップすることも可能なわけだ。

折しも、スタンフォードの iPhone プログラミングコースが開講されたこの7週間で、無料講義のダウンロードが 100 万回に達したとスタンフォード大が発表している。世界的な関心の高まりを示すわけで、大変なことだと思う。このうち 13 回分は当ブログも寄与していることになる。

また、いよいよアップルが6月の WWDC に向けて、「プッシュ通知機能」(Push Notification)のテストをサードパーティに依頼したという話も伝わってきた。

新しいプラットフォームとしての iPhone の開発動向はますます目が離せなくなっている。

     *     *     *

[参考]

iPhone Application Programming Course (CS 193P)

講義ビデオもここからアクセスできる
デモのサンプルコードもここから入手できる

     *     *     *

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

[つぎの講義]第14回・第15回

[これまでの講義]

補講: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: , , , , , ,

Read Full Post »

200905121636

[Loren Brichter]

連休でぽけっとしている間もスタンフォードの講義は着々と進む。第6週目も2回の講義が行なわれた。

それだけではない。補講の2回分もアップされている。

で、今週は都合4本のビデオ講義について・・・

     *     *     *

第10回講義:パフォーマンス

iPhone の限られたメモリー、遅い CPU、遅いネットワークはパフォーマンスにとって限界となる。

どうしたらパフォーマンスを上げられるかが iPhone プログラミングの重要な課題だ。

今回の講義ではメモリーと並列処理(concurrency)についての問題点を取り上げる。

     *     *     *

限られたメモリー

限られたメモリーを有効に活用するために・・・

1)必要なとき必要なデータだけ読み込む(4 分ごろから)

200905121638

講師はこれを「怠け者のデータ読み込み」(load lazily)という。なるほど。ココアプログラミングの要諦にも通じる。

2)メモリーリークを防ぐ(7分ごろから)

リーク(leak)はメモリー管理の大敵。Autorelease を多用するとメモリーなどすぐ使い切ってしまう。(1万回のループなど。)リークを見つけるための武器がパフォーマンスツールだ。そのデモが 12 分ごろから。

200905121639

Spike

3)オーバーヘッドを減らす(デモは 21 分ごろから)

一体どのくらいメモリーを使っているか(maximum autorelease footprint)、ピークはどうか(High-Water Mark:最高水位)をチェックし、オーバーヘッドを減らすことを心掛ける。

200905121641

Autorelease を使わないようにしたり、オブジェクトの再利用(Reusing Objects )を図るのもその方法だ。

4)システムからのメモリー警告(Memory Warnings)(28 分ごろから)

What To Release-1

メモリーを使い切ったときシステムから発せられるメモリー警告は重大な結果をもたらす。結局は何を捨てるかということに帰する。

     *     *     *

並列処理(Concurrency

もうひとつ iPhone プログラミングで重要な問題はスレッド(Threads)のような同時進行の処理だ。スレッドはパフォーマンスの低下をもたらす。(30 分ごろから)

Threaded Flickr Loading

スレッドの問題はデバッグが大変むずかしいということらしい。NSThread、NSOperation、NSOperationQueue などに関して Xcode を使ったデモが 37 分ごろからあるがなかなかむずかしくてよく分からない。また Flickr からスレッドを読み込むデモは 54 分ごろから。

     *     *     *

第11回講義:テキスト入力とモーダルコンテンツ

第11回目の講義は宿題 Presence をやるのに必要なテーマを取り上げる。テキスト入力(Text Input)とモーダルコンテンツ(Modal Content)だ。

     *     *     *

Clang Static Analyzer

その前に、前回の復習を兼ねてデバッギングツールのデモがある。オープンソースの Clang Static Analyzer だ。(9 分ごろから)

Clang Static Analyzer

C/Objective-C コードの静的分析(static analysis)を行なうツールで、バグの可能性を見つける。コマンドラインから起動するのだが、結果が Safari に出力されるところがクールだ。

     *     *     *

iPhone Keyboard

まず最初に iPhone Keyboard について(18 分ごろから)。

Virtual Keyboard

Japanese Kana

これらのキーボードから入力されるテキストには様々な特性(traits)がある。その特性をどう反映させるかという問題。

     *     *     *

テキスト入力をカスタマイズする

テキスト入力をカスタマイズするデモについては 26 分ごろから。

Text Containers

Text Input Traits

Keyboard Adopts Traits

Text Input Demo

     *     *     *

モーダルコンテンツ(Modal Content

もうひとつの話題はモーダルコンテンツ。

Presenting Content Modally

モーダルダイアログボックス(modal dialog)といえば、一度開いたダイアログボックスを閉じるまで、他の操作をできなくするタイプのダイアログボックスのことだ。話題にされるのはそんなモーダルな形で提供されるコンテンツのこと。

View Controller

モーダルコンテンツは操作の選択肢が限られる。どうやって片付けるかという問題と、メモリー管理上如何にうまくやるかという問題が生じる。

Dismissing Modal View Controller

このあたり delegate method と絡むほか、retain はダメで assign ならいいとかむずかしくてよく分らない。さらには delegation と notification の話なども出てきてややっこしい。

     *     *     *

以上が今週の講義だが、毎週月・水2回の講義のほか、金曜日にも講義が行なわれる。補講だ。ゲストによるものはなかなかおもしろい。

     *     *     *

補講:Tweetie Loren Brichter

例えば今回アップされている Tweetie の Loren Brichter が5月1日におこなった金曜セッション。App Store でヒットしたアプリのサクセスストーリーだ。

実際に App Store で一儲けしようとと考えているものにとっては、ひょっとしたら講義よりオモシロいのではないか。

Tweetie Sales

[Loren Brichter が作った Tweetie の売り上げグラフ]

Tweetie 売り上げのグラフを示しながら、それぞれ売り上げ急上昇の時点で何が起きたかを説明するので、デベロッパや学生でなくても聞きたくなる。

これこそまさに App Store に向けた実践的講義だ。

     *     *     *

補講:Stanford 大学院生 Steve Marmon

Steve Marmon

[タンフォード大生の Steve Marmon]

こちらはハウツーもの。「カッコいい iPhone アプリを作るための10のステップ」(How to Build an iPhone App That Doesn’t Suck! in 10 Easy Steps)なるタイトル。

現役のスタンフォード大学院修士過程の学生で、アップルへの就職が決まっているらしい。

Iphone Prototype

[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: , , , ,

Read Full Post »

Older Posts »