iphoneのアプリを作りたい!と思っている人は、日に日に増えています。また新たな
ipad2も登場し、ipadアプリも人気急上昇中ですね。が、iphone開発を始めよう、と思う人の、けっこうな割合が、あっという間に挫折しているように思えます。実際、Androidなどと比べると、確かにそのハードルは高そうです。一体、何がそんなに大変なのでしょうか。
それは、プログラミングのテクニックとか、高度な技術が要求されるとかいったことでなく、「何の下準備もしていなかった人間が、いきなり中級クラスの現場に放り込まれる」ために起こる問題のように思えます。多くのiphoneプログラミング志望者は、まずいきなり「iphoneプログラミング入門」的な解説書なりを書店やネットで読んで勉強を開始します。が、多くの入門書は、「iphone開発の入門」であって、「プログラミングの入門」ではないのです。
iphoneやipadは、「
iOS」というプラットフォーム(要するにOSですね)が搭載されています。この
iOSは、
Mac OS Xの基本部分をベースにして構築された、携帯端末向けの専用OSです。Macとiphoneは、見た目はずいぶんと違いますが、実は内部的にはかなり似ているのですね。
この
iOSやMac OS Xは、非常にユニークな仕組みを持っています。それは「プラットフォームの機能と開発言語が融合している」という点です。そもそもMac OS Xは、その昔にあった「
NEXTSTEP」というOSをベースにして開発されています。このNEXTSTEPは、「
Objective-C(オブジェクティブシー)」というプログラミング言語のために生み出されたOSのようなものだったのです。
まず最初に、
Objective-Cというプログラミング言語がこの世に誕生しました。この言語を実用的にするために「
フレームワーク」というものが整備され、そしてその実力をフルに発揮するOSが作られました。このOSをベースにしてMac OS Xが作られ、更にそこから派生したものとして
iOSが生まれました。
したがって、Mac OS Xや
iOSと「
Objective-C」というプログラミング言語は、切っても切り離せない関係なのです。他にも様々な言語はありますが、そもそもMac OS Xの根幹をなすフレームワークは、
Objective-Cのために設計されたものですし、
iOSなどは「
Objective-C以外の言語は禁止」となってしまいました。
したがって、これらの開発をするには、まず
Objective-Cを理解しなければいけません。この
Objective-Cを理解するというのが、またやっかいなのです。
Objective-Cを使うためには、
・まず、
C言語について理解しないといけません。
Objective-Cは、C言語をもとにして拡張し作られています。基本的な文法などはC言語そのままなのです。
・続いて、
Objective-Cという言語の基本文法などを理解しないといけません。特に、Objective-Cの重要な要素である「オブジェクト指向」についてしっかり学ぶ必要があります。
・更に、Mac OS X/
iOSで用いられるもっとも基本となるフレームワーク「
Foundation」について理解しないといけません。
Objective-Cでは、主な機能はすべてこの
Foundationフレームワークにまとめられているのです。
――ここまできて、ようやく「
iphone開発の準備が整った!」ということになるのです。ここまでの知識は、まだiphone開発の「前段階」なのです。これは
iOSやMac OS Xのベースとなっている部分に関する知識で、ここからようやく「iOSの知識」のプログラミングの勉強が始まるのです。(もちろん、「これらを完璧にマスターしろ!」といっているわけではありませんよ。基礎的な部分はしっかりわかるようにしておこう、ということです)
いかがですか。みなさんは既にこれらをクリアしていますか? もし、まだわからない……というなら、まだiphone開発の準備は整っていないのです。まずはC言語とObjective-Cの基礎からしっかりを学び、それから再びここを訪れましょう。
・Objective-C初心者のためのC言語超入門http://libro.tuyano.com/index2?id=542002・初心者のためのObjective-Cプログラミング入門http://libro.tuyano.com/index2?id=524006