iOSアプリ開発入門本の比較(Swift 2.X)

[2016/12/03 追記]

このエントリはで紹介しているのはSwift 2.xおよびXcode 7 向けの本です。すでにSwift 3およびXcode 8を対象とした書籍が出ています。

よろしければ以下のエントリをご参照ください。

a244.hateblo.jp

Swift2系の解説本もほぼ出そろったようなので個人的に独断と偏見で比較記事を書いてみようかと思います。

Swift開発歴は去年の4月ぐらい*1。もともとプログラミング経験のある理系院卒の人間ですが、iOS開発者としてはペーペーの部類です。

f:id:atuyosi:20160402214837j:plain

前置き

基本的にプログラミング未経験者向けの内容と思しき部分は読み飛ばしたうえでのレビューです。特に最近発売されたものについては アプリ作成経験ありの状態*2での感想です。しかも上から目線です。 よって著者の方はお読みになられないほうが良いと思います。

紹介する書籍について

予算の関係上、一部の書籍のみ紹介します*3

詳解 Swift 改訂版」などの文法オンリー系、逆引き系、特定トピックに特化した系統の書籍については対象外です*4

また、超初心者向けも私自身が対象読者層と外れるので同じく対象外としています。

自分で改訂版または旧版を購入したことのあるもの(紙媒体だったり電子版だったりいろいろ)についてのみ取り上げてます。

紹介する書籍は以下のとおり。

上記5冊のうち2冊はSwift 2.x登場以前に旧版の電子版を購入。最新版はサンプルコードの比較と本屋で現物チェック済み。

先に結論と注意事項。

本屋に行くとSwift 1.xと2.xの解説書が両方並んでるので要注意。また、Swiftの最新版は2.2で既に発売されている書籍は基本Swift 2.1なので正誤情報をチェックしたほうが無難です。

作りたいアプリがToDoアプリとかカメラを使わないタイプなら「本気ではじめるiPhoneアプリ作り Xcode 7.x+Swift 2.x対応 黒帯エンジニアがしっかり教える基本テクニック (ヤフー黒帯シリーズ)」。

簡単な電卓とかカメラアプリとかなら「改訂版 No.1スクール講師陣による 世界一受けたいiPhoneアプリ開発の授業 」。

特に具体的なイメージがないか、位置情報とか動画とかいろいろやりたいなら、網羅的に色々載ってるので「詳細!Swift2 iPhoneアプリ開発 入門ノート」。

以下、詳細

1. 『本気ではじめるiPhoneアプリ作り』

サブタイトルの「黒帯エンジニア云々」からしてちょっと不安*5になるがいたってマトモ。 とっつきやすさはピカイチな気がするが、難点は索引がイマイチなところ。

サンプルアプリの内容の関係で、4章以降の内容が雰囲気的に後述の『世界一受けたいiPhoneアプリ開発の授業』と似てる。

サポートサイト:SBクリエイティブ:本気ではじめるiPhoneアプリ作り

1.1 長所(or 書いてあること)

主に紹介されているサンプルは合計4本。

  • AutoLayoutをついての解説がかなり詳しい(チャプター4-6)
  • 必要最小限の内容がきっちり解説されている
  • 余計な専門用語による解説がない
  • Xcodeで入力する値が表になっていてわかりやすい
  • Sketchによる簡単なアイコン作成の方法あり

特に最後発だけあってかなりコンパクトにまとめられている印象。

1.2 短所(or 書いてないこと)

  • ジェスチャ操作系はスルーされている
  • カメラ関係がスルーされてる
  • Swiftの文法は結構省略されている
  • YahooのWebAPIを使うサンプルがあるので、YahooIDが必要*6

本で紹介しているサンプルに必要、またアプリ開発を続けるうえで必要になる可能性の高そうな内容に厳選されてる印象。この辺の取捨選択はなかなか見事。

過去エントリも参照。 a244.hateblo.jp

正誤情報

SBクリエイティブ:【正誤情報】『本気ではじめるiPhoneアプリ作り Xcode7.x+Swift 2.x対応』

2. 『改訂版 No.1スクール講師陣による 世界一受けたいiPhoneアプリ開発の授業』

タイトルが「○○の授業」とか地雷っぽいが、内容は普通というか至極まっとう。 大学受験用の参考書に例えるなら、予備校の講義をそのまま本しました系が一番近いイメージ。

サンプルアプリはおとなしめ。前述の黒帯エンジニアさんの本から文法とUIKitの解説を減らした分、サンプルアプリの数を増やした、という表現もできる。

特に他の本を買ったがイマイチよくわからなかった場合の2冊目としてオススメ*7

サポートページ

2.1 長所

  • 必要な音源ファイルとかアイコン画像もサンプルコードとセットで配布されてるので非常にとっつきやすい
  • 上記の『本気ではじめるiPhoneアプリ作り』と同じくミニマムな内容に絞られてる*8
  • AutoLayoutを使わないパターンも紹介されてる(コードでUI部品を配置したり、AutoResizeMaskとか)
  • 巻末にソースコードが行番号付きで一括掲載されてる
  • (紹介した書籍の中では唯一)オープンソースのライブラリを組み込んだサンプルがある(Alamofire)

2.2 短所

  • iPhoneアプリ開発の授業」というタイトル通りSizeClassとかiPad対応向けの内容は書いてない。サンプルアプリも向き固定で画面の回転への考慮なし
  • 小難しい内容はかなり思い切ってカットされてる。
  • サンプルのダウンロードサイズが大きめ*9

3. 『詳細!Swift2 iPhoneアプリ開発 入門ノート』

黒と青の二色刷り。Objective-C時代から割と評判のいい本の改訂版らしい。

サンプルは小粒のものが合計347本。

グゥレイト!数だけは多いぜ

って感じですが、ちゃんとコードの全体が記載されてるので断片的というわけではない。 索引もしっかりしているのである程度リファレンスとして使える。

難点はスクリーンショットが小さい箇所があり入力する値が読み取りにくい場合があるのと、正誤訂正箇所が結構ある。 記載されてるサンプルコードに脱落があったりするので、本を見ながら写経するよりサポートサイトからサンプルコードをダウンロードしてそっちから写経するほうが無難。

あまり何冊も買いたくない場合はこの本を買ってあとはApple公式ドキュメントとWeb検索でいいかと思う。

サポートサイト:詳細!Swift iPhoneアプリ開発 入門ノート
著者のブログ:Swift入門ノート

3.1 長所

  • カメラはもちろん、動画、位置情報、モーションセンサとほとんど網羅
  • 個々のトピックのページは少ないが、説明は解りやすい
  • 前半をしっかり読めば後半は自分の興味のある項目だけ読んでも問題ない
  • 前後のサンプルである程度つながりがある

3.2 短所(気になる点)

  • アプリのApp Storeへの申請関係の記述はない
  • カラーじゃない…
  • guard構文など幾つか新構文がスルーされてる(for-in where は記載がなかったり、whereを使うサンプルは少なめ)
  • filterreduceなど関数型言語っぽいトピックはない
  • サンプルが多い分、ちょっとミスが多い

個人の好みではあるけど、組版がイマイチ。小見出しが青文字なのがかえってマイナス。縦方向に詰め込みすぎな印象。

4. 『Swift 2標準ガイドブック』

Swift 2標準ガイドブック 【Swift 2.1対応版】

Swift 2標準ガイドブック 【Swift 2.1対応版】

内容はいいけどポジションが萩原先生の「詳解 Swift 改訂版」とかぶりがち。割と濃い内容が載っているけど、基本的にObjective-CかSwift 1.xのアプリケーション作成経験があるならSwift 2.x の勉強用として。 初球から中級へのステップアップ目的だとちょっと中途半端な印象。

著者の所属がバラバラなあたりも興味深い。

Swift 2標準ガイドブック | マイナビブックス

4.1 長所

どっちかというと文法本のようでアプリの作り方そのものはほとんど解説されてない。

Objective-C経験者向けのSwift移行向けの本っぽい。

  • 比較的Swiftの文法についてきっちり解説されてる
  • Objective-Cとの連携など他の書籍にないトピックが解説されてる
  • テスト関係について解説あり
  • ライブラリの紹介あり

Kindle及びPDF版があるのはいいと思う。達人出版会でも購入可

4.2 短所

  • 文法本としてはやや不足な感じがする
  • UI関係の記載が皆無
  • とりあげられているトピックが偏りすぎ
  • 対象読者が不明確

前半が文法みっちり系なのはいいんだけど、そのせいで数ある解説書の中でのポジショニングに失敗している感がある。

巻末にオープンソースのライブラリとかデザインパターンの紹介があるのはいいけど今ひとつ書籍としてのコンセプトがよくわからない。

5. 『Swiftではじめる iPhoneアプリ開発の教科書』

Swiftではじめる iPhoneアプリ開発の教科書 【Swift 2&Xcode 7対応】 (教科書シリーズ)

Swiftではじめる iPhoneアプリ開発の教科書 【Swift 2&Xcode 7対応】 (教科書シリーズ)

旧版に比べて大幅に改善している印象*10。以前購入した旧版(Swift 1.x版の電子書籍)にはAutoLayout関連の説明がないというかなりきつい欠陥があったが、その点が改善されてる。また、巻末にXcodeの使い方に関するTips(逆引きハウツーみたいなの)が追加されている点も評価したい。

ただ、文章はわかりやすいと思うが、何というか、わかりやすい内容に絞って丁寧に解説しているというか。 ゲーム作成向けの内容(SpriteKit/SceneKit)も紹介しているが、サンプルが簡素というか断片的。

この本だけでアプリを作れるようになるのは厳しいんじゃないかと思う。未経験者が「この部品とこの部品を組み合わせて……」と思い描くとこまではいいと思うが、果たしてそこから次のステップに進めるかは疑問*11

プログラミング未経験者にとっては説明がわかりやすくていいと思うのだけれど。

「だが足りない、足りないぞ!!(後半自粛)」って感じ*12

プログラミング未経験者で、かつ誰かアプリ制作のメンターみたいな人が身近にいるならありだと思う。もしくは、他の本で説明がわかりにくいところがあった時に副読本として参照するとか。

旧版に比べればかなり教科書ってタイトルらしくまとまってるのではないかと思う*13

サポートページ:Swiftではじめる iPhoneアプリ開発の教科書 【Swift 2&Xcode 7対応】 | マイナビブックス

達人出版会からPDFを購入可能

5.1 長所

  • 個別のセクションの説明はわかりやすい
  • ゲーム作成向けの内容を扱っている
  • 旧版に比べたら大幅に改善(AutoLayout、他言語化、巻末Tipsなど)
  • イラストがいい感じ

5.2 短所

  • 内容が浅い
  • ページ数の割に扱っているトピックが少ない
  • 中途半端
  • 旧版と「まえがき」がほとんど一緒っぽい

個別の部品の使い方はわかった気分になるかもしれないが、それだけでアプリを作れるかは疑問。独学用ではないと思う。

発売時期が早いのでそれなり部数が出ているのかもしれないが、先行逃げ切りっぽくてちょっと残念。

6. その他

ついでなので英語の書籍も。旧版を買ったのだけど全部読み切れずに日本語の本に逃げた。

pragprog.com

私が買った旧版(iOS8版)はTwitterクライアントを作りつつ、Swiftを学ぶという内容。 最新版(iOS9)も(サンプルコードをチェックした感じでは)同じくTwitterクライアントを題材にしている模様。

真の意味でステップバイステップ方式の本。作って壊して書き足して…って感じ。例えばUITableViewの説明のところはまずダミーのデータ(配列)を用意して、 表示がうまくいくことを確認してから次のステップでネットワーク経由のデータを流し込むという具合。

英語が苦手でないのであれば、DRMフリーで各種フォーマット形式の電子書籍が利用できるのでいいと思います。

日本語の解説書と比べるとクロージャー多用しまくりだったかな。内容的にはTwitterAPI叩いたり、テーブル表示の高速化とか諸々。 AutoLayoutとかSizeClassとかの話もちゃんと入ってる。なんか知らんけどキーボードショットカットの紹介箇所多め。

スクリーンショットの類が少ないのが難点。この辺は日本の書籍のほうが解説は充実してる印象。

特に特別な内容が記載してあるわけではなくて、オーソドックスな内容です。

共通

共通して下記のような欠点(?)がある。

  • 基本的にKindle版は固定レイアウトで検索できない
  • スクリーンショットが小さい箇所があり、入力する値が読み取りにくい箇所がある*14
  • アプリに広告を仕込むとかアプリ内課金の話は紹介した書籍には記載なし
  • CoreDataについての解説なし(言及している本はあるが解説なし)
  • CocoaPodsとかCarthageの解説なし

基本的にアプリ開発眉間者向けなのでまあ妥当なんでしょう。ただしKindle版はなんとかして欲しい。

まとめ

各書籍とも細かいTipsとかノウハウが各章の隙間に散りばめられているので読み比べるのもなかなか面白い(所属組織の文化が垣間見れるという意味でも)。

基本的にSwiftの文法だけ勉強してもiOSアプリ開発のお作法みたいなものをつかまないと先に進めないはずです。

逆にチュートリアル系の本だけでもネット上のサンプルを見たときに「何これ?」という状況がくるかと思います。

ある程度慣れてきたら次は「詳解 Swift 改訂版」に行き着くのでしょうか。


それではでは。

*1:本買ったのはいいけど視力的に厳しいんで目の手術を決意した

*2:昨年8月時点で簡単なカウンタアプリ(Swift 1.x)をリリースしている

*3:普通に一冊3,000円……。全然回収できてない(笑)

*4:まだ購入していないうえに全部読めるわけないので

*5:なんか体育会系のイメージがする。黒帯ってことは初段?

*6:住所や電話番号の入力を要求される画面があるが、画面の下の方の「後で登録する」をクリックすれば回避可能

*7:実際にこの本の旧版を(日本語の解説書としては)2番目に購入した

*8:内容そのものはともかく、基本スタンス、ポジショニングはモロかぶりだと思う

*9:サウンドアプリのサンプル用のWAVファイルのせいだと思う

*10:購入したのは昨年の旧版で今半は立ち読みしただけで買ってない

*11:特定のセクションだけ読んでもいいような構成になっているのが裏目に出ているという見解

*12:出版タイミングは日本語の他の本よりは早かったので速さは足りている

*13:正直なところ「○○の教科書」とか「○○の授業」系のタイトルは専門書としては地雷くさくてあまりいい印象がない

*14:『本気ではじめるiPhoneアプリ作り』はほぼ例外