Help us understand the problem. What is going on with this article?

【書評】中級者向けSwift解説書『開発のプロが教える Swift標準ガイドブック』

More than 3 years have passed since last update.

マイナビ様よりご献本いただきました。

開発のプロが教える Swift標準ガイドブック
渡辺 龍司 富家 将己 鈴木 晃 加藤 寛人
マイナビ (2014-12-25)
売り上げランキング: 96,644

Kindle版も出ています。達人出版会さんでpdf版も販売されています。

数あるSwift解説書の中での立ち位置

出版社の説明によると

Swiftで効率良くコードを記述するための、本格派解説書。アプリケーションを作成するための説明を必要最低限にとどめ、Swiftを深く理解してもらうことに注力ししています。

とあり、明言されてはいないものの、自分の解釈では本書はiOSアプリ開発をある程度やっている中級者以上向けのSwift解説書です。(とはいえXcodeのインストールから解説されているので、入門者にも配慮されています)

「Swiftではじめる○○」という「言語としてはSwiftを使用する、iOSアプリ開発の入門書」は多いものの、中級者以上向けの解説書というのは実はあまりありません。そもそも技術書というもの自体大きく部数が出るものではない中にあって、入門者と比較して中上級者というのはさらに数が減るものなので、こういう入門書ではない技術書、というのはなかなか貴重で、今後もあまり多くは出ないと思います。

またSwiftの詳細な解説書、という点では、「詳解 Objective-C 2.0」で定評のある著者(荻原 剛志 氏)が書かれた「詳解 Swift」がありますが、

詳解 Swift
詳解 Swift
posted with amazlet at 15.04.12
荻原 剛志
SBクリエイティブ
売り上げランキング: 25,977

こちらと本書との違いは、「詳解 Swift」は言語の解説にフォーカスしており、そして本書「Swift標準ガイドブック」は言語の解説をベースとしつつもiOSアプリ開発における実践的な内容もカバーしている、という点かと思います。

具体的には、下記の Chapter 8 の小見出しレベルの目次を見ていただくとわかりますが、テストやライブラリ、デザインパターンについても解説されています。

  • 8-1 テスト

    • 8-1-1 Swiftでの単体テスト
    • 8-1-2 XCTest
    • 8-1-3 Quick
  • 8-3 ライブラリ紹介

    • 8-3-1 swift-json
    • 8-3-2 Alamofire
    • 8-3-3 EmitterKit
    • 8-3-4 Surge
    • 8-3-5 GCDKit
  • 8-4 デザインパターン

    • 8-4-1 デザインパターンの種類
    • 8-4-2 Factory Method
    • 8-4-3 Prototype
    • 8-4-4 Singleton
    • 8-4-5 Adapter
    • 8-4-6 Decorator
    • 8-4-7 Facade
    • 8-4-8 Strategy

またパラパラめくるとわかりますが、これ以外の各章の解説でも、実際のiOSアプリのコードがたくさん載っていて、この本書の「実践的」という特徴を大きく象徴していると思います。

他のプログラミング言語をブリッジして利用する方法

またおもしろいのが「8-2 ブリッジによる拡張」です。タイトルだけみると「あー bridging header の話ね」と思ってしまいますが、それは7章で詳解されていて、ここはそうではありません。

Objective-C同様、他のプログラミング言語もブリッジして利用することは可能でしょうか

と冒頭に書かれている通り、mruby を題材として、他のプログラミング言語を Swift で使うための方法が解説されています。

  • 8-2 ブリッジによる拡張
    • 8-2-1 ブリッジする言語の選定基準
    • 8-2-2 スタティックライブラリの準備
    • 8-2-3 プロジェクト作成
    • 8-2-4 言語へのアクセス方法を探る
    • 8-2-5 ブリッジコード
    • 8-2-6 Swiftからのアクセス

こういうハッキーな手法について知ることはそもそものSwiftという言語の成り立ちを理解する助けにもなるので、mrubyや他の言語をブリッジしてSwiftから利用することに興味があってもなくても、大変貴重な節だと思います。

コラム

章の間に挟まっているコラムに興味深いものがいろいろとあります。

たとえば

  • Swiftのメソッド呼び出し速度
  • コマンドラインでの自作モジュールの作成と利用
  • 低レベル配列処理で速度を稼ぐ
  • デバッグ出力に便利な特殊リテラル

などなど。

他にも下記のような興味深いコラムが載っています。

  • 不変性の仕組みと考え方
  • LiteralConvertibleとは
  • 最適化オプション
  • 型の型
  • 構造体の中のクラス
  • 継承したクラスにおけるメソッド使用上の注意
  • 空のコレクション定義
  • nilはどんな値よりも小さいと判断される
  • NSMutableArrayによる配列操作
  • 入れ子のOptional型とUIApplicationDelegate

その他参考情報

他書との違いを明確にするためちょっと変化球な箇所の紹介に偏ってしまいましたが、もちろん Swift という言語の解説書として大変充実しています。Amazonにはない、小見出しレベルまで記載した詳細な目次が、版元のマイナビさんのページにあるので、購入を検討する際のご参考にどうぞ。

また、「UIKit徹底解説」の著者 Natsu さんによる紹介記事も参考になります。

というわけで

そろそろSwiftをガッツリやろうと思っているiOSアプリ開発者の方は是非!

開発のプロが教える Swift標準ガイドブック
渡辺 龍司 富家 将己 鈴木 晃 加藤 寛人
マイナビ (2014-12-25)
売り上げランキング: 96,644
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away