🍣

【Day4】SwiftUIのListとNavigationLinkを写経してハマった話

に公開

はじめに

こんにちは、やすです!
今日はApple公式チュートリアル「Building Lists and Navigation」の後半に取り組みました。
バイト前の限られた時間でしたが、NavigationLinkを使った画面遷移など、SwiftUIでアプリらしさを出す部分にようやく手が届き始めてきました。

今回も軽くハマったので、その内容と気づきもシェアしていきます。


今日の学習内容

  • Listの構造を理解し、ForEachと組み合わせて一覧表示を実装
  • NavigationLinkを使って、リストから詳細ビューに遷移させるコードを写経
  • データをループ表示する際の構文ミスでエラーが出て悩む
  • プレビューのクラッシュ原因が構造体のスペルミス(longtitude → longitude)だったことを突き止める

参考:Apple公式チュートリアル「Building Lists and Navigation」

https://developer.apple.com/tutorials/swiftui/building-lists-and-navigation


ハマったこと・気づいたこと

1. ForEach の範囲指定を landmarks.indices にしたら index out of range

これは id: \.self を指定しないとダメなケースだった!明示的に .id: \.id を書くことで解決。

2. NavigationLink(destination: Text("Detail")) の位置

Listの中に書くのが正解だけど、うっかり外に書いたらビューが崩れて何も表示されなかった。

3. スペルミスで全てがクラッシュ

longtitude と書いたことで Codable がパースエラーを出し、JSONの読み込みが完全に止まってた。
Swiftってスペル一文字のミスが命取りだなと実感。


学びと今後の方針

  • SwiftUIの画面遷移は NavigationLink で割とシンプルに書ける!
  • ただし、List の中の書き方や、どこに配置するかが重要。
  • 何より「コードとデータ構造の整合性」がないとプレビューで即クラッシュする。

明日は時間がもっと取れるので、今日の復習を含めてセクション2を一通り完成させます!
また、ノートに図解とコードをまとめて、理解をさらに深めていく予定です。


おわりに

「NavigationLinkでついに次の画面に進めた!」という小さな一歩が、アプリ開発の楽しさをぐっと感じさせてくれました。
最初はHello, world!すら怖かったけど、少しずつ「自分でもアプリ作れそう」な気がしてきてます。

明日からは水曜バイトもなくなるので、いよいよ本格的に開発モード突入。Zenn記事も引き続き毎日投稿していきます!

Discussion