Happy Macintosh Developing Time
─はじめてさわる、はじめてわかる!!
Cocoa と Objective-C プログラミング─
木下 誠 著
OSX ユーザに贈る Cocoa プログラミング書籍の決定版!!
本書は、今までアプリケーション開発を行ったことのない初心者のために、一つずつ丁寧に、かつ正面から解説し、オブジェクト指向とは何か、Objective-C の文法、そして開発環境の使用方法といった事柄をサンプルプログラムを使用し、具体的な例を挙げながら説明した OSX プログラミングガイドの決定版である。
BNN 新社より、3,000 円で絶賛発売中!
Amazon での注文はこちら。
正誤表はこちら。
サンプルソースコードのダウンロードはこちら。
お買い上げ頂いた方も、これから買われる方もどうぞ。
サンプルのビルド時に警告が出るときの対処は、こちら。

こんにちは。えー、mkino こと木下誠といいます。Makoto KINOshita で、mkino です。今度 HMDT で本を出すことになりました。その名もずばり、「Happy Macintosh Developing Time」という本です。
この本は、Cocoa プログラミング入門の本です。この本を書こうとしたときは、Mac OS X も登場してから結構時間が立っていたんですよ。そこで、このタイミングで求められる本というのは、いったいどういうものになるだろう、と考えてみました。その結果、この本では 2 つのことに注意してみたんです。
1 つは、初心者向けの本にすること。そのためには、まず「最初」から説明しないといけません。じゃあ、最初とは何でしょう?Cocoa の説明からでしょうか。いや、Cocoa の前に Objective-C の説明をしないと。まてまて、それにはオブジェクト指向を理解していないといけませんね。でも、オブジェクト指向がアプリケーションを作ることとうまく結びつくでしょうか。そうです、やはり「アプリケーションを作ること」と、いうことから説明しないといけないんですよ。
というわけで、最初の最初である、「アプリケーションを作ること」ということから説明を始めることにしました。そこから順々に、Cocoa を使うために必要な知識を広げていきます。ですから、初心者でも順を追って身に付けていけます。
だけど、初心者のためだけの本にはしていません。実際、この初心者のための導入部は 1/3 くらいです。その次からが、本番です。そこそこのアプリケーションを作れるように、Cocoa の多くのクラスを説明しています。ただ説明するだけではありません。プログラミングの理解を早めるには、たくさんのサンプルが不可欠だと思っています。ここが、注意した 2 つ目の点。できるだけ多くのサンプルを提供するようにしました。それも、ただのサンプルじゃありません。きちんと「使える」、実践的なサンプルです。
この 2 つの点に注意してみました。それぞれのトピックでは、丁寧ながら、正面から説明することを心掛けました。その技術の生まれた背景、利点、典型的な使用例をきちんと解説したつもりです。初心者の始めの一歩から、中級者の次の一歩まで、自信を持って勧めることができる本にしたつもりです。
このような人に読んでもらいたい
HMDT の本は、こういう人たちに読んでもらおうと思って書きました。
「Mac のことが大好き!毎日、Mac のニュースや、Apple からの新製品発表もすべてチェックしている。でも、プログラミングのことは、興味はあるんだけど、どこから初めていいか分からないんだよね、、、」
「学校で C 言語を習った。printf と scanf は分かるよ。でも、Mac OS X で、ウィンドウやメニューを使ったアプリケーションを作るには、どうすればいいんだろう?」
「最近、オブジェクト指向っていう言葉はよく聞くんだけど、それってどう使うの?」「オブジェクト指向やってはみたんだけど、なんか見通しが悪くて気味悪いんだよね。」
「今度、業務で Cooca プログラミングをやることになってしまった。Cocoa のクラスのオーバービューが知りたいんだけど。」
「Cocoa の簡単なプログラミングは、なんとなく知っている。じゃあ、具体的にラウンチャとかテキストエディタっていったアプリケーションは、どうやって作ればいいんだろう。」
こんな疑問たちに答えます。
第一部は基本編
HMDT の本は、二部構成にしました。第一部は、Mac OS X でプログラミングをするための、基礎的なことの説明です。
まず始めに、アプリケーションを作るということはどういうことなのか?という、いちばん当たり前ですが、理解しておかないと後でにっちもさっちもいかくなることを、説明しています。OS 上でのアプリケーションを組む、ということは、単純なプログラムを作ることと、どう違うのでしょう。Cocoa と Objective-C とは、それぞれ何を表す言葉なのか?API とはなにもの?と、いったこが説明されます。
最近のプログラミングで、意外にはまってしまうのが、オブジェクト指向です。知っていれば簡単なんですが、知らないとこれほど理解しにくいものもありません。なぜオブジェクト指向が必要なのか。オブジェクトとメッセージとはなにか。ということを、具体的な例を挙げながら説明します。
Cocoa を利用するために、この本では Objective-C を使います。C 言語に、シンプルなオブジェクト指向のための文法を追加したものです。オブジェクトの型、C 実装、メソッドとセレクタなどを説明しましょう。
Mac OS X では、Project Builder と Interface Builder という開発環境が提供されています。これらの使い方、考え方も説明します。特に、Interface Builder は、見た目の印象から受けてしまう、ただのレイアウトを行うツールではありません。クラスのデザイン、インスタンス化、オブジェクト間の接続までできてしまう、素晴らしいツールです。
ただ、Project Builder の後継として Xcode が今度の 9 月に出てしまうんですよね。この本の内容がすぐ古くなってしまうので、ちょっと、残念です。
第二部は実践編
第二部からは、実践編です。
Cocoa のたくさんのクラスを説明し、実際にアプリケーションを作っていきます。簡単に、説明される項目を挙げていきましょう。
コントローラ GUI の章では、ボタンやスライダー、テキストフィールドといった、基本的な GUI のクラスを説明します。ここでは、ターゲットとアクションという、Cocoa での GUI 接続の基本的な考え方を説明します。
永く安定してプログラムを動かすには、メモリ管理が不可欠です。Cocoa で提供される、一貫した、シンプルで使いやすいメモリ管理の仕方を説明します。
本格的なアプリケーションを組む前に、Foundation で用意されている基本的なクラスを理解しましょう。文字列、配列、辞書といった、基本のクラスを考え方とともに紹介します。
Cocoa では、オブジェクト間の通信として、デリゲートとノーティフィケーションという手段を用意しています。これらを使うと、さまざまなイベントを受け取ることができます。
また、アプリケーションを起動したり、デフォルト値保存するためのデータベースなど、アプリケーションのための様々なクラスも用意されています。これらを使うことで、便利な機能にアクセスできます。
複雑なデータ構造を表示するために、テーブル、アウトライン、ブラウザといったクラスが用意されています。ちょうど、Finder でファイルを表示するための構造のようなものです。これらを使いこなすには、データソースという考え方を利用します。詳しく説明しましょう。
Cocoa では、画面への描画はビューと呼ばれるクラスの上に描かれます。ビューの上には、文字列や直線、そしてベジエ曲線も描くことができます。ビューのサブクラスを作って、独自の描画を行う方法を説明します。
ネットワークについても簡単に説明します。実際のところ、ネットワーク越しのデータの読み書きは、Cocoa がすべてを受け持ってくれるため、ほとんど意識する必要はありません。
Mac OS X ではアプリケーションは、アプリケーション・パッケージと呼ばれるフォルダに納められます。このフォルダの構造や、ローカライズについて説明しましょう。
ドキュメントを利用するアプリケーションは、ドキュメント・ベース・アプリケーションという機構を使うことで、簡単に作ることができます。ドキュメントをオープン、セーブするたタイプのアプリケーションを説明します。
Cooca は強力な画像処理のクラスも持っています。画像のオープン、描画、保存などを説明します。
また、テキスト編集のための機能も豊富です。実際、簡単なテキストエディタは、コードを 1 行も書かずに作ることができてしまいます。同時に日本語を扱う上で欠かせない、エンコーディングについても説明しましょう。
これだけのことが説明されます。これだけあれば、たいがいのアプリケーションは作れますよね。
実践的なサンプル
これだけでは、ありません。各章の終わりには、実践的なサンプルアプリケーションを用意しました。これらは、少し高度なレベルのプログラミングを必要とします。いくつかの機能は、この本の範囲を超えるため、説明を簡略化しているものもあります。ですが、ソースコードにはコメントを多く入れたので、ていねいに読めば理解できると思います。
その一部を紹介しましょう。
CPU モニタ
現在の CPU の使用状況を表示します。コントロール GUI を用いた、シンプルなアプリケーションの例です。
アプリケーションモニタ
現在、起動中のアプリケーションの一覧を表示します。
ラウンチャ
登録されたアプリケーション、ドキュメントを起動します。
ファイルブラウザ
ディスク上のファイルをブラウズします。テーブル、アウトライン、ブラウザの 3 つの形式があります。Finder のようなアプリケーションです。
ペイント
絵を描くためのペイントアプリケーションです。マウスでドラッグして、四角、円、直線を描きます。
画像ビューワ
画像を選択、表示するアプリケーションです。左側にサムネイル一覧を表示し、クリックして選択すると、右側に大きく表示されます。
テキストエディタ
フォントの設定に対応した、テキストエディタです。エンコーディングを指定して、ファイルを開くことができます。単純な HTML ファイルを開くこともできます。
どうです?実際にアプリケーションが作れそうな気がしませんか。これらのサンプルが、ある程度 Cocoa の使い方を覚えた人の「次の一歩」になると思います。
HMDT の本は、こんな感じの本です。初心者から読めるようにしましたが、末長く使えるような本にしたつもりです。よろしければ、発売したら手に取ってみて下さい。
|