HPDT - Happy iPhone and iPod touch Developing Time!
- 基礎知識からHello Worldまで -
iPhoneでのネイティブアプリケーション開発
現時点でのiPhoneでのアプリケーション開発
ここでは、iPhoneおよびiPod touchのネイティブアプリケーション開発に関する基礎的な話をしていこう。現時点(2007年12月)での、バックグラウンドを説明しておくぜ。
まず、いまのところ、公式にはiPhoneでのネイティブアプリケーションはサポートされていない。とういかAppleは、作るな、って言っている。代わりにWebアプリケーションを作って、Safariで動かせと。でもねー、一回iPhoneのユーザインタフェースを体験してしまったら、貧弱極まりないWebアプリケーションなんか使ってられるかっつーの。ちゃんちゃらおかしい、とはこのことだ。
Appleのサポートがなくとも、アプリケーションは作れる。だいたい、あるコンピューティングプラットフォームが登場したら、まぁほとんどの場合はアプリケーションは作れる。最低限必要なのは、コンパイラだね。iPhoneはARMチップを使っているから、コンパイラはある。それならもう、出来たも同然だ。
という訳で、ここではiPhone用ネイティブアプリケーションの作り方の話をしていくけど、Appleとは何の関係もなく、自分で調べたものだけ書いていくので、信憑性は自分で判断してくれ。この記事を参考にして被害が発生しても、責任はとれないです。あと、ジョブズが言うには、来年の2月にはiPhone用SDKを発表するらしい。それが出たあかつきには、ここの記事は全部無意味になってるかもしれない。まぁ、本当に2月に出るかどうかはまだ分からんし、いま出来ることをしていこう。
ここでは解説しないこと
iPhoneで開発を始めるには、開発環境の整備と、iPhoneをソフトウェアインストール出来るような状態にすること(いわゆるJailbreak)が必要だ。
ここでは、これらの説明はしないよ。動きが激しくて、キャッチアップが大変だからだ。これらのことを解説したサイトはいくらでもあるので、そちらを参考にして環境を整えてから、ここの記事を読んでほしい。
iPhone開発に必要な知識
iPhoneには、OSXが乗っている。OSXは、プログラマの立場から見ると、Mac OS Xのサブセットプラスアルファ、ということになる。
これどういうことかというと、OSXは基本的にはMac OS Xと共通だ。でも、搭載していないフレームワークもある。または、新たに追加されたフレームワークもある。そういうこと。
Mac OS Xでアプリケーションを開発する場合、メインのフレームワークはCocoaだ。では、CocoaはiPhoneに乗っているのか?答えは、半分乗っている、だ。Cocoaは、文字列やコレクションといった基礎的なサポートをするFoundationと、ユーザインタフェースを担当するApp Kitで構成されている。Foundationは、iPhoneにある。App Kitは、ない。だから、半分だ。
App Kitの代わりとなるのが、UI Kitだ。UI Kitが、iPhoneの、あの特徴的なユーザインタフェースをサポートしてくれる。マウスとキーボードベースの環境のために設計されたApp Kitを、タッチパネルで操作するiPhoneに持ってくるのは無理だからね。ここは新しく追加した訳だ。つまり、iPhoneアプリケーション開発は、Foundation + UI Kitで行うのが基本になる。
そして、これらのフレームワークにアクセスするプログラミング言語はObjective-Cだ。Objective-Cは、Mac OS Xで開発している人なら、なじみ深い言語だね。それ以外の人には、なんじゃそら?というものだと思う。いちおう、C言語にSmalltalkから影響を受けたオブジェクト指向を導入した言語、というものになっている。歴史は古い。1983年に誕生している。特徴を羅列しておくと、
- C言語のスーパーセット
- オブジェクト指向言語
- 動的な型判別
- 静的な型もあるけど、それほど重要視されない
- メッセージ送信を重要視する
- コンパイルしてネイティブコードを生成
- ランタイムを使用
- iPhoneではガベージコレクションサポートなし(Mac OS Xではある)
こんな感じ。使ってみると、C++やJavaなんかと比べると、「コンパイルする時のチェックは、まぁ適当にやっといて、あとは動いているときにクラスやらメソッドやら調べながらやればいいんとちゃう?」という、気分になる。何かねー、何でもできるというか、いいかげんというか、そんな雰囲気に満ちあふれている言語だ。
という訳で、iPhone開発を始めるには、Objective-C、Foundation、UI Kitの知識が必要になる。ここでは、Objective-CとFoundationの話はしない。これらは、Mac OS X開発の話とかぶるからね。UI Kitの使い方に焦点を当てていく。
もし、あなたがMac OS Xの開発の経験が無いならば、いい本があるんだよ、これが。『たのしいCocoaプログラミング』っていう本。Mac OS X開発が始めて、という人に向けて書かれた本で、Objective-Cの文法や、Foundationの使い方もバッチリ載っている。これを一読してから、iPhone開発を始めるといいかもね。いい本だから。筆者が言っているんだから、間違いない、うん。