天の月

ソフトウェア開発をしていく上での悩み, 考えたこと, 学びを書いてきます

SwiftUIの入門書をいろいろ読んでみた所感

Swift UIの入門書で有名そうなものは一通り読んでみたので、所感を書いていきます。(以下、常体)

前提

  • Javaは2年半くらい書いていた
  • スマホ開発の経験なし。Swiftも完全未経験
  • それぞれ2周読んだ段階での感想。(1周目は概要や構成を掴み、2周目に一通りコードを書きながら読んでみた)

公式チュートリアル

developer.apple.com

英語というハードルはあるが、まずはこちらをやってみた。所要時間は5時間程度だが、簡単なスマホアプリの画面くらいは作れるようになる。
ただ、あくまでもチュートリアルなので、過度な期待は禁物。似たような機能をどのように使い分けするのかとか、機能紹介が限定的にしかされていないというのはある。

個人的には、チュートリアルをやったら公式ドキュメント読もう、のステップだときつかったので、以下に書いたような入門書をまずはチュートリアルの後には読んでみて、その後公式ドキュメント、の方が流れとしてはおすすめしたいと感じた。

読んだ本

説明が他の本と比較して分かりやすい。他の本では今一つ分からなかったけどこの本を読んだら分かった部分が多い。
文法解説は他の本と比較すると少ないが、ハンズオン形式で学びやすい。
実践的な話(こういう理由でこのように書くことが多いなど)も割とあるのが良かった。

個人的には一番良かった本。自分と同じようにスマホ開発未経験でまず何からキャッチアップしたらいいのか分からない、という人にはこれを勧める。

各セクションが始まる前に、どのようなことがこのセクションを通してできるようになるのかイメージがつくUI+解説があるので、緩急をつけて読みやすい。*1
解説も分かりやすいし、Swiftの基本文法も説明が丁寧にされている。
あと、本の理解を深めるためにサンプルコードを壊して色々実験してみる、というのは一番やりやすかった。

はじめにの所にも書いてあるが、入門書としては一番難しい部類。Swiftの文法はマスターしているのが前提だし、UIKitでの開発に慣れている人に向けた解説になっている箇所も多くある。
ただし、その分Swift UIの説明は他よりも全然詳しく、この書籍でしか紹介されていないような機能の組み合わせとか、応用例も充実している。(できあがるアプリのクオリティも他書籍より明らかに高い)
あと、画面遷移の設計に関する説明が一番分かりやすかった。

Swiftの概要→基本文法の説明→いろいろなアプリを作ってみる過程を解説、という構成が一番好きだった。
できるアプリが実用的で、「勉強で作ったアプリ」感が少ない。できた後にも自分でもアプリを触ってみたくなるので、読んでいて楽しい。

その分、Swift UIの機能説明は必要最低限に留まっているが、楽しく勉強したい人にはおすすめ。(文法の解説は結構省かれているので、他言語をある程度学んだ人でないと厳しいかもしれない)

説明がめちゃくちゃ初歩から分かりやすく書いてあるので、一番本を読み切る難易度は低い。
環境回りの部分は、他書籍だと解説が足りずググることになるものもありそうだが、この書籍であれば本で言われた通りにしていけば安心。

ただ、タイトルにあるように2日で全て読み切るのは結構きつい気がするのと、やや無理やり2日で終わるようにパート分けしているため、知識や機能をお互いに関連付けさせることがしにくい。

基礎から学ぶ SwiftUI

基礎から学ぶ SwiftUI

  • 作者:林 晃
  • シーアンドアール研究所
Amazon

純粋な説明量としては一番少ない。コンパクトに説明がまとまっているし、冗長に感じられるような説明もほとんどなかった。
また、アプリベースの解説(実際にアプリを作り上げながら解説するのを主としている解説)ではなく、機能ベースの解説なので、他の書籍と比較して辞書的に使いやすい

字が小さいのと白黒でぱっとみで参照しにくいのだけが難点。

どの書籍よりもLessonがかなり細かく分かれているのが良かった。
「え、いきなりこれ作れるのか。。?」みたいな題材が少なかったので、心理的ハードルも低くストレスなく読めた。

他の書籍にはほとんどない練習問題があるのは嬉しいが、実際に何かをローカルで作ってみて試行錯誤して学ぶのではなく、単純暗記を試すような問題(プログラムのコードを穴埋め形式で埋める、説明が書いてあって間違っているものを選ぶ...)が多めなのは残念だった。

説明が細かい。なんで?と疑問にぶちあたる所ではほぼ100%解説がされていて驚いた。
他の本ではよく解説がわからなかったり疑問が解消されずにこの本にくることも多くあった。

一方で、説明が冗長に感じる部分も多くあったので、ある程度他言語でプログラミングしている立場だと、内容が薄いと感じるかもしれない。(逆に、プログラミング自体が初めてならめちゃくちゃおすすめできる本)

*1:例えば地図などは自分が今度作るアプリと馴染みが薄いから軽めに流し読みしようなど