2014年6月29日日曜日

[書評] UIKit徹底解説 iOSユーザーインターフェイスの開発

インプレス&西方さんより献本をいただきました。おくばせながら今回はその書評。


■内容

iOS はアプリ開発の観点からすると数多くのフレームワークの集合体と見ることもできて、Appleのドキュメントによればフレームワークはこれだけ存在する(iOS7まで)。
Frameworks
 |— Cocoa Touch Layer(UIKit, MapKit, GameKit ほか、計8種)
 |— Media Layer(CoreImageや CoreText, CoreAudio ほか、計19種)
 |— Core Services Layer(CoreData, CoreFoundation, Foundation ほか、計22種)
 |— Core OS Layer(Security, System ほか、計5種)
(参考)iOS Developer Library


iOSでプログラミングするにはこれらのフレームワークを始めとする膨大な技術と向き合う必要がある(もちろんその他に Xcode や Objective-C、今やSwiftも)。それらの中でも iOSのユーザインターフェイスの基盤を担っているのが UIKit。UIKit には iOS開発者にはお馴染みの UIViewや UIViewController を始めとする、コンテンツの表示やアニメーション、あるいはユーザインタラクションといったユーザインターフェイスに不可欠な API が含まれている。iOSアプリ開発中に関わることの最も多い API の集合体であり、最も重要なフレームワークといえる。

本書は数多くある iOS の技術要素の中でこの UIKit ”だけ”を解説している本である。この本の良いところはその数が多く膨大とも言える UIKit の API からアプリ開発に必要なポイントだけを抽出して上手くまとめ挙げている点である。

内容→マインドマップ風にまとめてみた(クリックで拡大)。

目次を見れば UIKit の主要トピックが整理されているのがよくわかる。前半は UIKit に関する基礎知識を主要APIを中心にまとめている。とりあえずこれを読めばアプリ開発に必要な UIKit の主要 API の種類と役割をひと通り知ることができる。後半では iOSアプリで最も良く使われるであろう3つの API を取り上げて、実装例を挙げながら「実践」という形で詳しく踏み込んで解説している。
・UITableView
・UICollectionView
・コンテナビュー
これらの内容は西方さんも執筆に参加している他のiOS7本と若干かぶるところもあるが、良く使われる APIの一つなので、本書で章を割いて解説するのは適当とも言える。

内容に関しては著者のホームページを見るのが一番わかり易い。



■誰に向いているか

本書は題名の通り UIKit に徹底的にフォーカスした解説書である。高速化や省力化を図るテクニック本、あるいは初心者向けのツールの使い方を中心に解説するような導入書などの他の多くの本とは一線を画し、iOSでプログラミングする際に不可欠な UIKit の基礎知識を1冊の本にギュギュっと集約しているのが他に無い特徴といえる。この事は本書の「はじめに」の冒頭でも簡潔に述べられている。
(略)SDKの充実に伴い、アプリ開発は手軽になってきています。Xcodeのテンプレートを使えば、ある程度の実装が済んだプロジェクトが簡単に手に入ります。また、オープンソースライブラリの存在も、アプリ開発における手間暇を一気に軽減してくれています。しかし、アプリ開発はそれで終わりではありません。継続的なメンテナンスと共に豊かなユーザ体験を提供することが重要です。その為にも、是非 iOS アプリの仕組みを理解しましょう。
時間をかけずにアプリを開発することはもちろん重要ではあるが、長期的な視点に立てば技術の理解が不可欠だと思うし、これは iOSのアプリ開発に限らず一般的に言えることだと思う。またライブラリを使ったとしてもアプリの中心部分は当然ながら自分で書く必要があるわけで、見栄えの良いライブラリを使っているのに自分の書くコードがこなれていないとアプリ全体としてはチグハグな印象をユーザへ与えてしまうことは起こりうる(むしろ自分のイケてない実装が余計に目立ったりするかも)。もちろん全部自前で作ることは現時的には難しいので、要はバランスの問題ではある。でもそのバランスの片方があまりにも力不足だと、そこがアプリ全体のクオリティレベルを落とす。この本はその基礎に取り組む上での入門書として最適だと思った。

さて、ここでいう"入門書"とはプログラミング初心者にとってではなく、他のプラットフォームでプログラミングの経験はあるものの iOSには初めて取り組む、あるいはiOSアプリ開発の経験が浅い、といった方にとってのものを指す。自分にとって新しいプラットフォームで、初めてアプリを作る時に最も重要で苦労する事の一つは、プラットフォーム特有の作法=フレームワーク/APIを理解することである。その位置づけや概要を知る最初の手がかりとして本書は地図のような役割を果たしてくれる。そういう意味では Swfitの発表により今後新規の参入者が増えてくることを考えると、サンプルコードを Swiftで書きなおした改訂版が今後出るといいかも。新参者は Swiftを学びつつ、UIKitの概要を本書で把握して学習を進めていく、といったスタイルを提案できる。

一方でまったくのプログラム初心者には本書はまったく向かない。初心者の方は他の自分に適した入門書を探した方が良い。ただし、ひと通り入門書を読んで次のステップを模索する方には最適。本書を読むことで、入門書で書かれていた内容が腑に落ちるようになるし、入門書で得られた内容を実際にアプリ開発へ応用していく上での基礎知識が得られるはず。

また既に iOSのアプリ開発を行っている中級以上のプログラマーにとってはどうか。その場合は本書はバージョンアップを重ねるごとに変わっていった iOS(のUIKit)を改めて俯瞰し、整理し直す目的で役に立つと思われる。毎年新しいiOSの技術をキャッチアップしているとしても、特にあまり使わないAPIなど全ては把握しきれていない人も多いと思うので、ここで立ち止まって UIKit に関する自分の知識を棚卸しする目的で本書を手に取るのも悪くないと思う。自分はこれに該当した。

まとめると:
 ・プログラミング初心者:【☓】オススメしない(他の入門書を当たる)
 ・iOSアプリ新参者  :【◎】超オススメ (ただし、UIKitだけなのでそれ以外は別を当たる)
 ・iOS初級者     :【○】オススメ (本書を地図に Appleのリファレンスやネット情報を活用)
 ・iOSアプリ経験者  :【○】オススメ(自分の知識の棚卸し)


(おわり

0 件のコメント:

コメントを投稿