このブログを含む私に関連するWebページやTwitterには、Mac OS XやiOSで動くアプリの開発をしている旨をプロフィールに記載しています。
Macを含むパソコンやiPhone/iPadの自分なりの使い方を模索したり、紹介することはありましたが※、アプリ開発(プログラミング)に関連する話題をネット上ですることは、今までにありませんでした。
※正直なところ、この下線部をしている時の方が自分にとっては楽しく、それが習慣になってしまっていたため、アプリ開発の方はいつも後回しになってしまっていました。ですが、既にあるものを使いこなしていくだけではなくて、自分自身で、ソフトウェアを作ることによって、 MacやiOS端末で「できること」を増やしたいなと思う気持ちは変わっていません。
この春からは、そのような話題もネット上で出していきつつ、モチベーションと技術力の向上に繋げられればいいなと思います。
今回の記事では、私が「これで何でも作れるようになりたい」と思っている、”Mac上でアプリケーションを作るための技術”をまとめたいと思います。
今日、Appleが販売しているパソコン「Mac」には、「Mac OS X」というOSが搭載されています。「Mac OS X」が登場する前のMacには「Mac OS」という名のOSが搭載されていました。
「Mac OS X」の「X」の意味は、Mac用のOSでバージョンが10番目(ローマ数字のX)にあたるということと、Mac OS X(前身のNEXTSTEP)がUNIX系の技術を採用していて、そのUNIXの”X”を取ったということが挙げられます。 「Mac OS X」と書いて、「まっくおーえすてん」と読みます。
Appleのスティーブ・ジョブズCEOは、1985年にAppleを追放されてしまいました。その後、NeXTという会社を設立し、NeXT社オリジナルの教育・ビジネス向けのワークステーションを販売していました。そのワークステーションには「NEXTSTEP」というOSが搭載されていました。
スティーブ・ジョブズ氏がアップルに復帰する直前の1996年、Appleでは「Mac OS」に代わる新しいOSをMacに搭載しようという計画が立っていました。その次期OSでは外部の技術を新しく採用することになり(なんとMicrosoftのWindows NTも候補のひとつでした)、幾つかの会社の製品の調査を行った後、NeXT社の「NEXTSTEP(この頃にはOPENSTEPという名称に変わっています)」を次期OSの技術として採用することになりました。NeXT社はアップルに買収され、スティーブ・ジョブズ氏もAppleに復帰することとなり、後にCEOの座を取り返しました。
Mac OSはMac OS Xが開発される中、2001年まで改良が重ねられました。
最後のMac OS 9では非常に安定したOSとなり、たくさんの新機能も盛り込まれていたことと、当時のアプリケーションを今でも大切に使いたいという理由から、Mac OS 9を現在でも愛用するユーザーがいます。一例として、印刷業を営む事業所へ赴くと、まだMac OS 9が活躍する姿を現役で見ることができることがあります。
2000年、NEXTSTEPの技術を採用したMacの新しいOS「Mac OS X」が登場しました。
さて、Mac OS X向けのアプリケーションを開発するための新しいAPIとして、「Cocoa」というものがあります。iPhoneやiPad、iPod touchのOSはMac OS Xの技術を使った「iOS」と呼ばれるもので、iOS向けのアプリケーションを開発するためのAPIには「Cocoa Touch」というものがあります。
CocoaとCocoa Touchを呼び出すにはObjective-Cというプログラミング言語が必要になります。
Cocoaのクラスライブラリの名前は“NS”で始まります。 これは、Mac OS Xの前身である「NEXTSTEP」の略であり、Mac OS X上でアプリ開発を行う際には、今でもNEXTSTEPの名残を感じることができます。
Mac OS XにはCocoa以外のフレームもあり、その代表として「Carbon」というものがあります。
Carbonは過去のMac OSで動いていた機能をMac OS X上でも動かせるようにすることが目的で作られたものです。
初期のMac OS Xに標準で搭載されていたアプリケーションの中にはCarbonで作られたものがたくさんありましたが、現行のMac OS X 10.6 Snow Leopardではほとんどの標準搭載のアプリケーションがCocoaで書き直されています。更に、Cocoaは64bit環境に対応していても、Carbonは64bit環境に対応していません。iOSにもCarbonは移植されていないので、今後はCocoaやCocoa Touchで作られるアプリケーションが格段に増えていくのでしょう。
それで、私はCocoaとCocoa Touchを自由自在に操れるようになれたらいいなといつも思っていて、非常にロースペースながら、Mac上で自分のアイディアを使ったiOSのアプリを開発しています。
次のアプリ開発に関連する記事では、技術面での深い話題や、開発途中の覚え書きなどを書けるようになれたらいいなと思います。