Effective Objective-C 2.0(長尾 高弘 長尾 高弘 長尾 高弘 Matt Galloway)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. Effective Objective-C 2.0

Effective Objective-C 2.0

監修
翻訳
原著

形式:
書籍
発売日:
ISBN:
9784798134192
定価:
3,520(本体3,200円+税10%)
仕様:
B5変・264ページ
カテゴリ:
プログラミング・開発
キーワード:
#プログラミング,#開発環境,#開発手法,#Web・アプリ開発

軽量で高速かつメンテナンスしやすいプログラムを書くための52の方法

Appleプロダクト(iOSやiPhone、iPad上で動作するアプリケーション)を作るなら、Objective-Cの習得は欠かせません。また、作ったアプリケーションをApp Storeでリリースするのであれば、素早くダウンロードでき、サクサク動作する質の高いものにすべきです。

本書はクセの強いプログラミング言語“Objective-C”の、入門書には書かれていない52の実践向きノウハウを、さまざまなサンプルで詳解し、プロとしての知識を与えてくれる1冊です。

第1章 Objective-Cに慣れる

項目1 Objective-Cのルーツを知る
項目2 インポートされるヘッダーに含まれるヘッダーの数は最小限に抑える
項目3 メソッドよりも同じ意味のリテラル構文を使う
項目4 プリプロセッサの#defineではなく型付き定数を使う
項目5 状態、オプション、ステータスコードにはenumを使う

第2章 オブジェクト、メッセージング、ランタイム

項目6 プロパティの理解
項目7 インスタンス変数にクラス内でアクセスするときは直接アクセスする
項目8 オブジェクトが等しいとはどういうことかを理解しよう
項目9 実装の詳細を隠すために、クラスクラスタパターンを使う
項目10 既存のクラスにカスタムデータを追加するにはAssociated Objectを使う
項目11 objc_msgSendの役割を理解する
項目12 メッセージの転送を理解する
項目13 不透明なメソッドのデバッグではメソッドのSwizzlingを使うことを検討する
項目14 クラスオブジェクトとは何かを理解する

第3章 インターフェイスとAPI設計

項目15 名前空間の衝突を避けるためにプレフィックス名を使う
項目16 指定イニシャライザを用意せよ
項目17 descriptionメソッドの実装
項目18 できるだけイミュータブルなオブジェクトを使う
項目19 明快で首尾一貫した名前を使う
項目20 非公開メソッド名にはプレフィックスを付ける
項目21 Objective-Cエラーモデルを理解する
項目22 NSCopyingプロトコルを理解する

第4章 プロトコルとカテゴリ

項目23 オブジェクト間通信には、DelegateとData Sourceプロトコルを使う
項目24 カテゴリを使ってクラスの実装を管理できるサイズに分割せよ
項目25 サードパーティクラスに追加するカテゴリで使う名前にはかならずプレフィックスを付ける
項目26 カテゴリではプロパティを使わないようにする
項目27 実装の詳細を隠すためにクラス延長カテゴリを活用せよ
項目28 プロトコルを使って無名オブジェクトを提供せよ

第5章 メモリ管理

項目29 参照カウントを理解する
項目30 ARCを使って参照カウントを楽にする
項目31 deallocではリファレンスを開放して監視状態をクリーンアップする
項目32 例外セーフコードによるメモリ管理には注意が必要
項目33 循環参照を避けるために弱参照を使う
項目34 メモリ最高使用水準を下げるために自動開放プールブロックを使う
項目35 メモリ管理上の問題をデバッグするときにはゾンビが役立つ
項目36 retainCountは使わないようにする

第6章 ブロックとGCD

項目37 ブロックを理解する
項目38 よく使うブロック型にはtypedefを作る
項目39 コードの分断を避けるためにハンドラブロックを使う
項目40 ブロックでオーナーオブジェクトを参照し循環参照を引き起さないようにする
項目41 同期の確保では、ロックよりもディスパッチキューを使う
項目42 performSelectorファミリのメソッドではなくGCDを使う
項目43 GCDやオペレーションキューをいつ使うか
項目44 プラットフォームのスケーラビリティ活用のためディスパッチグループを使う
項目45 スレッドセーフなコードのワンショット実行にはdispatch_onceを使う
項目46 dispatch_get_current_queueは避ける

第7章 システムフレームワーク

項目47 システムフレームワークに慣れよ
項目48 forループではなく、ブロックの反復処理を使う
項目49 カスタムのメモリ管理属性を指定したコレクションを作るためにToll-free bridgeを使う
項目50 キャッシュではNSDictionaryではなくNSCacheを使う
項目51 initializeとloadの実装は軽くする
項目52 NSTimerがターゲットを保持することを忘れずに

本書は付属データの提供はございません。

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

追加情報はありません。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2014年02月07日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 147
アミカケ部分の2つめ 1行目
// 強いインスタンス変数として_myPersonを持つクラスより
// 強いインスタンス変数として_myPersonを持つクラスより
2014.02.07
1刷 210
下から2行目
ディスパッチグルーにまとめ、
ディスパッチグルーにまとめ、
2014.02.07

感想・レビュー

kosugi さん

2014-03-10

Effective Java のノリで読むと肩透かしを食う. 「項目 7 で詳しく説明するが、init (または dealloc) メソッドでアクセッサを使うことはできないのだ」って, 別に「できない」というニュアンスじゃないし. メモリについて「開放」と「解体」は release/dealloc で使い分けてるのかな. p52 末尾呼び出しの最適化についてはゾクゾクした.

color_box さん

2015-01-01

Objective-Cのノウハウがこれでもかと詰め込まれた本。 割とおろそかにしていたメモリ管理やGCDなどについて深く学べた。 またObjective-CをやるにはC言語をきっちりやっておかねばならないという思いが一層強まった。 Objective-Cやる人は読んでおいて損の無い一冊。 即効で役に立つというわけではないだろうけど、長期的に考えてじわじわ役に立つこと間違いなし。

ななみ さん

2014-01-03

読みやすくてとても勉強になった。確かにそれほど難しいことは書かれていないけど、副題にある「プログラミングをスムーズに行うための」という書き方がズバリ当てはまる感じ。本書を読んでも何か新しいことができるようにはならないだろうけど、きちんと理解して実践すれば面倒な揉め事を減らせそう。そういう意味では対象読者を選ぶかも?