どもども。Reoです。
「詳解Swift」の第3版を一読したので紹介していこうと思います。
私がSwiftでのアプリ開発を始めた際に、同じ「詳解Swift」の初版を購入しました。
最初の詳解Swiftは以下のような表紙です。
新品価格 ¥3,218から (2017/8/4 11:05時点) |
その当時は、Swift2が出るか出ないかぐらいの時でした。
こちらの「詳解Swift」はSwift1の解説がされたもので、Swiftの1と2では書き方が変わってしまい、必要なところだけを参考程度に読むという形で活用していました。
その後Swift2に対応した「詳解Swift 改訂版」が出版されました。
新品価格 ¥3,456から (2017/8/4 11:11時点) |
そして今回、Swift3に対応した「詳解 Swift 第3版」を一読しました。
第3版を購入するかどうかはそこそこ迷いました(なにせ技術書は1冊が高い!)。
しかし、新しい言語なのでとにかくバージョンごとで進化が著しく、破壊的な変更がされていることもあり、今から勉強をするなら絶対に新しく買った方がいいと思い、第3版を購入しました。
最近ではSwiftの文法書もいくつかあるのかもしれませんが、当時は本書ぐらいで、他のSwiftに関連する本のほとんどはアプリを作ることが目的のものばかりでした。
本書の構成
構成自体はどれもほとんど同じですが、第3版はコーディングとデバッグの章と、付録にSwiftの標準ライブラリの簡単な種類と、Swiftの構文図が追加されています。
全部で17章で構成されています。
CHAPTER01 Swiftでプログラミング CHAPTER02 関数 CHAPTER03 構造体 CHAPTER04 オプショナル CHAPTER05 基本的なデータ型 CHAPTER06 パターン CHAPTER07 演算子 CHAPTER08 クラスと継承 CHAPTER09 メモリ管理 CHAPTER10 プロトコル CHAPTER11 拡張 CHAPTER12 エラー処理 CHAPTER13 クロージャ CHAPTER14 ジェネリクス CHAPTER15 C/Objective-Cとのデータ受け渡し CHAPTER16 Objective-Cとの連携 CHAPTER17 コーディングとデバッグ APPENDIX A.Swiftの標準ライブラリ B.構文図
500ページ越えのボリュームです。一読するのに大分かかりました。頑張って読んでも4,5日くらいはかかりそう・・・。
他言語のプログラミング知識がある方向け
本書の「はじめに」に書かれている部分を少し引用させていただきます。
本書は、
C言語および何らかのオブジェクト指向言語で多少のプログラミング経験がある方を読者として想定 し、Swift 3の概要の把握からジェネリックプログラミングの入り口までの導入を目標としています。従って、ポインタとは、あるいはオブジェクト指向が何かといった解説は一切していません。一方、Objective-Cの知識や経験は必要ないように配慮して記述しています。
このように書かれているように、
当たり前のように何の説明もなく三項演算子が出てきたときは、C言語の勉強しておいてよかったと思いました。しかも三項演算子BANBAN出てくるので、C言語を知らなかったら、なんやこれ説明してよプンスコってなってたと思います。そして投げ出してたかもしれない・・・。
(ちなみにC言語を勉強した時の記事はこちら「「新版 明解c言語 入門編」を一読してみました」)
なので、C言語の知識あるいはC言語を基にして作られた系の言語の知識は必須だと感じました。
Xcodeを触ったことがある方向け!と書きたいのですが別にそこはいいのかなー。微妙な感じです。
Xcode自体の説明はあまりありませんが、コメントの書き方やちょっとした機能等の説明が第17章で出てくるので使ったことがあるとより理解しやすいかもしれないです。
理解しやすいというか、よりタメになるという感じですかね。
本書の「はじめに」には、
また、Xcodeの使い方やiOSアプリのインタフェースの作り方についても説明はしません。
これ1冊読みさえすればアプリが作れる、という本ではありません。
と書かれています。
あくまで「Swift」についての説明になっています。
よくよく考えれば他言語の文法書も、それを読みきって何かアプリケーション等を作れるようになるかと言わればNOですし、またその言語を使って何かを製作する場合は別の本やサイトを参考にする必要があると思います。それと同じ感じですかね〜
以下の方法で読みました。
Playgroundを用いて例題を写そう
本書ではターミナルを用いてSwiftのプログラムを実行する方法が書かれていますが、基本的にほとんどの例題はPlayground上で動かせます。
自分は一応Swiftを用いていくつかアプリを製作しているので、理解しているところの例題はさっと読み流し、理解していないところの例題はPlaygroundを用いて実際に動かしながら一読しました。
なんだかんだ結局第2章以降はほぼ全ての例題を写した気がします()
Playgroundに写し、理解しづらいところは値を変更してみてじっくり理解していくのが大切だと思います。
付箋を用意して一読
いくつか技術書系を読んできましたが、付箋を用いて読むことってあんまりしなかったんですよね。
今回付箋を用意して、知らなかったところや大事だと思ったところに付箋をつけてながら読んだのですが、結構付箋って大事だなーと思いました。
後々読み返すとするとすればこの語句なんだっけ〜って探すと思うので、正直索引さえあればいいかなぁとも思うんですけどね。
それでも一目見て内容を覚えて使えるようになれるわけではないので、また少し後に付箋をつけた箇所だけ読み返し、理解していればその付箋を外すといった形で再読したいなと思っています。
読破した感想
本書のAmazonレビューを見てみると「実務でハマった時にこの本で調べると知りたいことが書いてない場合が多い」と書かれているんですね。
実際その通り!だと思うんですよ。
というのも、Swiftを用いてアプリを3つ出している自分が知らないことがいっぱい書かれてるんですね。知らなかったところや理解が浅かったところに付箋をつけていったところ、受験生かよっていうぐらい付箋がつきました。
つまり、Swiftのことを大して知らなくてもiOSアプリ等は作れるんですよ。
例えばTwitterやメール等のリストを作ろうと思ったとき、UITableViewというものを設置してあげるだけで、簡単に作れるんですね。
そのUITableViewがどういう構造かというのはほとんど気にする必要なく、用意されたものを組み合わせて配置していけばアプリ自体は作れるわけです。
GUIで部品を配置して、ちょろっとコードを書けばアプリが1つ作れるみたいなもんですね。
実際それだけでも簡単にはいかないもんですが、そういったUITableViewの使い方やUILabelの使い方、UIButtonの使い方等は一切出てきません。
実務ではそういったものを利用することになるでしょうし、そういうときに読んで参考になるのかと言われればNOだと思います。
例えば、メモリ管理ができなくて困っていたときに、Swift1の方の本書を参考にしました。ただ、その時はそれを読んでも正直全然わからなかったんですね。
メモリ管理という章があって、その章を読んでみたのですが、そこに至るまでのSwiftの知識が足りてなくて理解できませんでした。参照型のデータがどれのことだかわかっていなく、さらにはその参照型の意味もわからない状態で読んでも?しかないわけです。
しかし今回最初から最後までを通して読んで見て、やっとその辺も理解できた気がします。
お恥ずかしながら、タプルもクロージャもプロトコルもエクステンションも何も知らずにアプリを作ってきたんですね。
それでも実際に動くアプリを作ることができますし、めちゃくちゃに困ることってなかったんですよ。
どこかで見かけた言葉を借りると、「その場凌ぎのプログラミング」でこれまでやってきたわけです。
2つ目のアプリができる頃に、1つ目アプリのコードを見てなんだこのクソみたいなコードはと思いました。同様に、3つ目のアプリができる頃には2つ目のコードを見てナニコレ読みづら!!ってなりました。
本書を読んだ後で、自分の今まで書いてきたコードを見るともう全部書き直したくなりました。
正直自分にとっては丸々一冊全部大事なことでした。
ただ読んだことが実際に活用できるかは別問題ですけどね。そこは頑張っていくしかない・・・。
個人的にはオススメの一冊ですが、如何せんSwiftのバージョン次第というところもあります。
買ってすぐに読み始めるなら良いですが、以前の私のようにプログラミング初心者が作って覚える系の本と同時に文法書もいるでしょーというノリでの購入はあまりオススメしません・・・。
いざ読もうとしたときにはもうバージョンが変わっていて、本自体も新しいのが出ているという状況になりかねません (笑)
購入しようと思っている方はぜひバージョンに気をつけてください・・・
ただ一度読破してしまえば、バージョンが上がってもあとはAppleのリファレンスを読めばどうにかなるような気もします。
といった感じで大した紹介にも書評にもなっていませんがこの辺で。
アプリはどうにか作れるかもしれないけれど、Swiftができる!とは言えないなーと思っていたの、本当にそれって感じですわい。
ではでは。
コメントはありません。
現在コメントフォームは工事中です。