Shammer's Philosophy

My private adversaria

LionでObjective-Cデビュー

昔、ちょっとだけCocoa/Objective-Cをやってみようかな、と思ったことがあったが、時間を確保できずにできなかった。当時は、まだJavaに触れていた時期で、仕事でJavaを使っているとどうもそれ以外の言語をやる、となってもそのモチベーションを維持するのが大変だった。本当にプログラミング好きなら寝る間も惜しんでやるだろう、というように言う人もいるが、そうすると仕事がダメダメになってしまうのです・・・単純に体力ないので。というか、適当にやらないで、かなり踏み込んでやろうとするからそうなってしまうのだろう。

が、つい先日、ついにJavaを卒業しました。これからも簡単なツールを作るという目的ではJavaを使うかもしれないけれど(Javaインストールするのが面倒だから使わないかも・・・)、仕事ではおそらくCやC++が多くなるだろう。それもWindows環境の・・・え、Objective-Cじゃないじゃない、という話もあるけれども、Cと完全に互換性のある言語なので前よりは敷居が低くなった。というわけで、ちょっと挑戦してみようかな・・・という気持ちになったわけです。

前にちょっと触れた印象だと、Objective-Cの勉強というよりも、Macでのアプリ開発の流れを勉強するという感じで、かなり面倒な印象だったのを覚えている。Xcodeだけじゃなくて、インターフェースビルダー(名前違うかも)なるものがあって、Xcodeでコードを書いて、インターフェースビルダーでボタンとかを用意し、それらボタンのイベントとしてXcodeで書いたメソッドとかをリンクさせる、というような感じ。まずは言語仕様から、と思っていたのにそういう内容ばかりで長続きしなかった。でもこれは、Macでのアプリ開発Objective-Cを勝手に混同していた自分の責任。MacObjective-Cを使ってアプリを開発するとなると、

の3つが最低でも必要。HelloWorldをやるにも、Objective-CのHelloWorldじゃなくて、MacのHelloWorldになってしまっていたので、自分が予想していた以上にいろいろなことを覚えなければならなかった、という状況。最初は、開発ツールの使い方もCocoaフレームワークの情報もいらないから、純粋にObjective-CでHelloWorldさせてくれ・・・

というわけで、Lionになって初めてXcodeを触ってみました。前使っていたのはSnow Leopardでなく、LeopardXcodeもバージョン3.xとか。LionではApp StoreからXcodeダウンロードするけれど、バージョンは4.1だった。見た目もだいぶ変わっている。そして・・・インターフェースビルダーがないように見える・・・前はプロジェクト内にあるxibという拡張子のファイルを開くとインターフェースビルダーが起動していたけれど、今回はそうじゃなくXcode内でレイアウトを決めるように見える・・・でもどうやるかよくわからなかった(T_T)これはまた後日調べよう・・・

で、とりあえずObjective-CでHelloWorldをやってみることに。手順は以下のとおり。

  1. Xcodeを起動して、Cocoaアプリケーションプロジェクトを作成
  2. プロジェクト内のmain.mを探す
  3. main.m内にmainメソッドがあり、デフォルトだと「return NSApplicationMain(argc, (const char **)argv);」という行があるが、それをコメントアウト(あるいは削除)
  4. mainメソッドにprintf("HelloWorld!\n")というように書く
  5. Runボタンをクリックすると、ビルドされ右下に「HelloWorld!」と他のビルドや実行時の情報が出力される

とりあえず、NSなんたらクラスを覚える前に最低限のObjective-Cの文法をこんな感じでやってみようと思う。
とは言っても、ほとんど普通のCと同じような気もするが・・・

※編集後のmain.m

#import <stdio.h>
#import <objc/Object.h>

int main(int argc, char *argv[])
{
//    return NSApplicationMain(argc, (const char **)argv);
    printf("HelloWorld!\n");
    return 0;
}