iPhoneアプリを作る際に注意すべき5つのポイント
「少年よ大志を抱け!」よりも「若者よどん欲になれ!」の方が良くないか?

スティーブ・ジョブズが一度アップルを追い出されてNeXTを作ったからこそ存在するiPhone OS

117pxnext_logo

 ここのところブログの更新がさっぱりなのは、iPhone向けのアプリの開発で大忙しだから。4月15日にApple Desng Awardの件がアナウンスされてから二週間、ようやくAward向けのアプリも形になって来たので一息つける。締め切りの5月12日まではまだ少し余裕があるが、締め切り寸前にプログラムを変更するのが大嫌いな性分の私はこのくらいの段階で「今日出そうと思えば出せる」ぐらいのクオリティに仕上げておかないと気が済まないのだ。後は徹底的なテストと、見た目の微調整。「ベータ版」としては十分のできだ。

 iPhone SDKもbeta4になり、ようやくチューニング用のinstrumentsも安定して動き始めたので、今日はメモリー・リークの徹底的なチェック。非同期通信だらけなのと、Objective-C覚えたての時に書いたコードが混ざっているため、予想通りリークだらけだったが、このツールのおかげて順調にリークを直すことができた。ガベージ・コレクションのないiPhone OSの場合、自分でリファレンスカウントの管理をちゃんとする必要があるが、非同期通信をきちんとサポートするためには、Model-View-Controllerのアーキテクチャ徹底した上で、それぞれのライフサイクルをきちんと考え抜いてノーティフィケーションのメカニズムを作らないと安定しては動いてくれない。このあたりのノウハウに関しては、一度ちゃんとまとめて書いてみたいが、少なくともiPhone SDKのNDAの呪縛が解けてからのことだ。

 ちなみに、3月からはじめたObjective-Cにもすっかり慣れたが、これはすばらしい言語である。スクリプト言語なみの自由度を持ちながら、必要なところはstrong-data-typeな部分を活用して「つまらない人的ミス」を減らすことができる。C++やJavaよりは明らかに開発効率が良く、JavaScriptやActionScriptよりも遥かに自由度と完成度が高い点が私としてはたまらなくうれしい。

 しかし何と言ってもすごいのが、iPhone OSと開発環境の充実度。Interface Builderまでもがきちんと動くので、「組み込み系の開発環境」としてはブッチギリでNo.1だ。数年前からこの分野でプラットフォームを提供している、Sun Microsystems、Microsoft、Qualcomm、Symbianがここまであっさりと抜かれると誰が予想できただろう。まあ、それもこれも、スティーブ・ジョブズが一度アップルを追い出され、NeXTを作ったからこそiPhone OSが存在するというのは何と言うドラマだろう。

 

Comments

*

NeXTです!間違いは認めません!

通りすがり

PalmOSはもう名前すら出てこなくなってしまって寂しい限り
がんばれACCESS・・・

Satoshi

>NeXTです!間違いは認めません!

ご指摘ありがとうございます。修正しました。

うらの

MacOSX以前のMacOSはとんでもない失敗作でしたから。
Illustratorなどを使ってたデザイナーの間では、いつフリーズするかわからないので、バックアップを頻繁にしながら作業してました。

プリエンプティブになったのもWindowsよりずっと後でしたし。

Hoijya

中島さん、いつも楽しく読んでます。
昨日、書籍も読み終えました。
最近の雨後の竹の子状態なアップル関連の書籍の中ではダントツ面白かったです!
現在、日本法人で働き始めて早5年。
今、アップルジャパンに必要なのは中島さんや古川さんみたいな人達です。


さるすべり

はじめまして。組み込み系(交換機やルータ)の元開発者です。

NeXTStepはいい計算機でしたね。製造中止になってからも、日本の「Software Design」という雑誌でコアなファンのかたが関連記事を何年も連載し続けてました。

WilTelという会社(いまのウィルコムの前身)が米国でATM(Asynchronous Transfer Mode)ネットワークを駆使して構築するデータ通信網に機器を納入してましたが、そこではATMスイッチと共に、1,000台のNeXTを並列稼動させてサービス提供をおこなおうとしていました。その時NeXTアプリの開発の話もあってちょっとだけObjective-Cをかじりましたが、あれは良い言語だと思いました。当時はオブジェクト指向なアプローチというものが未だあまり理解されていなかった時分だったのですけれども、そういうオブジェクティブなアプローチが少なくともC++よりは自然に可能でしたし、強力なCとしても使用可能(この部分はC++と同じ)でした。

あれ(Objective-C)がなぜ流行らなかったのか、いまでも不思議に思います。

うらの

Objective-Cが流行らなかったのは、処理系が出なかったから。ただそれだけ。

じびき

私はオブジェクト指向言語はSmall Talkから入ったので、Objective-Cはそれに一番近く、とっつき易いです。当時はまだJavaもなく、C++ もSTLが無い状態でした。「オブジェクト同士がメッセージをやり取りして協調して働く」というのがよく理解出来る言語だと思います。

> MacOSX以前のMacOSはとんでもない失敗作でしたから。
> プリエンプティブになったのもWindowsよりずっと後でしたし。

最近「イノベーションのジレンマ」を読みましたが、まさにその状態でしたね。

> あれ(Objective-C)がなぜ流行らなかったのか、いまでも不思議に思います。

プログラマって結構保守的な人が多いと思います。そういう人達には、C++の方がとっつき易かったからではないでしょうか。初期のC++プログラムの中には、クラスを一つだけ作って、その中に普通のCと同じ様に関数を並べただけというのがありました。

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment

Your Information

(Name is required. Email address will not be displayed with the comment.)