古い書籍で勉強するのは危険!

学習に使用させて頂いていた書籍

1人でアプリを作る人を支えるSwiftUI開発レシピ

こちらの書籍で学習をさせて頂いておりました。

先に伝えておきますが最後まで読んでいません。
その理由を説明は書籍が悪いということだけではありませんのでご認識をお願い致します。

この書籍の大まかな内容

序盤から中盤にかけてViewの種類やそれぞれの使い方について学びます。
終盤にかけてCombineを用いたデータバインディングについて学びます。
最後にかけてそれまで学んだことなどから簡単なアプリを作成します。

私は簡単なアプリ開発の1つ目が終わるくらいで読むことをやめました。

なぜこの書籍を選んだのか

まず、前提としてこの書籍の初版発行年月日は2020年11月20日になります。
私が購入したのが2024年12月になります。
発行年月日は確認せずに購入してしまいました。(伸び代です)

購入した理由は下記になります。
・「SwiftUI 参考書 おすすめ」で検索して2024年更新のサイトでおすすめにも載っていたこと (1つしかなかったけど)
・Amazonのレビューも悪くなかったこと (最新のレビューはなかったけど)
・書籍のタイトルが「1人でアプリを作る人を支えるSwiftUI開発レシピ」だったので個人開発に役立つかなと思ったこと
・Widgetについても学びたかったのでちょうどいいかなと思ったこと

最初ググる前にAmazonで適当に調べちゃったんですよね。
ブラックフライデーで他の書籍を買いたくてついでに見つけちゃったって感じで。。笑
で、書籍のタイトルが自分の求めていたことに近く、Widgetについても記載されているということ、さらにレビューも悪くないことで最後にちょっとググって載ってるサイトもあるしいいか!で購入したという経緯になります。

なんで途中で辞めたのか

理由1

4年前のものなので現在では推奨されていないものがあった。
はい、これは確実に私が悪いです!
最初の方でこれには気づいていたのですが、非推奨なメソッドなど見つけたらその都度調べて現在推奨されているものに置き換えて進めたいいかと思いそのまましばらく進めていました。

理由2

序盤の基礎的な部分の説明はそれなりに丁寧だったのですが、終盤では記載漏れなのか何も説明されていないコードが出てくる。
参考書に記載されているコード内では定義されていないメソッドを使用するコードが出てきたので、SwiftUIで提供しているモジュールもしくは、継承しているクラスで定義されているメソッドかなと思い調べても存在しておらず、読み進めると「先ほど定義して~~メソッドを呼び出してます」みたいな記載がされており何度見返してもどこにも定義していないといったものがある。

理由3

参考書通りのコードで動かないものがある。
これに関しては古い書籍だから。という理由も考えられるのですが、
どう考えてもメソッドないで定義した変数に保持しようとしてもメソッド抜けたら参照が破棄されるんだから動かなくない?みたいなことや、画像のURLからData型に変換する処理をメインスレッドで行っていてスレッドのブロッキングエラーが起きるなど、古い新しいが関係ないようなエラーが起きるコードがある。

これらの理由から新しい書籍でちゃんと評価の高い書籍を買い直した方がいいと判断して途中で辞めることにしました。
まぁそもそも非推奨だからとかじゃなく、最新の機能を使った書き方で説明されているであろう新しい書籍で学ぶべきですよね。

まとめ

書籍批判のようになってしまいましたが古い書籍で学ぶことのデメリットを体感したので今後同じことをしないように記事にしてまとめました。
インフラじゃないので変化が早くて当たり前ですね。

今後は以下のことくらいは守って購入したいと思います。
・ググってどのサイトでもおすすめしているような書籍を探す
・発行年月日が最新のものを探す
・Amazonで探す場合も最新のレビューをなるべく参考にする