プログラマ英語学習日記

プログラミングと英語学習のまとめなど

UdemyのSwiftUIコースを受けてみた

冬休みの勉強かねて、ここ一ヶ月ほど 常時90%Offセールで景表法的にアレな(笑) Udemy のコースを受けてみました。

受けたのはSwiftUIのコース、DogGram

Instagramライクな犬専用写真アプリをFirebase+SwiftUIで構築するというものです。

一通り終えたので以下レビューでも

動機

ちょっと大きめのSwiftUIアプリを作ってみたかった というのが動機です。
厳密にはちょい大きめのアプリでどういうふうにデータ構築やDIの管理をするかを知りたかった。

SwiftUIのコースは多数ありますが、やや大きめ(10画面以上)のものを作るコースは案外ない。
だいたいが1~2画面程度のアプリをたくさん作るというものです

そんななか、このDogGramは比較的大きそうなアプリを1個作るというのもで、目的に近いと判断し受講しました。

コース内容

コースは前半で一気にモックUIを作り、後半でFirebase連携を行いデータつなぎこみを行います。

Firebaseなのでデータ管理部分は楽ですね。AuthとFirestore、あと局所的にAnalyticsを使います。

コースはほとんどXcodeの画面を録画したものです。著者の解説を聞きながら延々エディタの画面を眺めます。

感想でも

ぶっちゃけSwiftUi自体は業務経験はないものの、当然そこそこ組んだ経験があります。さらに会社では似たようなFrameworkであるFlutterを業務としてさわっています。
なのでこのへんの経験はそこそこ豊富です。その前提で。


一言でいうなら、「ターゲットがよくわからない」

  • @State などPropertyWrapperをほとんど解説せずどんどん進む
    • 初心者にはつらそう
  • 一方、アプリ構造自体は「小さいサンプル」用の構造をそのまま中規模アプリに適用してる
    • もちょっとアプリ規模が大きくなると破綻しそう

というなかなかつらいもの。Apple公式のSwiftUIチュートリアルの次ぐらいがベストタイミングでしょうか?

さらにエラーハンドリング系が総じて甘く、「こう書くのがプロだぜ」というセリフと全然一致してない(笑)
いやいや、プロはそんなスケールしない構造にせんがな...今どきクリーンアーキテクチャですらないないんて...

正直コード面はビミョーでした。初心者向けに意図的にシンプルな構造にしてるのかもしれませんが、それにしては基礎の基礎をすっ飛ばしてるのが気になります。

著者がSwiftになれてないような印象すら受けます(不変をvarで定義したり、enumにしたらもっと楽できるのに、というのが多い)


また延々エディタを眺めるだけの動画になってるのもつらい。

ぶっちゃけますと、ライブコーディングを見てるよう 。しかもゴールに向かって最短距離を突っ走っているので見てるこっちは何がなんだか。
著者は完成したUIが頭の中にあるのでそこに向かって進めばいいのでしょうが、視聴者側は「ゴール」が見えないままただただ写経するだけ。先に今回の動画内でどういうUIを作って、そのためにはこういうUI構造にする、という解説のあとにコードを書いてほしかったです。

このへん、以前受けた Flutterコース は解説用の動画が豊富で非常に良かっただけに、悪い意味でギャップが目立ってしまいました。


とまぁなかなか厳しいレビューになってしまいました。期待値が高すぎたのが要因でしょうか。

ただし 1800円の価値は十分にありました。そのへんのSwiftUI本の半額ですし。それ以上の収穫は間違いなくあったと思います。が、定価の2万では絶対に買わないように(笑)

最後に

まぁいろいろ構造が気に入らなかったので、今組み直してます(笑)

今どきのSwiftUIなら、最低でもクリーンアーキテクチャとSwiftConcurrencyぐらい対応したいですよね。そんなわけでUIはそのままバックグラウンドの構造を一新してます(笑)

できたらまたGithubで公開します(ただしコースを受講者でないと動かないように、意図的に一部コード/リソースを省くつもりです)