2010年9月10日

Objective-C の歴史

今回は Apple が採用している Objective-C について少し話してみよう。

まずは、簡単に歴史からご紹介。

Objective-C の元となっている C は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって作った言語です。
1980年オブジェクト指向のプログラミング言語としてsmalltalk が公開されます。
そして、1983年 C とsmalltalk のよいところを組み合わせて作られたのが Objective-C です。
アップルの創業者であるスティーブ・ジョブスが、アップルをクビになり作った会社「NeXTコンピュータ社」で、オブジェクト指向のマルチタスク用コンピュータ「NeXTcube」のOS「NeXTSTEP」で採用され、 Objective-C はさらに発展していきます。
NSLog、NSStringなどのプレフィックスでNSというのは、NeXTSTEPの頭文字だったりする訳です。 

1996年に Apple が NeXTを買収して話題になったのは1998年のiMacの発売でしょう。
パソコンは使ったことがないけれどファッションとしてiMacを購入する女性もいたくらいです。そして、2000年に Objective-C で記述されたOSとして OS X のパブリックベータが発表されます。
当初は MacOS 9 に比べて重くて仕事向きではなかったのですが、コンピュータの性能の向上とOSのマイナーバージョンアップで、2002年に発売された OS X v10.2(Jaguar)あたりからビジネスでも使えるようになってきました。

そして、2007年に iPhone が Objective-C 2.0 を搭載し 2008年 iPhone OS 2.0、iPhone SDK が登場、2009年にiPhone OS 3.0 2010年に iOS4 が登場しました。


さて、プログラミング言語のJava、C++、C#、などは C を元に作られています。
Cを発展させたものですが、C やそれぞれの言語とは異なります。
それは、それぞれのルールで作られているので、全く同じではありません。

例えば次のようなコードを見てみましょう。

C++

#include

int main()
{
    std::cout << "Hello, World!\n";
}


Java

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}


C#

class Hello {
    static void main() {
        System.Console.writeLine("Hello, World!");
    }
}

それぞれ異なっているのがわかります。
さて、Objective-C はどうでしょうか?
Objective-C は C の改良ではなく C の機能追加版とでも言った方がいいでしょう。
ですから、 C で書かれたコードを Objective-C でコンパイルしても、問題なく動きます


C

#include 
int main (int argc, const char *argv[])
{
    printf ("Hello, World!");
    return 0;
}

ここで混乱してしまうのですが、C と Objective-C とはどうやって区別するのでしょうか?

Objective-C

#inport 
int main (int argc, const char *argv[])
{
    NSLog (@"Hello, World!");
    return 0;
}
C では "#include" と記していたところが "#inport" となっています。
その他に、わかりやすい変更点として次のようなものがあります。

Objective-C

#include 
int main (int argc, const char *argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    NSLog (@"Hello, World!");
    [pool drain];
    return 0;
}

[ ] で囲まれている部分がとても特徴があります。
多くの [ ] で囲まれて、まるでパズルのようですね。

C のコードで動くということは C を1から学ばなければならないかというと…
そうでもありません。

それは「Cocoa Touch」があるからです。
C のコードを使いやすく多くのクラスが追加されています。
それが Foundation として提供されています。
iPhone のプログラミングを使っていく上ではさらに、
UIKit が提供され 数百のクラス、数千のメソッドが利用できるのです。

Cocoa Touch について学んでいくことが、iPhone のプログラミングを習得する早道でしょう。



ヌシ:http://YoshiakiMATSUMURA.com

2010年8月4日

iPhone アプリの代1歩/インストラクション

さて、Web屋の私ですが、ひょんなことから iPhone アプリ作成に挑戦!
目標は、iPad用のアプリですが、まずは iPhone アプリからいってみましょう。
…ところで、自分で言っていてなんですが、「ひょん」って何だ? 気になる…後で調べることにします。思いっきり脱線しそうなので。

まずは、iPhone アプリを作るための準備をしてみましょう。
iPhone は、「Objectiv-C」という言語で書かれています。Objectiv-C の開発環境を整えましょう。
iPhone アプリを開発するために、Appleが無料で提供している「iOS SDK」を利用したいと思います。何よりチュートリアルなども豊富です(英語ですが)し、「無料」ですから。
もちろん「Eclipse」などを利用して作成することも考えられますが、それはまた別の機会で。

iOS SDK を利用するにあたり、超えなければならない壁がいくつかあります。
まず一つ目が、「パソコンを持っていること」です。残念ながら iPhone や iPod touch では作成できません。そのうえ、どんなパソコンでもいいという訳ではありません。
それは「Mac」であること、しかも「インテルのCPU」であることという条件があります。
もちろん Windows 環境で作れないこともないのですが、それはまた別の機会で。

手元に インテル Mac がある場合、早速「iOS SDK」をダウンロードしてみましょう。
Apple の Developer のページに行きましょう。
Apple Developer

そこから、iPhone Dev Center に入っていきます。
iPhone Dev Center

すでに Apple ID をお持ちの方はログインしてください。
まだの方は、右上の方にある「Register」から、無料で登録できます。

ログインすると左上に iOS 4 のダウンロードがあるので、クリックするとページの下の方に移動し、ダウンロードの項目ところにいきます。
iOS 4 | iPhone Dev Center

Snow Leopard Downloads ’Xcode 3.2.3 and iOS SDK 4.0.1’ (2010年8月4日現在)をクリックするとダウンロードが始まります。
iOS SDK | iPhone Dev Center

無事ダウンロードが始まりましたか?
ファイルサイズが 2 GB 以上と大きいので時間がかかるかと思います。
ダウンロードが完了するまで、「Objective-C」について少し話しましょう。


2010年6月19日

携帯サイト作成の便利なタグ - 入力モード、アクセスキー、キャッシュ、ブックマーク

携帯サイトと作っていて疑問に思ったことを調べていたら、きれいにまとめてあったのでご紹介します。

入力モード、アクセスキー、キャッシュ、ブックマークなど携帯サイトで使える便利なタグ。
元ねたはこちら。MEMORVA

入力フォームの入力モードの指定

携帯サイトの入力フォームで文字を入力するときの入力モード(英字、数字、漢字、カタカナなど)を指定できます。
数字を入力させたい場所で文字を入力するときに、最初に漢字モードが表示されると、わざわざ携帯のボタンで数字モードに直してから入力しますが、予めページ側で数字モードにしてあげると、入力する人の手を煩わせることがありません。
ドコモ
istyle:「1」全角かな、「2」半角カナ、「3」英字、「4」数字。

<input istyle="3" name="test" type="text" />
au
format: 「A」英大文字のみ(句読点も可)、 「a」英小文字のみ(句読点も可)、 「N」数字のみ、 「X」大文字と数字記号(句読点・記号も可)、 「x」英小文字と数字記号 (句読点・記号も可)、 「M」全角漢字 (携帯のボタンですべての文字も可)、 「m」英小文字 (携帯のボタンですべての文字も可)。
ドコモのistyleも使用可能。

<input format="4N" name="test" type="text" />
<input />="" format="*A" name="test" type="text" />
記号の前の数字は、入力文字数の制限で、*の場合は制限なし。
ソフトバンク
MODE: 「hiragana」全角かな、 「katakana」全角カナ、 「hankakukana」半角カナ、 「alphabet」英字、 「numeric」数字。

<input mode="hiragana" name="name" type="text" />

▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼△▼
ヌシ:http://YoshiakiMATSUMURA.com
▲▽▲▽▲▽▲▽▲▽▲▽▲▽▲▽▲▽▲▽▲▽▲