その後のその後

iOSエンジニア 堤 修一のブログ github.com/shu223

【書評】中級者向けのUIKit解説本『UIKit徹底解説』

インプレスジャパン様より *1 献本いただきました。


UIKit徹底解説 iOSユーザーインターフェイスの開発
西方 夏子
インプレスジャパン
売り上げランキング: 8,651


著者の西方夏子さんは、『上を目指すプログラマーのためのiPhoneアプリ開発テクニック iOS 7編』の

  • Chapter02:「画面遷移」
  • Chapter03:「UIKit Dynamics」

等々を執筆されていた方で、僕も iOS 7 から入った「カスタム画面遷移」「インタラクティブ画面遷移」はこの書籍のサンプルで勉強させていただきました。*2


ブログの記事も書籍のように詳しくわかりやすく、いつも参考にさせていただいています。



で、今回の『UIKit徹底解説』ですが、中級者向けUIKit専門書とのこと。UIKitはiOSアプリ開発の主役なので解説書こそ多いものの、中級者以上を対象としたものはあまりないので、ありがたく拝読させていただきました。

難易度について

実際に読んでみて、難易度の点では、わりと「脱初級した人」ぐらいから読んでも大丈夫かも、という印象を持ちました。


たとえば Auto Layout の章で言うと、制約の優先度についてかなり詳しく書いてある部分は中級者向けだなと思う一方、IB から Auto Layout 設定する方法についてはスクリーンキャプチャ付きで書いてあるので、「Auto Layout をこれから使う人」にも読めるかなと。全体的に IB を使う部分は最初の一歩目としても大丈夫そうです。


またChapter10〜12は、それぞれテーブルビュー、コレクションビュー、コンテナビューコントローラの使い方/つくりかたをチュートリアル形式でちょっとずつ応用を加えながら学べるようになっているので、プログラムの話を文章だけ読んでもよくわからん、という方にはこの辺りからやってみるといいのかなと。

勉強になった項目

以下、勉強になった項目を書いていきます。

ライフサイクル

ライフサイクルについて、

  • Storyboardを使ってる場合はどうなるか
  • それぞれのメソッドにおいてsuperは呼ぶべきなのかどうか
    • たとえば loadView をオーバーライドする場合は super のは呼び出さず、すべてのビューを自前で生成することが推奨されているとのこと

等々を再確認できました。


あと、知らなかったのが isMovingToParentViewController というプロパティ。viewWillAppear や viewDidAppear が呼ばれるタイミングで、なぜコンテナに追加されたのかを知ることができる、とのこと。つまり、push されてここに来たのか、pop されて来たのかがわかるということ(そうは書いてないけど、そう理解しました)。これはありがたい。

レイアウト

iOS 7 が出たときに誰もが経験したと思われる、UINavigationBar の下にビューが潜り込む問題。対症療法的なものや微妙に誤解のある解説などWebには玉石混淆の情報が入り乱れていましたが、こちらの書籍ではフルスクリーンレイアウトについて関連プロパティがひとつひとつ解説されていて、正しく理解することができます。


またサブビューの再レイアウト処理の順序も勉強になりました。

  • Auto Layout無効のときの AutosizingMask に応じた自動サイズ調整処理は viewWillLayoutSubviews より前に行われる
  • layoutSubviews は viewWillLayoutSubviews の後、viewDidLayoutSubviews の前に呼ばれる

とか。

UIFontDescriptor

フォント属性を管理するクラス、UIFontDescriptor について詳細に解説されています。

  • フォントにアフィン変換を適用できる UIFontDescriptorMatrixAttribute
  • カスケードリストを追加して日本語だけ別フォントを使う方法
  • グリフの送り幅の変更

等々、参考になりました。

NSAttributedString, Text Kit

この2つについてもかなり詳しく書かれています。テキストレイアウトまわりで何かやりたいときにリファレンスとして良さそうです。

その他

上記には挙げていませんが、Stroryboard や Auto Layout や UIAppearance や UICollectionView や画面遷移等々、UIKit 全般について基本的なことから細かい話まで書かれています。詳細な目次はこちらで確認できます。


僕は インプレスジャパン発行の iOS 解説書シリーズは全部買ってる ので「Storyboardはあの本も詳しかったな」「UIAppearanceはあの本でも一通り解説されてたな」とか思ってしまうのですが、まだそういった書籍を揃えてない方にはこの本が全部入りかつ最新情報なのでお得なんじゃないかと思います。

電子書籍版

ちなみに国内出版社の技術書としては珍しく(?)もう電子版も出ています。700円ほどお得ですし、448ページと物量もあるので、個人的にはこちら(電子書籍)がオススメです。


UIKit徹底解説 iOSユーザーインターフェイスの開発
インプレスジャパン (2014-06-18)
売り上げランキング: 9,219

*1:@hkato さんより打診いただきました。いつもありがとうございます!

*2:カスタム画面遷移についてはこちらのサンプルもご参照ください:『http://d.hatena.ne.jp/shu223/20140416/1397608824