『iOSアプリ開発 達人のレシピ100』のレシピ一覧

拙著『[iOSアプリ開発 達人のレシピ100](http://www.amazon.co.jp/exec/obidos/ASIN/4798038180/22301-22/ref=nosim/)』という書籍の内容のまとめです。

![](http://f.cl.ly/items/0K2n1y1N0q0C1e0V0s2O/IMG_4397_r1_c1.jpg)

##Chapter1 アニメーション／演出

###001 CATransform3D を用いて3D 表現をおこなう
![](http://f.cl.ly/items/1P1Q2W2U020c2j31160u/CATransform3D_all_r1_c1__.png)

###002 3Dアニメーション

###003 UIKit で物理演算エンジンを使用する
![Box2D_r1_c1.png](http://f.cl.ly/items/3s2u2N3j2z3j1v432b0W/Box2D_r1_c1_r1_c1_r1_c1.png)

###004 UIKit 上でパーティクルエフェクトを表示する
![](http://f.cl.ly/items/2Y3E362K3Z0v0F3F0Y0B/particle3_r1_c1_r1_c1.png)

###005 Core Image の遷移エフェクトを使う
![](http://f.cl.ly/items/412R0N0p3T2W0k3v2Z0G/CoreImageTransition___r1_c1.gif)

###006 パスに沿ってアニメーションさせる
![PathAnimation1.png](https://qiita-image-store.s3.amazonaws.com/0/3180/63ee5130-d5e8-5ba5-de53-2ff149561b40.png)

###007 グラデーションカラーをアニメーションさせる
![](http://f.cl.ly/items/1U2s3d0S0L320U011I3E/GradationAnimation_r1_c1.png)

###008 画面を揺らすエフェクト

###009 クロスディゾルブで画面遷移

###010 UIView のBlocksアニメーションをキャンセルする

###011 トゥイーンライブラリを使用する：PRTween

###012 トゥイーンライブラリを使用する：AHEasing
![AHEasingRotate_org_r1_c1_.png](http://f.cl.ly/items/2d0Q0W0R3w3v0w2f2O2f/AHEasingRotate_org_r1_c1__r1_c1.png)


##Chapter2 画像処理／色処理

###013 OpenCV for iOS を使う
###014 vImageで画像処理をおこなう
###015 シャッター音の鳴らないカメラアプリを実装する
###016 カメラにフォーカスと露出をタップで合わせる機能をつける
###017 Core Image の各フィルタのパラメータの詳細を調べる
###018 Core Imageでノイズ/チェッカーボード/ストライプ等のパターンを生成する
![CoreImagePatterns1_r1_c1.png](https://qiita-image-store.s3.amazonaws.com/0/3180/98ff3b96-d792-e11f-b28b-b3f5169ffac2.png)

###019 トイカメラのようなトンネルエフェクト（ビネット効果）を写真に加える
![](http://cdn-ak.f.st-hatena.com/images/fotolife/s/shu223/20130527/20130527041234.png?1369595561)

###020 画像をポスタライズ（色数を減らす）する
![](http://cdn-ak.f.st-hatena.com/images/fotolife/s/shu223/20130527/20130527040329.png?1369595018)

###021 画像にモザイクをかける
![](http://cdn-ak.f.st-hatena.com/images/fotolife/s/shu223/20130527/20130527035948.png?1369594796)

###022 UIBezierPathでパスを描画する
###023 SVGファイルをUIBezierPath オブジェクトに変換する
![](http://f.cl.ly/items/1S2L2j3E0u0A0a2i3b1I/buttons_screenshot_r1_c1_.png)

###024 画像を多角形で切り抜く
![BezierCrop1__r1_c1.png](https://qiita-image-store.s3.amazonaws.com/0/3180/8ffeca17-be53-4517-88c8-8e39066e8155.png)

###025 プログラムからスクリーンショットを撮影する

###026 画像の4 角を維持したまま拡大縮小する（9スライス）
![9Slice0.png](https://qiita-image-store.s3.amazonaws.com/0/3180/de2734d8-bd0d-e93e-a19b-9b8af6eec97e.png)

###027 Core Graphics を用いてグラデーションを描画する
![](http://cdn-ak.f.st-hatena.com/images/fotolife/s/shu223/20130527/20130527034756.png?1369594090)

###028 UIColor の重ね合わせ/CSSカラー名での色指定をおこなう
###029 配色技法に基づいた色のセットを自動生成する
![ColorScheme1_r1_c1.png](http://f.cl.ly/items/1G08130t0V1z1V0A0R2N/ColorScheme1_r1_c1.png)


##Chapter3 オーディオ処理

###030 OpenALで3D 空間に音源を配置する
###031 デバイスのボリュームボタンの操作を検出する
###032 ヘッドフォンジャックの抜き差しを検知する
###033 バイブを鳴らす
###034 システムボリュームに左右されない音量でシャッター音を鳴らす
###035 AVAudioRecordを用いてマイクに入力された音声を録音する
###036 AVCapture を用いてマイクに入力された音声を録音する


##Chapter4 UI

###037 3D 表現を用いたUI
![FlipSample1_r1_c1.png](https://qiita-image-store.s3.amazonaws.com/0/3180/5713b196-d427-204d-d436-e1b2b8103a36.png)

###038 UINavigationController の遷移アニメーションをカスタマイズする
###039 バウンスさせてビューを出す
###040 PathやFacebookライクなスライドメニューを実装する
![](http://cdn-ak.f.st-hatena.com/images/fotolife/s/shu223/20130527/20130527040501.png?1369595108)

###041 数値をバッジで表示する
![Badge2.png](https://qiita-image-store.s3.amazonaws.com/0/3180/5e273c28-1ac7-e1d9-5464-d6629192b57b.png)

###042 スクロール付きタブバーを実装する
###043 UIAlertViewを左寄せにする
![AlertViewLeft1_r1_c1.png](http://f.cl.ly/items/3W0x0s2x3S2p3v3D1U0T/AlertViewLeft1_r1_c1.png)

###044 UIView サブクラスをxibファイルから生成する
###045 xibファイルのローカライズをInterface Builder上でできるようにする
![](http://cdn-ak.f.st-hatena.com/images/fotolife/s/shu223/20130527/20130527035354.png?1369594439)

###046 背景色にビルトインテクスチャを適用する
![](http://f.cl.ly/items/0q1i2l1k1F0l1Y3j2h3a/BGPattern_iOS6__r1_c1_r1_c1.png)

###047 GLKitを用いて描画処理を高速化する
###048 画面の解像度の種別を判定する
###049 Core Plot で折れ線グラフを描画する
![CorePlot1_3_r2_c2.png](https://qiita-image-store.s3.amazonaws.com/0/3180/1166c94c-c82e-c79f-5c49-1e65b25e736b.png)


##Chapter5 テキスト

###050 自然言語のテキストを属性で区分する
![](http://f.cl.ly/items/0w2W0A3Z0q3Z0e2x0C3z/LinguisticTagger0_r1_c1.png)

###051 正規表現を使う
###052 UILabelでのテキスト表示をリッチにする
###053 UILabel ／ UITextView ／ UITextFieldのテキストをNSAttributedStringで装飾する
![AttributedText1.png](https://qiita-image-store.s3.amazonaws.com/0/3180/d29fa820-0a47-45da-a6d2-86ba705e2354.png)

###054 UILabel のテキストに効果をかける
![](http://f.cl.ly/items/1C0C3i2O150D2Z3q2V1h/FXLabel4_r1_c1.png)

###055 UILabel の文字列を立体的に見せる
![](http://cdn-ak.f.st-hatena.com/images/fotolife/s/shu223/20130527/20130527040939.png?1369595385)

###056 UIWebView からアプリ内に入れたカスタムフォントを使う
###057 UITextView やUIButton のテキスト位置を調整する
###058 UILabel ／ UITextView の高さを調整する
###059 英単語の単数形／複数形変換をおこなう
###060 UITextField への入力時にキーボードではなくピッカーを出す
![](http://cdn-ak.f.st-hatena.com/images/fotolife/s/shu223/20130527/20130527035821.png?1369594706)


##Chapter6 位置情報

###061 Google Maps SDK for iOS を使用する
![](http://cdn-ak.f.st-hatena.com/images/fotolife/s/shu223/20130527/20130527035607.png?1369594597)

###062 MKAnnotationView のコールアウト（吹き出し）をカスタマイズする
![](http://f.cl.ly/items/3i0p2g3n3I2m1g070f0D/CustomCallout_r1_c1.png)

###063 MKMapView のピンをタップせずにコールアウトを出す
###064 指定方向に指定距離離れた場所の緯度経度を計算する
![CLLocationCalc_r1_c1.png](http://f.cl.ly/items/3r270K1X320m3p0y2f10/CLLocationCalc_r1_c1.png)

##Chapter7 WEB サービス連携

###065 UIActivityViewController の連携アプリを追加する
![](http://cdn-ak.f.st-hatena.com/images/fotolife/s/shu223/20130527/20130527041046.png?1369595460)

###066 カスタムUIAcitivityを実装する
![](http://f.cl.ly/items/3e3l0r1O0N1n3v0D1C0H/CustomUIActivity2_r1_c1.png)

###067 UIWebViewで表示中のHTMLコンテンツを取得する
###068 App Store のAPI からアプリの最新バージョンを取得する
###069 ユーザーにApp Store のレビュー投稿を促す
![](http://cdn-ak.f.st-hatena.com/images/fotolife/s/shu223/20130527/20130527035137.png?1369594303)


##Chapter8 デバッグ

###070 Instrumentsを使わずに空きメモリ／使用メモリ／ CPU 負荷を取得する
###071 使用メモリ量やCPU 負荷をリアルタイムにアプリUI 上に表示する
![](http://cdn-ak.f.st-hatena.com/images/fotolife/s/shu223/20130527/20130527040814.png?1369595300)

###072 例外発生時にスタックトレースを出力する
###073 クラス名／メソッド名／コード内の何行目かをログ出力する
![](http://f.cl.ly/items/2k0T0r3P2f422c2H202a/DebugLogMacro_r1_c1.png)

###074 静的アナライザによる解析を特定のファイルで無効にする
###075 アプリ内でログを閲覧する
![ConsoleSample_r1_c1_r1_c1.png](https://qiita-image-store.s3.amazonaws.com/0/3180/97998a13-80bc-7ba1-5886-f1271775a815.png)

##Chapter9 開発ツール

###076 クラスの依存関係を図示する
![](http://f.cl.ly/items/3a402w2n2n3D1q1S1V2b/DepSample.png)

###077 ドキュメントを自動生成する
![appledoc1_r1_c1.png](https://qiita-image-store.s3.amazonaws.com/0/3180/1756b9c5-25a4-0840-a01a-8ce4adff12e8.png)

###078 CSVファイルからスクリプトでplistを生成する
###079 otoolでアプリが使っているフレームワークの一覧を取得する
###080 Apple の開発用ツールをXcodeメニューに追加する



##Chapter10 Xcode

###081 Xcode のファイルテンプレートを自作する
###082 Xcode のFunction Menu にコメントを表示する
###083 Xcode のRun Scriptを特定のConfigurationに対してだけ実行する
###084 Xcodeマクロ($(SRCROOT)や$(BUILD_DIR)等)の置換内容の一覧を調べる
###085 Xcode 4 のCode Snippet Libraryにコードスニペットを追加する
![](http://cdn-ak.f.st-hatena.com/images/fotolife/s/shu223/20130527/20130527040614.png?1369595183)

###086 ARC の有効／無効をファイルごとに設定する
###087 1つのプロジェクトで複数のBundle identifierを使い分ける
###088 カラーテーマファイルを用いてXcodeのエディタのカラーをカスタマイズする


##Chapter11 その他

###089 デバイスにインストールされているアプリ一覧を取得する（方法その1）
###090 デバイスにインストールされているアプリ一覧を取得する（方法その2）
###091 .ipa ファイル生成を自動化する
###092 1行でiOSバージョンを判定する
###093 zipファイルを解凍する
###094 CSVファイルを読み込む
###095 通知名の有無をチェックする
###096 NSUserDefaults の内容を一括消去する
###097 構造体をNSDictionary やNSArray に格納する
###098 オブジェクトが持つプロパティの型と名前の一覧を取得する
###099 浮動小数点数の乱数を生成する
###100 GCD を用いてバックグラウンドで処理を遅延実行する


##補足
- **ほぼすべてのレシピにサンプルコード**がついています。
- iOS6対応
- 電子書籍版は、企画発生当初よりお願いしているのですが、いろいろとハードルがあるらしく、まだ**今のところ予定がありません**。。


##ご購入
- [Amazon](http://www.amazon.co.jp/exec/obidos/ASIN/4798038180/22301-22/ref=nosim/)
- [近隣のリアル店舗における在庫の有無を調べる](https://takestock.jp/book/4798038180/search/)


##こちらもどうぞ
[『iOSアプリ開発 達人のレシピ100』という本を書きました](http://d.hatena.ne.jp/shu223/20130528/1369714635)