HOME » Natsu note »  » 著書 » UIKit徹底解説 iOSユーザーインターフェイスの開発:執筆いたしました

UIKit徹底解説 iOSユーザーインターフェイスの開発:執筆いたしました 2014/06/10/| » 著書

WWDCも終わり、世間はiOS 8やSwiftに向かって盛り上がっていますね。どんどん進化するiOS、そしてiOS SDKにXcode(さらにはプログラミング言語まで!)。このスピードについていけていますか?

最新情報を追い続けるためには、基本を抑えておく必要があります。土台をがっちりさせておかないと、その上にいくら新しい知識を上乗せしても、いずれ崩れてしまいます。

そんな思いを心に秘めて、1冊の本を書きました。タイトルのとおりUIKit一色の本です。発売は6月13日を予定していますが(予約できます!)、一足先に内容をご紹介します。

目次

Chapter 01 UIKit概要
Chapter 02 ビュー
Chapter 03 ビューコントローラ
Chapter 04 イベントハンドリング
Chapter 05 Storyboard
Chapter 06 Auto Layout
Chapter 07 画面遷移のカスタマイズ
Chapter 08 ビューのアピアランス
Chapter 09 テキストのアピアランス
Chapter 10 UITableView実践
Chapter 11 UICollectionView実践
Chapter 12 コンテナビューコントローラ実践

対象としている読者の方々

一人でも多くの方に楽しんでいただきたいのはもちろんなのですが、残念ながら万人を対象とする本は書けません。そこで今回は、「中級レベル」を意識して執筆いたしました。Xcodeのテンプレートを使ったり、公式ドキュメントや他の書籍を参考にしたりして、いくつかのアプリを作ったことがある(もしくは作ることができる)方が対象です。Xcodeの操作方法やObjective-Cの文法は説明を省略しています。

UIKitの概要と基礎固め

これより、章ごとに内容を紹介していきます。

iOSアプリでは、「ビュー」「ビューコントローラ」「イベントハンドリング」この3兄弟がアプリの動作を支配しているといっても過言ではありません。本書の前半では、これらの基本事項を解説します。

Chap 01 UIKit概要

UIKitの全体像をクラスごとに説明します。紙面の都合上、詳細解説ができなかった機能もここに含めました。

Chap 02 ビュー

ビューについての重要事項を解説します。ビューのサイズ変更のためのメソッドやコンテンツモードについて、また、アニメーションの実現方法も解説しています。

Chap 03 ビューコントローラ

ビューコントローラの役割は広範囲に渡ります。その中でも重要なビューコントローラのライフサイクルや、レイアウト処理などを取り上げました。iOS 7から導入されているフルスクリーンレイアウト(ステータスバーの背面にコンテンツビューが入り込むレイアウト)を制御するためのメソッドも解説しています。また、モーダルビューコントローラやシステム標準のコンテナビューコントローラについても、主な使い方を紹介しています。

Chap 04 イベントハンドリング

UIKitによるイベントハンドリングを大きく3つに分けて解説します。まず、システム標準のビュー(UIButtonなど)を利用したイベントハンドリングです。そして次が、UIEventとUITouchの処理方法です。ここでは、併せてレスポンダチェーンやヒットテストについても解説します。最後は、ジェスチャリコグナイザの使い方です。複数のジェスチャリコグナイザを制御する方法にまで踏み込みました。

開発ツールの活用

iOSアプリ開発の2大武器、StoryboardとAuto Layoutについて解説します。もちろん、この2つの武器を使わなくともアプリは作れます。しかし、開発のスピードが違う、そして、アップデート時の(心の)負担も違います。何となく敬遠してきた方も、これを機に使ってみてはいかがでしょうか。

Chap 05 Storyboard

Storyboardとコードの関係、セグエによる画面遷移の方法を解説します。Unwindセグエを利用した「戻る」遷移の方法も説明しています。また、これらの画面遷移をカスタマイズする方法として、カスタムセグエの作成方法にも触れています。Storyboardファイルの分割方法も解説していますので、大規模開発のときなどに役立ててください。

Chap 06 Auto Layout

iOS 6でAuto Layoutが登場したとき、お世辞にも使い勝手が良いとは言えませんでした。それが、今ではずいぶんと進化し、十分に使い込めるものになっています。制約設定の基本的な操作方法と併せて、それぞれの制約で制御できる項目を解説します。また、制約と固有サイズ(UILabelなどが持つコンテンツに合わせたサイズ)のプライオリティも丁寧に解説しました。プライオリティを理解することで、Auto Layoutがさらに使いやすくなることは間違いありません。

外観の改善

UIKitには手軽に外観を改善するための枠組みがいくつか用意されています。ここから続く3つの章では、外観の改善に力を発揮する機能を解説していきます。

Chap 07 画面遷移のカスタマイズ

iOS 7から導入されている、UIViewControllerのプロトコルを利用した画面遷移のカスタマイズ方法です。画面遷移をカスタマイズする方法はいくつかありますが、これからは、この方法がスタンダードになっていくと考えています。本書では、通常の画面遷移に加え、インタラクティブ画面遷移(ジェスチャ等に合わせた画面遷移)を最も簡単に実現する方法を解説しています(UIPercentDrivenInteractiveTransitionクラスを利用します)。

Chap 08 ビューのアピアランス

外観を司る大きな要因として、ビューのカスタマイズが挙げられます。ビューのアピアランスは様々な方法で改善できますが、その中でも是非知っておきたい項目を取り上げました。例えば、iOS 7より変更されているバーの外観とその設定方法について丁寧に解説します。ビューコントローラごとにステータスバーを設定する方法や、ステータスバー直下に配置されているバーと背景を融合する方法など、ポイントを押さえて説明しています。また、キーカラー(tintColor)やUIAppearanceによるUIの統一や、UIImageによる画像の利用方法の要点も押さえています。

Chap 09 テキストのアピアランス

テキストアピアランスの改善を、フォントレベル、文字(文)レベル、コンテンツレベルに分けて解説します。フォントレベルの改善には、UIFontやUIFontDescriptorを利用します。そして、文レベルでの改善には、属性付きテキスト(NSAttributedString)が利用できます。さらに、コンテンツレベルでレイアウトの調整などがしたければ、Text Kitのメイン機能を利用します。

本書では、UIFontDescriptorとNSAttributedStringのすべての属性キーについて解説しています(iOS 7時点でのもの)。まとまった情報が少ないところなので、参考にしていただければ幸いです。

チュートリアル

最後の3つの章には、テーブルビュー、コレクションビュー、カスタムコンテナビューコントローラという3つの重要トピックスについて、チュートリアルを用意しました。どの内容も複数のモジュールが関連して動作していたり、プロトコルを活用したりするなど、その使用方法が少々複雑です。そのため、解説を読むだけではなく実際に手を動かしてみる方が理解しやすいと考え、チュートリアルを取り入れました。

もちろん、いきなりチュートリアルから始まるのでは敷居が高くなってしまうので、各章の冒頭には、それぞれのトピックスについて重要事項をまとめた解説を載せています。また、チュートリアルではStoryboardやAuto Layoutを活用していますので、Chap 05やChap 06の実用例としても利用価値があると考えています。

なお、チュートリアル内ではStoryboardエディタの操作方法などは原則として解説していません。基本的な操作については、公式ドキュメントや別の書籍を参照していただくことになります。また、実装の流れ上、明白なヘッダーファイルのimportについても、一部省略してあります。ご了承ください。

Chap 10 UITableView実践

Todoアプリの作成を通してテーブルビューの扱い方を解説します。UIはStoryboardまたはNibで作成することを前提とし、Storyboardのダイナミックテーブルビューとスタティックテーブルビューの両方を解説します。カスタムセルやカスタムヘッダーの作成方法も説明しています。

カスタムセルやカスタムヘッダーの作成にはAuto Layoutを活用しています。そのため、本チュートリアルは、Auto Layoutの実例としても参考にしていただけます。

本章のチュートリアルを進めることで、以下のようなTodoアプリが完成します。

UIKit徹底解説 Chap 10 Todoアプリ 一覧表示UIKit徹底解説 Chap 10 Todoアプリ 編集画面

Chap 11 UICollectionView実践

付箋アプリの作成を通してコレクションビューの扱い方を解説します。まずはじめに、標準のレイアウトであるフローレイアウトを用いて、付箋(セル)を縦横にレイアウトします。続いて、レイアウトをカスタマイズしていきます。フローレイアウトをカスタマイズして、セルの外観を変更したり、完全に独自のレイアウトを実現したりします。最終的に使用するカスタムレイアウトでは、画面上を長押しするとそこに付箋(セル)が表示されるようにします。

本章のチュートリアルを進めることで、以下のような付箋アプリが完成します。左から順番に、フローレイアウト、カスタマイズしたフローレイアウト、カスタムレイアウトです。

UIKit徹底解説 Chap 11 付箋アプリ(フローレイアウト)UIKit徹底解説 Chap 11 付箋アプリ(フローレイアウトのカスタマイズ)UIKit徹底解説 Chap 11 付箋アプリ(カスタムレイアウト)

Chap 12 カスタムコンテナビューコントローラ実践

最後はカスタムコンテナビューコントローラです。StoryboardのEmbedセグエを利用することで、簡単に独自のコンテナビューコントローラが作れます。本章のチュートリアルでは、iPodライブラリ内の曲を再生するアプリ(ユニバーサルアプリ)を作成します。iPhoneとiPadでは異なるレイアウトを採用しますが、ビューコントローラはすべて共通で使います。実際にアプリを作成しながら、コンテナビューコントローラを作成することのメリットを感じていただけるように工夫しました。

本章のチュートリアルを進めることで、以下のようなユニバーサルアプリが完成します。iPadでは1画面にすべてのビューコントローラを表示し、iPhoneではコンテナビューコントローラ内で画面遷移します。

UIKit徹底解説 Chap 12 音楽再生アプリ(iPad)

UIKit徹底解説 Chap 12 音楽再生アプリ(iPhone:曲一覧)UIKit徹底解説 Chap 12 音楽再生アプリ(iPhone:タイトルとアートワーク)UIKit徹底解説 Chap 12 音楽再生アプリ(iPhone:曲情報)

サンプルコード

3つのチュートリアルはもちろんのこと、その他の章にもできる限りサンプルコードを用意しました。チュートリアルの章においては、途中段階のプロジェクトも含めておりますので、章の途中からチュートリアルに取り組むこともできます。活用していただければ幸いです。

サンプルコードは出版社のサイトよりダウンロード可能です。
http://www.impressjapan.jp/books/1114101012_4

心を込めて精一杯の力を出して書きました。1人でも多くの開発者の方に、有益な情報をお伝えできることを願ってやみません。発売は6月13日ですが、以下より予約可能です。