読書メモ

・「たのしいCocoaプログラミング
(木下誠 :著、BNN \2,800) : 2011.08.03

「Cocoa」はMacOSXから登場したフレームワーク。プログラムはObjective-Cで書く。 Objective-CはC言語にSmalltalkスタイルのオブジェクト指向を加えた。 Objective-CからC++を使えるようにしたのが、Objective-C++。
・MacOSX:10.4.9
・統合開発環境Xcode:2.4.1
・Interface Builder:2.5.4
をベースに解説。

○ポイント
・Interface Builder:GUIのレイアウトを行なうデザイナソフト
・nibファイル:Interface Builderで作成したファイル。nibを変更しただけではソースコードには反映されない。同期が必要。
・アイコン、バージョン番号、インストーラ。
・PackageMaker:インストーラ作成ツール
・Carbon:MacOS9で動いていたアプリをOSXでも動くようにするために用意されたフレームワーク。プログラムはC言語で書く
・otool:アプリが利用しているフレームワークを調べるコマンド
・Objective-C以外のCocoa API
・Cocoa-Java:JavaのためのCocoa API。サポートはOSX10.4で打ち切られる
・RubyCocoa:RubyからCocoaを利用できる。OSX10.5で標準搭載。Rubyで書かれた便利なライブラリに、Macらしいユーザインターフェースを被せて使う。 RubyやPythonには標準のGUIフレームワークがないため、Cocoaを使う。
・PyObjC:PythonとObjective-Cのブリッジ
・ブリッジ経由でCocoaを操作
・バンドル:コンパイル、リンクしてできた実行ファイルと、リソース(画像、GUIレイアウト、アプリ情報など)をまとめてアプリを作る操作
・アウトレット:MVCのビューとコントローラの間に関連を作るもの。コンセントの意味。コントローラはアウトレットを使ってビューにアクセスする
・アクション:GUIのボタンを押したときの通知を受け取るもの。ビューからユーザの操作を受け取る。ビューにアクションを登録する。操作があると登録したアクションが呼び出される。
・MVCアーキテクチャのV(ビュー)をCocoaが提供
・FileMerge:ファイルの差分を比較
・NSObjectにはObjective-Cのすべてのオブジェクトに共通するデータが含まれる。これを表わす変数型がid型。すべてのオブジェクトはid型の変数に代入できる
・nil:C言語のNULL
・Cocoaのクラスが宣言しているインスタンス変数はアンダースコアで始まる。アンダースコアで始める変数名はAppleが予約している。
・メソッド名の命名規則:最初の文字は小文字。単語をつなぐときはアンダースコアを使わず、単語の頭を大文字にする
・retain(オブジェクトを保持する、参照する)
・コレクション・クラス:複数のオブジェクトをまとめておくためのクラス
・ガベージコレクション:Objective-C2.0で搭載された
・辞書:オブジェクトの集合を取り扱う
・データソース:データを提供するオブジェクト
・NSLog:C言語のpritfみたいなもの
・Xcodeでデバッガを使うにはビルド構成を「Debug」にする
・例外を積極的に使ったプログラミングは避ける。Cocoaには例外を投げるメソッドはいくつかあるが、できるだけ発生させないことが推奨されている。 Cocoaでの例外は致命的なエラーとほぼ同じ。try、catchはあくまで例外の発生箇所を調べる目的で使用する。
・ゼロリンク:デバッグ時にわざとリンクしないでビルド時間を短縮するために使う
・ディスクイメージ:イメージを作るには「ディスクユーティリティ」を使う
・インストールパッケージは実体はフォルダ
・コンテキストメニュー:ポップアップメニュー。ボタン1つのマウスではコントロールキーを押しながらクリック。コンテキストボタン(歯車の絵)でも可。
・Cocoaと親和性の高いフレームワーク:Web Kit、QuickTime Kit、PDF Kit

-目次-
Part 0 開発環境の設定
Part 1 アプリケーションのプログラミング
Part 2 Hello World!:はじめてのCocoaアプリケーション
Part 3 C言語とObjective-C
Part 4 Cocoaの様々なクラス
Part 5 デバッグとアプリケーションの仕上げ