iPhoneアプリ開発のコツとツボ35

概 要

著者の前著「iOSデバッグ&最適化技法 for iPad/iPhone」に続く第二弾は、入門書ではとうてい説明しきれない、iPhoneアプリ開発のツボとコツを実践的に解説したプログラミングガイドです。入門書では解説しない「なぜそのメソッドを使うのか」「なぜそのようなコードを使うのか」「なぜアプリの動作がそうなるのか」まで踏み込んで、実際のアプリケーションを例にして考え方やテクニックをひとつひとつ具体的に解説していきます。また、書籍では収録しきれなかったC言語やObjective-C言語の超入門解説編をPDFファイルにして、サンプルプログラムと共にダウンロードサービスで提供します。本書はXcode 4.3の環境で執筆および動作確認をしています。

著者 國居貴浩
価格 本体3000円(税別)
ISBN 978-4-7980-3323-5
発売日 2012/3/30
判型 B5変
色数 2色
ページ数 592
CD/DVD
対象読者 中級
シリーズ
表紙イメージ
購入 アマゾンで購入する
楽天で購入する

※リンク先によっては、販売ページが用意されていないことがあります。あらかじめご了承ください。

新しいウィンドウで開く 書籍購入のご案内

サポート

サポート情報は以下からご参照下さい。

サポート情報へのリンク

目次

Q00 XcodeでiPhone/iPadアプリケーションを作成するには?

1 Xcodeの起動

2 iOSプロジェクトテンプレート選択

3 情報設定

4 シミュレータ実行

Q01 iOSアプリケーションの骨格とは?

1 プロジェクトBackboneの作成

2 StudyAppDelegate.m/hの削除

3 UIApplicationそのままのRun

4 新しいデリゲートの用意

5 UIApplicationMainの引数の変更

6 コンソールへの出力

7 オンラインヘルプの使い方

8 UIWindowの作成

Q02 画面を通してユーザーと対話するには?

1 プロジェクトInteractiveの作成

2 UIWindow派生クラスを用意する

3 -drawRect:メソッドのオーバーライド

4 windowのクラスを変更

5 タッチイベントをキャッチしてみる

6 どこをタッチされたか調べる

7 タッチに連動して画面を変化させる

Q03 UIViewを入れ子状に配置するには?

1 プロジェクトViewInViewの作成

2 2つのUIViewインスタンスを作成

3 親UIViewの矩形でクリップ

4 addSubviewの順序

Q04 タッチの感知とUIViewの位置関係はどのようになっているのか?

1 プロジェクトViewInViewTouchの作成

2 UIView派生クラスInteractiveViewを定義

3 複数のInteractiveViewをwindowに配置する

4 overViewの位置を一番後ろにする

5 UIViewの透明度の設定

6 タッチを無視するには

7 透明でも、タッチイベントは取りたい場合には

Q05 UIViewにボタンの機能を追加するには?

1 プロジェクトTargetActionの作成

2 UIView派生クラスButtonの定義

3 ターゲット/アクションデザインパターンの実装

4 ターゲット/アクションデザインパターンで色パレットを作る

Q06 ボタンらしい振る舞いとは?

1 プロジェクトTargetActionの拡張

2 全てのタッチイベント対応メソッドの実装

3 ドラッグの監視

4 複数のターゲット/アクション

Q07 スライダのように連続して値を変えるには?

1 プロジェクトPalletの作成

2 UIView派生クラスPalletの定義

3 ターゲット/アクションデザインパターン担当クラスの用意

4 どのUIViewがタッチされているかを調べる

Q08 色パレットをCALayerで作るには?

1 プロジェクトPalletの更新

2 CALayer版-hitTest:

3 QuartzCoreフレームワークの追加

4 CALayerの外観の変更

Q09 反応をアニメーションで表示するには?

1 プロジェクトSliderの作成

2 UIView派生クラスSliderの定義

3 暗黙のアニメーションの制御

4 CALayerの外観の変更

Q10 CALayerに独自の外観を持たせるには?

1 プロジェクトCustomLayerの作成

2 デリゲートデザインパターンを利用してのcontents加工

3 CALayer派生クラスによるcontents加工

4 contentsの直接加工

5 別のCALayerによるマスキング

Q11 落書き帳はどうやって作る?

1 プロジェクトCanvasの作成

2 UIView派生クラスCanvasViewの定義

3 タッチでオフスクリーンに描画

4 UIScreenクラスから画面情報を取る

Q12 別のプロジェクトのソースを自分のプロジェクトで使うには?

1 プロジェクトCanvasWithPalletの作成

2 PalletとCanvasViewの組み込み

Q13 画面上に別のUIViewをスライドインさせるには?

1 プロジェクトSlideInの作成

2 UITapGestureRecognizerによるタップ検出

3 UIViewのアニメーション

Q14 既存の画面アイテムを組み合わせて新しい画面アイテムを作るには?

1 プロジェクトSlideInの拡張

2 Palletの拡張

3 UISliderでの実験

4 背景UIViewのカスタマイズ

Q15 状況に応じて画面を切り替えるには?

1 プロジェクトSlideInの拡張

2 Extendable PalletViewへのデリゲートデザインパターン実装

3 デリゲートオブジェクト側の実装

4 複数の色パッチ編集画面アイテムを切り替える

5 プロトコル定義によるデリゲートデザインパターンの仕上げ

Q16 iOSアプリケーション終了後も値を記録するには?

1 プロジェクトSandboxの作成

2 アプリケーションのサンドボックス

3 Documentsディレクトリへのファイル書き出し

4 NSUserDefaultsを使った保存

5 NSUserDefaults 対 独自ファイル

Q17 画像をファイルにしたり読み込んだりするには?

1 プロジェクトImagingの作成

2 UIImageをPNGファイルとして書き出す

3 UIImageをJPEGファイルとして書き出す

4 JPEG/PNGファイルを読みこんでUIImageを作成する

5 UIImageViewを使いUIImageを表示する

Q18 アプリケーションの切り替え時に呼ばれるメソッドは?

1 プロジェクトLifeの作成

2 呼び出されるメソッドの確認

3 利用すべきメソッドの検討

Q19 重複しないファイル名をどうやって決めるか?

1 プロジェクトFilenameの作成

2 番号付けによるファイル名自動生成

3 専用ディレクトリの作成

4 ディレクトリ内のファイルのリストアップ

5 ファイルの削除

6 日付を使ったファイル名自動生成

7 希望する日付形式の指定

8 日付を使う場合の問題点とその対応

Q20 関連する情報を記憶するには?

1 プロジェクトContainerの作成

2 NSDictionary、NSArrayインスタンスを作る

3 NSDictionaryインスタンスをNSArrayの要素として収納する

4 NSArrayのファイルへの書き出しと読み込み

5 NSMutableArrayクラスの利用

6 NSMutableArrayへのオブジェクト追加収納

7 NSMutableArrayからの収納オブジェクトの削除

8 NSMutableDictionaryクラスの利用

9 NSMutableDictionaryからの収納オブジェクトの削除

Q21 ツールバーはどうやって作るのか?

1 プロジェクトToolBarの作成

2 ツールバーの作成と貼付け

3 ツールバーへのボタン埋め込み

4 ボタン配置の便利な指定方法

5 ボタンを押された時の処理

6 ボタンを利用できないようにするには

Q22 画像ファイルを一覧するには?

1 プロジェクトThumbnailの作成

2 ThumbnailViewクラスの作成

3 テスト用ダミー画像ファイルの準備

4 縮小画像の作成

Q23 場面転換のように画面を差し替えるには?

1 プロジェクトFlipflopの作成

2 切り替える2つのUIViewの準備

3 2つのUIViewの切り替え

4 アニメーション付きでの切り替え

5 ThumbnailViewの組み込み

Q24 画面より大きな領域を表示するには?

1 プロジェクトThumbnailの拡張

2 contentSizeの設定

3 表示領域だけの更新

4 表示領域の画像だけを保持する

Q25 ユーザーにあらかじめ用意した選択肢を問い合わせるには?

1 プロジェクトAlertの作成

2 UIAlertViewの表示

3 押されたボタンを判別する

Q26 iPhone/iPadどちらでも動くようにするには?

1 プロジェクトCanvasWithPalletのiPad対応

2 iPad版UIActionSheet表示方法

3 iPhone/iPad、どちらで動いているのかを判断するには

Q27 iPhone/iPadの回転に自前で対応するには?

1 プロジェクトRotateの作成

2 回転の見張り

3 回転に合わせてステータスバーを回転させる

4 UIViewを回転させる

5 回転をアニメーションでおこなう

6 UIViewControllerを導入

7 StudyAppDelegateでUIViewController派生クラスを使用する

Q28 UIViewControllerとUIViewの関係は?

1 プロジェクトHeartの作成

2 HeartViewControllerがUIViewを作成するタイミング

3 UIViewControllerのUIViewに対する役割り

4 UIViewController同士を使った画面遷移

5 画面遷移アニメーションの選択

6 画面遷移のタイミングに合わせた動作

Q29 ナビゲーションバー付き画面にするには?

1 プロジェクトHeartの拡張

2 ドリルダウンでの画面遷移

3 ナビゲーションバーとUIViewControllerのnavigationItemの関係

4 ナビゲーションバーへのボタン追加

5 ドリルダウンした画面からのポップのバリエーション

6 現在位置の調べ方

7 ドリルダウンの自動実行

8 少し特殊な戻るボタンの加工

9 ツールバーも装備されている

Q30 複数の画面を並行して管理するには?

1 プロジェクトHeartの拡張

2 UITabBarControllerインスタンスの用意

3 タブバーとUIViewControllerのtabBarItemの関係

4 最初に選ばれているタブの指定

5 タブが選ばれるまでは選ばれていない側のviewは作られない

Q31 一覧表を表示するには?

1 プロジェクトTableの作成

2 UITableViewの作成

3 1項目ごとに画面アイテムUITableViewCellを提供する

4 項目の削除

5 編集/非編集モードの切り替え

6 項目の追加

7 画面上の項目と内部データの連動

8 プロジェクトTableControllerの作成

9 UINavigationControllerとの連携

Q32 文字を入力するには?

1 プロジェクトTextfieldの作成

2 キーボードがUITextFieldを隠さないようにする

3 キーボードを閉じる

4 リターンキーボタンタップを見張る

5 UITableViewを使う方法

6 タイトル・メモ編集用のUITableViewController派生クラスの作成

7 UITextViewDelegateプロトコルの実装

Q33 既存の画像ファイルやサウンドファイルを使うには?

1 プロジェクトCameraの作成

2 アプリケーションへのファイルの埋め込み

3 ディレクトリ階層を残してアプリケーションバンドルディレクトリにコピー

4 XIBファイルの作成と利用

5 XIBファイルの読み込み

6 IBOutlet

7 IBAction

Q34 多言語対応するには?

1 プロジェクトLocalizeの作成

2 InfoPlist.stringsの多言語対応

3 NSLocalizedStringを使った多言語対応

4 XIBファイルの多言語対応

5 ファイルの多言語対応

Q35 落書きアプリケーションGraffitiの構造はどうなっている?

1 落書きアプリケーションプロジェクトGraffitiの説明

2 動作と主な画面・およびビューコントローラ

3 モデル部

4 画面との連携

5 Xcodeのデバッガを利用した調査

6 アプリケーションの仕上げ

PR

秀和システム