iOSプログラミング 推奨参考図書
iOSアプリのプログラミングを始めるに際しては、参考書を一冊選んで、それを読みながら、そこに記載されているサンプルコードを実際に手入力することを強くお勧めします。
Apple社のドキュメントはかなり充実していますが、逆に情報過多で、どのドキュメントをどの順番で読んでいくのが良いのか、ここは読むべきなのか飛ばしても構わないのか、初心者には判断できません。
Apple社のドキュメント以外にも、インターネットにはiOSプログラミングに関する情報が溢れていますが、体型立てて記載されているサイトは私の知る限り皆無で、また、検索で上位にランクされるページは、意外と古くて役に立たないものが多いです。
その点、書籍は、なるべく新しい良書を選べば、当面必要な知識を体型立てて得ることができ、以後は、Apple社のドキュメントやインターネット上の情報を効率よく利用したり、的確な情報を選択したりできるようになります。また、Apple社のドキュメントには書かれていないConvention(しきたり)を知ることもできます。
ここでは、私が読んで、「皆様に薦めたい」と感じた書籍をご紹介したいと思います。ただし、書籍はすぐに「古く」なります。物理的に古くなるのではなく、記載内容がAPIの進化や変化に合わなくなります。iOSもだいぶ「落ち着いて」きましたので、書籍に書かれている内容がすべてすぐに役に立たなくなることはありませんが、ご留意下さい。
『iOS Programming: The Big Nerd Ranch Guide (4th Edition)』
- 著者:
- Joe Conway、Aaron Hillegass、Christian Keur
- 出版:
- Big Nerd Ranch Guides
- 出版日:
- 2014年2月21日
- ISBN-13:
- 978-0321942050
英書ですが、非常にきれいな英語で書かれていて、読みやすいです。
非常に厳しいことを言うようですが、英語の読解力が無い方は、iOSにしろAndroidにしろ、独学によるアプリの開発は諦めた方が良いでしょう。それぞれ、Apple社・Google社の最新のドキュメントを読む必要があり、それらはすべて英語で書かれています。Chromeが提供するような翻訳機能を使う手もありますが、私が試した範囲では、おかしな日本語に翻訳される例が多々あり、実用には程遠い印象を受けました。
逆に英語の読解力がある方は、参考とする書籍の対象を英書まで広げると、良書に出会える確率を増やすことができます。スマートフォン用のアプリは複数言語で使えるように開発するのが一般的ですので、日本語向けに開発するからといって、特殊な手順は必要ありません。そのため、日本語で書かれた本を読む必要はありません。むしろ、絶対に日本国内でしか使わないというアプリ以外は、デフォルトの言語を英語にして、日本語を追加する(Internationalize)ようにすることが望ましいですので、英書に記載されている手順をそのまま使うことになります。
英書には、文法的におかしいと思われる文章や難解な単語が頻出するような本もありますが、この本は、平易な単語で文法的にも正しい文章で書かれており、辞書をひく回数も少なくて済み、スラスラと読み進めることができます。
iOS7、Xcode5に対応していますが、Storyboardに関しては、主に「複数人での開発に適さない」という理由でほとんど使用していません。
Storyboardは初心者が一人でプログラミングをする際には非常に有用なツールです。しかし、私は、初心者はいきなりStoryboardを使うべきではないと考えています。アプリの開発パターンにModel-View-Controller(MVC)というパターンがあり、私はこのパターンを強く推奨していますが、Storyboardを使うとViewとContollerの境目があいまいとなり、MVCパターンに乗らなくなってしまうからです。初心者こそ、まず本書のような書籍でMVCパターンを学んで、その上で、Storyboardを使うかどうかを自ら判斷するのが良いと思います。なお、本書では、MVCに更にStoreという役割のモジュールを加えて、MVCSという開発パターンを推奨しています。
Big Nerd RanchはMacやiOSデバイス向けのアプリケーションの開発に関する教育機関で、本書は、同社のトレーニングコースのテキストをまとめたものです。実用的なアプリを開発する上で必要となる知識を一通り網羅しており、かつ、読むのが嫌になるほど多すぎず、「ほどよく」まとめられています。フォーラムも充実していますので、読んでいて疑問が生じたら、フォーラムに何か書かれていないか、覗いてみると良いでしょう。
以下、目次のみ転載します。
- A Simple iOS Application
- Objective-C
- Managing Memory with ARC
- Views and the View Hierarchy
- View: Redrawing and UIScrollView
- View Controllers
- Delegation and Text Input
- UITableView and UITableViewController
- Editing UITableView
- UINavigationController
- Camera
- Touch Events and UIResponder
- UIGestureRecognizer and UIMenuController
- Debugging Tools
- Introduction to Auto Layout
- Auto Layout: Programmatic Constraints
- Autorotation, Popover Controllers, and Modal View Controllers
- Saving, Loading, and Application States
- Subclassing UITableViewCell
- Dynamic Type
- Web Services and UIWebView
- UISplitViewController
- Core Data
- State Restoration/li>
- Localization
- NSUserDefaults
- Controlling Animations
- UIStoryboard
- Afterword