iPhone & iOS アプリプログラミング パーフェクトマスター

概 要

iPhoneアプリ制作の入門者から、iPhoneアプリ制作の知識を一通り身につけたい中級者を対象に、アプリ開発の知識を基礎から応用まで幅広く解説した解説書です。本書は、iPhoneアプリ開発に必要なツールであるiOS SDKを含むXcodeの設定から、Objective-C言語の基礎、オブジェクト指向プログラミングやiPhoneアプリの開発手順についてフルカラーの図解でわかりやすく解説しています。特に、iPhoneの開発はオブジェクト、クラス、メソッド、プロパティ、継承、オーバーライドなどのテクニックが頻繁に出てくるため、これらのオブジェクト指向プログラミングについて、基礎から応用にいたるまで詳細に説明しています。サンプルデータのダウンロードサービス付き。

著者 金城俊哉
価格 本体2800円(税別)
ISBN 978-4-7980-3654-0
発売日 2013/1/31
判型 B5変
色数 4色
ページ数 776
CD/DVD
対象読者 中級
シリーズ パーフェクトマスター
表紙イメージ
購入 アマゾンで購入する
楽天で購入する

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

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

サポート

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

サポート情報へのリンク

目次

Chapter 1 iOSとiPhone

1.1 iOSを搭載したiPhone

1.1.1 iOSの概要

iOSとは

iOSの誕生からこれまでの経緯

iOSの役割

iOSでアプリケーションが動作する仕組み

1.1.2 アプリケーションにおけるiOSの利用

1.1.3 iOSとAndroidとの比較

1.1.4 iOSを搭載したiPhone

Chapter 2 iPhoneアプリの開発環境の準備

2.1 iPhoneアプリの開発に必要なツール

2.1.1 iOS SDK

2.1.2 「Apple Developer」への登録

Apple IDについて

Apple IDを作成してApple Developerの登録を行う

2.1.3 Xcodeのダウンロードとインストール(App Store利用編)

App StoreでXcodeをダウンロードしてインストールする

Xcodeを起動する

2.1.4 Xcodeのダウンロードとインストール(dmgファイルの入手編)

Xcodeをダウンロードする

Xcodeを起動する

2.2 プロジェクトの作成

2.2.1 コマンドラインツール用のプロジェクトの作成

コマンドラインツール用のプロジェクトを作成する

コラム プロジェクト作成時の設定項目

プロジェクト作成後の画面

プロジェクトに含まれるファイルを確認する

2.2.2 自動的に作成されるプログラム

自動的に作成されたプログラムを実行する

コンソールの内容を確認する

コンパイルとリンク

コラム ビルドだけを実行する

Runボタンのメニュー

コラム プロジェクトの追加

2.3 Xcodeの操作画面

2.3.1 Xcodeのワークスペース

ナビゲータエリア

編集エリア

デバッグエリア

ユーティリティエリア

ツールバー

コラム ツールバーを非表示にする

タブバー

Chapter 3 Objective-Cの基礎

3.1 プログラミング言語Objective-C

3.1.1 プログラミング言語の役割

コンピュータが2進数を使う理由

ネイティブコードとアセンブリ言語

3.1.2 高水準言語の登場

3.1.3 Objective-Cの概要

Objective-Cの特徴

Objective-Cのメモリ管理

3.2 Ovjective-Cの基本的なルール

3.2.1 ソースコードの基本構造

ソースコードを表示する

ソースコードの基本構造を見る

コメント

import文

コラム コメントの便利な使い方

プログラムで最初に実行されるmain()関数

自動的に作成されたmain()関数を見る

コラム ヘッダファイルの中身を見る

3.2.2 改行とインデント

ソースコード内で改行する目的

インデントを入れる目的

コラム Xcodeで日本語を扱う

3.2.3 ソースコードの記述

画面に文字列を表示するNSLog()関数

コラム プロジェクトナビゲータに何も表示されない場合

ソースコードを記述する

コラム ソースエディタの補完機能を使う

3.3 NSLog()関数の利用

3.3.1 エスケープシーケンス

文字列を改行して表示する

3.3.2 フォーマット指定子

整数の値を10進数で表示する

小数を含む値を表示する

オブジェクトの内容を表示する

3.4 変数

コラム 複数の変数の値を表示する

3.4.1 変数の役割

3.4.2 変数の宣言

3.4.3 値の代入

変数を利用したプログラムの作成

3.4.4 変数の初期化

3.4.5 変数の値の変更

3.4.6 変数名の付け方

コラム 変数宣言時の間違い

3.5 データ型

3.5.1 データ型の種類

整数型

符号なしの整数型

浮動小数点型

文字型

論理型

3.5.2 データ型の指定が必要な理由

コラム 文字コード表

3.5.3 データ型の変換

変数への代入時における自動型変換

計算式における自動型変換

自動型変換の原則

明示的な型変換(キャスト)

コラム char型の自動型変換

3.6 演算子を使った演算

3.6.1 四則演算子

四則演算を行ってみる

コラム カッコの使い方

3.6.2 単項演算子

コラム 算術演算子

コラム 関係演算子

コラム 単項演算子と二項演算子

3.6.3 演算結果の型の決定

3.6.4 インクリメント演算子とデクリメント演算子

前置型と後置型の演算結果の違いを見る

複数の項がある場合の処理

3.6.5 代入演算子

単純代入演算子

再代入時における複合代入演算子の利用

再代入時の初期化の必要性

複合代入演算子における自動型変換

多重代入

複合代入演算子による多重再代入

コラム 複合代入演算子の結合順序

コラム 演算子の優先順位と結合規則

3.7 関数

3.7.1 関数の作成

関数の定義方法

コラム 関数名の付け方

パラメータを取る関数を定義する

戻り値を返す関数を定義する

処理だけを行う関数を定義する

3.7.2 関数の呼び出し

パラメータを取る関数を呼び出す

戻り値を返す関数を呼び出す

処理だけを行う関数を呼び出す

3.7.3 関数プロトタイプ

関数プロトタイプの宣言

関数プロトタイプを使うメリット

3.7.4 変数のスコープ

ローカル変数をグローバル変数

ローカル変数をグローバル変数のスコープ

変数の宣言位置によるスコープの違い

ローカル変数とグローバル変数における初期化の違い

パラメータのスコープ

3.8 条件分岐

3.8.1 条件式で使用する演算子

関係演算子

論理演算子

3.8.2 if文

if文を使用したプログラムを作成する

コラム 条件式の簡易表記

3.8.3 if...else文

制御構造におけるブロック

if...else文を使用したプログラムを作成する

3.8.4 if...else if...else文

if...else if...else文を使用したプログラムを作成する

3.8.5 条件演算子を利用した条件分岐

条件演算子を使用したプログラムの作成

コラム 論理演算子の優先順位と処理順序

3.8.6 switch文

switch文の構造

switch文を使用したプログラムを作成する

条件式とcase句の値を文字にする

条件式とcase句の記述

breakによる処理の終了

関数の戻り値を条件式にする

3.9 繰り返し処理

3.9.1 while文

while文で繰り返し処理を実行する

3.9.2 do...while文

ループ処理を最低1回は行うプログラムの作成

3.9.3 for文

for文で繰り返し処理を行う

設定式の省略

3.10 配列

3.10.1 配列の使い方

配列を使うメリット

配列を宣言する

配列の要素を参照する

3.10.2 配列要素への値の代入

配列に値を代入する

配列に値を代入するプログラムの作成

3.10.3 配列の仕組み

プリミティブ型におけるメモリの使い方

参照型におけるメモリの使い方

3.11 ポインタ

3.11.1 変数や関数のアドレス

変数や関数のアドレスを調べる

コラム ポインタの宣言方法

3.11.2 ポインタの宣言と初期化

ポインタを宣言する

ポインタを初期化する

3.11.3 ポインタによるメモリの操作

ポインタを使って変数の値を参照する

ポインタで変数の値を操作する

コラム アドレスを持たないポインタに値を代入するとエラーになる

3.11.4 ポインタと配列

配列を関数に渡す

配列のアドレスを表示する

&で配列のアドレスを取得する

ポインタで配列のアドレスを取得する

ポインタで配列の値を取得する

ポインタによる値の代入

3.12 構造体

コラム char型による文字列の扱い

3.12.1 構造体を利用したデータ管理

構造体を宣言する

typedefによる構造体名の指定

構造体のメンバに値を格納する

構造体を利用したプログラムの作成

3.12.2 初期化式による代入

初期化式を用いたプログラムの作成

3.12.3 構造体を引数にする

構造体を引数にして関数を呼び出す

構造体を引数にするプログラムの作成

3.13 列挙体

3.13.1 列挙体を利用した列挙定数の定義

列挙体を宣言する

列挙定数への値の設定

列挙体型の変数への値の代入

列挙体を利用したプログラムの作成

Chapter 4 Objective-Cによるオブジェクト指向プログラミング

4.1 クラスの作成と利用

4.1.1 クラスを構成する要素

4.1.2 クラスの作成

インターフェイスセクションを作成する

インプリメントセクションを作成する

メソッドを作成する

4.1.3 クラスの利用

インスタンス変数へ値を代入する

メソッドを実行する

クラスを利用したプログラムを作成する

4.1.4 パラメータを持つメソッドの作成

メソッドに引数を渡して処理を行わせる

ラベルによるパラメータの説明

メソッドのオーバーロード

4.1.5 クラスメソッド

4.2 クラスのカプセル化

4.2.1 カプセル化とは

カプセル化の方法

4.2.2 インスタンス変数のアクセス制限

@privateによるアクセス制限

4.2.3 インスタンス変数への間接的なアクセス

ゲッターとセッターを利用したプログラムの作成

4.2.4 プロパティを使用した間接的なアクセス

プロパティを利用したプログラムの作成

コラム 宣言プロパティのパターン

コラム 参照演算子による簡略表記

4.3 クラスの継承

4.3.1 クラスの継承によるサブクラスの作成

継承を使う理由

既存のクラスを継承してサブクラスを作成する

継承のポイント

4.3.2 オーバーライドによるメソッドの再定義

オーバーライドを使ってメソッドを再定義する

オーバーライドしたメソッドの呼び出し

Q&A

Chapter 5 iOSアプリの概要

5.1 iOSアプリの画面を構成するクラス

5.1.1 iOSアプリの画面を構成するクラス

iOSアプリの基本画面の作成

5.1.2 画面上の要素を構成するクラス

Intaerface Builderを使ったUI部品の配置

5.2 iOSアプリの作成手順

5.2.1 iOSアプリ作成の流れ

プロジェクトの作成からアプリの完成までの流れ

Chapter 6 ユーザーインターフェイスの作成(入力処理編)

6.1 イベント処理の基本

6.1.1 アプリ起動時における文字列の表示

文字列を表示する手順

文字列を表示するアプリの作成

文字列表示のポイント

コラム プログラム実行時の設定

viewDidLoadメソッド

_(アンダースコア)+参照先変数名の記述

「アウトレット」を意味するIBOutlet

6.1.2 ボタンを使用した文字列の表示

ボタンのタップで文字列を表示する手順

ボタンのタップで文字列を表示するアプリの作成

ボタンに連動して文字列を表示させるポイント

6.1.3 UI部品間の通信

メッセージ式

アクションメソッドの種類

メッセージを送信するメソッド

6.1.4 ソースコードの記述によるイベントの処理

UI部品を配置してコードを入力する

入力したソースコードのポイント

コラム 操作をやり直す場合の注意

6.1.5 イベントの種類を変更する

Connections inspectorでイベントの種類を変更する

6.2 テキストの入力処理

6.2.1 テキストフィールドで入力処理を行う

入力されたテキストを表示する手順

入力されたテキストを表示するアプリの作成

入力されたテキストを表示させるポイント

6.2.2 キーボードを自動的に表示する

画面表示と同時にキーボードを自動で表示する

6.3 アラートビューの表示

6.3.1 ボタンのタップでアラートビューを表示する

アラートビューを表示する手順

アラートビューを生成するためのコード

アラートビューのボタンが押されたときの処理

アラートビューを表示するアプリの作成

6.3.2 ボタンの種類で処理を切り替える

処理を切り替えるポイント

6.4 アクションシートの表示

6.4.1 ボタンのタップでアクションシートを表示する

アクションシートを表示する手順

アクションシートを生成するためのコード

6.4.2 デリゲートによる処理の委譲

Objective-Cにおけるデリゲート

デリゲートを使う方法

アクションシートのボタンが押されたときの処理

6.4.3 アクションシートを表示するアプリの作成

アクションシートのボタンを検知するアプリを作成する

6.4.4 ボタンの種類で処理を切り替えるアプリの作成

ボタンの種類で処理を切り替えるコードを入力する

6.5 On/Offスイッチを利用した入力処理

6.5.1 On/Offスイッチで処理を切り替えるアプリの作成

On/Offスイッチの状態を表示するアプリの作成

6.6 スライダーによる値の設定

6.6.1 スライダーの設定値の取得

スライダーの値を設定、取得するポイント

アプリの作成手順

スライダーの設定値を取得するアプリの作成

コラム スライダーの操作が終わってから値を取得する

コラム スライダーの初期状態を設定する

6.7 DatePickerによる日付の処理

6.7.1 DatePickerによる日付の設定

日付データを取得するポイント

日付データの書式設定

アプリの作成手順

DatePickerの設定値を取得するアプリの作成

Chapter 7 ユーザーインターフェイスの作成(画面表示編)

7.1 ボタンとラベルの外観の設定

7.1.1 ボタンの外観の設定

7.1.2 ボタンタイトルの設定

7.1.3 ボタンのハイライト時の設定

ハイライト時のタイトルを設定する

ハイライト時の文字色を設定する

7.1.4 ラベルの外観の設定

7.2 ツールバー

7.2.1 ツールバー上のボタンで処理を行う

アプリの作成手順

アプリの作成

7.2.2 ボタンアイテムの追加

7.2.3 ボタンアイテムのデザイン設定

ボタンアイテムのタイトルを設定する

ボタンアイテムのデザインを変更する

ボタンアイテムの背景色を設定する

デザイン済みのボタンアイテムを利用する

7.2.4 ツールバーの外観の設定

ツールバーのデザインを設定する

ツールバーの色を設定する

7.3 背景色の設定とナビゲーションバーの利用

7.3.1 アプリの起動時の背景色を設定する

プリセットカラーを利用した背景色の設定

アプリの背景色をパープルにする

7.3.2 ナビゲーションバーとセグメンテッドコントロール

セグメンテッドコントロールによる背景色の切り替え

選択されたセグメンテッドコントロールで処理を切り替えるポイント

7.4 スライダーによる背景色の変更処理

7.4.1 色の作成

RGBとは

RGB値を指定して独自の色を作成する

コラム ラベルを半透明にする

7.4.2 スライダーで背景の色をダイナミックに変化させる

アプリの作成手順

アプリの作成

コラム 背景色を変化させる

7.5 テキストビューによる文章の表示

7.5.1 テキストビューの表示

テキストビューを使って長い文章を表示する

7.5.2 アプリによる文字の自動表示

アプリの作成手順

アプリの作成

7.5.3 テキストビューの設定

テキストビューの外観を設定するプロパティ

7.6 テキストビューの編集モードの切り替え

7.6.1 テキストビューの編集モード

編集モードの切り替えを行うメソッド

7.6.2 テキストビューの編集モードをボタンで切り替える

アプリの作成

7.7 UI部品のリサイズ

7.7.1 UI部品のサイズの取得と設定

UI部品の高さを変更する

7.7.2 通知(Notification)の利用

NSNotificationCenterクラスを利用してイベントを処理する

キーボードの状態を検知して通知する

7.7.3 リサイズするときにアニメーション処理を行う

アニメーションの設定

テキストビューのリサイズ時にアニメーションさせる

7.7.4 テキストビューをリサイズするアプリの作成

アプリの作成手順

テキストビューのサイズがリサイズされるまでの処理

アプリの作成

コラム 実際のキーボードのサイズを取得して処理を行う

Chapter 8 グラフィックスの操作

8.1 グラフィックスの表示

8.1.1 ファイルの用意

グラフィック用のファイルをプロジェクトに取り込む

グラフィックスを表示する

グラフィックスに合わせて背景色を変更する

8.1.2 イベントに関連付けたグラフィックスの表示

グラフィックス表示のポイント

ボタンのタップでグラフィックスを表示する

8.1.3 グラフィックスの拡大/縮小と基準点の設定

contentModeによる表示方法の指定

8.2 パラパラアニメの再生

8.2.1 4枚の画像を使ってパラパラアニメを再生する

アプリ作成のポイント

アプリの作成

8.3 グラフィックスのアニメーション

8.3.1 アニメーション処理のポイント

アニメーションブロックの作成

再生時間の設定

アニメーションの開始位置と終了時の位置の設定

回転角度を設定する

アニメーション終了後に別の処理を行う

アニメーションに設定できるその他の処理

8.3.2 アニメーションの作成

アプリの作成手順

アプリの作成

コラム アニメーションを逆回しにする

8.4 グラフィックスの拡大と縮小

8.4.1 グラフィックスのサイズ設定

アプリ起動時にグラフィックスを縮小→拡大する

8.5 タイマーを利用したアニメーション

8.5.1 秒刻みで処理を繰り返す

0.1秒ごとにメソッドを呼び出す方法

コラム アニメーションを使って拡大する際のポイント

動き続けるアニメーションの作成

Q&A

Chapter 9 Web情報の取得とデータの保存

9.1 Webページの表示

9.1.1 Webビューを利用したブラウジング

Webビューを配置してWebページを表示する

9.2 ネットワーク接続中の通知

9.2.1 Webビューの状態を通知するデリゲートプロトコル

UIWebViewDelegateプロトコルの状態監視メソッド

状態監視メソッドで処理を実行するための手順

9.2.2 ネット接続を通知するアプリの作成

アプリの作成手順

インジケーターでネット接続を知らせるアプリの作成

9.3 ブラウザアプリの作成

9.3.1 UIWebViewのメソッドによるWebビューの操作

UIWebViewのメソッドによるWebビューの操作

ブラウザアプリの作成

9.3.2 ボタンの状態を切り替える機能の追加

UIWebViewクラスのプロパティ

ボタンの状態を切り替える機能を追加する

9.4 Webデータの表示

9.4.1 Webビューへのグラフィックスの表示

ローカルファイルの表示方法

Webビューにプロジェクト内のグラフィックスを表示する

9.4.2 Web上の画像データの取得

Web上の画像データをイメージビューに表示する方法

Web画像をイメージオブジェクトに変換して表示する

9.4.3 手書きのHTMLを表示する

HTMLコードの内容をWebビューに表示する方法

Q&A

Chapter 10 位置情報の取得と入力センサーの活用

10.1 位置を指定して地図を表示する

10.1.1 地図を表示する機能の組み込み

MapKitフレームワークの追加

MapKitフレームワークのインポート

10.1.2 地図に表示する位置の指定

地図上の位置の指定するデータを作る方法

作成した位置情報をMapビューに設定する

10.1.3 地図情報の表示

渋谷駅界隈を自動で表示するアプリの作成

10.2 ボタンを使って地図の表示位置を切り替える

10.2.1 ボタンで地図の表示場所を切り替えるアプリの作成

ボタンで表示位置を切り替えるアプリの作成

コラム 構造体の初期化式

10.3 現在位置の地図を表示する

10.3.1 現在位置を監視するオブジェクトの生成

CoreLocationフレームワークのインポート

CLLocationManagerオブジェクトの生成

位置情報サービスが無効な場合に対処する

10.3.2 現在位置の地図上への表示

現在位置をMapビューに表示するまでの流れ

10.3.3 現在位置を表示するプログラム

現在位置の地図を表示するプログラムの作成

コラム iOSシミュレータにおける現在位置の設定

コラム 地図のタイプの設定

10.4 現在位置の緯度と経度を調べるアプリ

10.4.1 現在の位置情報を画面に表示する

現在位置を表示するアプリの作成

10.5 方位を示すアプリ

10.5.1 端末が向いている方位の取得

磁北と真北

グラフィックスを北に向けて回転させる方法

10.5.2 方位を示すアプリの作成

グラフィックスの上部が北に向くアプリを作成する

10.6 iPhoneの動きを調べる

10.6.1 加速度センサーで端末の傾き具合を調べる

加速度センサーを使える状態にする

加速度センサーからの通知を受け取る

10.6.2 傾き具合を表示するアプリの作成

傾きの状態を示すアプリを作成する

Q&A

Chapter 11 ストーリーボードによる複数画面の切り替え

11.1 2枚目の画面を作る

11.1.1 タブバーアプリケーションの作成

アプリの作成手順

アプリの作成

11.2 画面間におけるデータのやり取り

11.2.1 各画面で共通して利用する変数の用意

AppDelegateクラスの利用

synthesize文の記述とインスタンス変数の初期化

11.2.2 2つの画面でデータをやり取りするアプリの作成

アプリの作成手順

アプリの作成

11.3 画面の追加

11.3.1 3枚目以降の画面の追加

新規の画面を追加する手順

3枚の画面を持つアプリの作成

11.4 ボタンを使って画面を切り替える

11.4.1 ボタンを使って画面を切り替えるアプリの作成

アプリの作成手順

アプリの作成

11.5 画面が回転して切り替わるアプリ

11.5.1 表画面と裏画面の連携

プログラム起動後における処理の流れ

11.5.2 画面が回転して切り替わるアプリの作成

アプリの作成手順

アプリの作成

11.6 テーブルがスライドして画面が切り替わるアプリ

11.6.1 Master-Detail Applicationテンプレートを使用したアプリの作成

テーブルがスライドするアプリの作成

Chapter 12 カメラの操作

12.1 カメラを使った静止画の撮影

12.1.1 カメラの起動と撮影用の画面の表示

カメラを起動して撮影用の画面を表示する方法

撮影した写真を保存する方法

写真の保存後の処理

12.1.2 カメラで写真を撮影するアプリの作成

カメラアプリの作成

12.2 カメラを使った動画の撮影

12.2.1 カメラを起動してビデオ撮影用の画面を表示する方法

MobileCoreServicesフレームワークの組み込み

カメラを起動してビデオ撮影用の画面を表示する方法

撮影した動画を保存する方法

動画の保存後の処理

12.2.2 カメラで動画を撮影するアプリの作成

動画撮影アプリの作成

Chapter 13 iPhoneアプリの実機におけるテスト

13.1 実機におけるテスト

13.1.1 実機でテストするまでの流れ

Developer Programの登録から実機でテストするまでの流れ

13.1.2 Apple Developer Programへの登録(有料)

Apple Developer Programへの登録

アクティベーション

13.1.3 App IDの作成

App IDを作成する

コラム Provisioning profilesで公開されている情報

コラム 開発に向けた日本語ドキュメント

13.1.4 Provisioning profilesの作成

OrganizerでProvisioning profilesを作成する

コラム Provisioning profilesを作成できない場合

13.1.5 実機でアプリを実行する

Q&A

PR

秀和システム