🍣
【Day4】SwiftUIのListとNavigationLinkを写経してハマった話
はじめに
こんにちは、やすです!
今日はApple公式チュートリアル「Building Lists and Navigation」の後半に取り組みました。
バイト前の限られた時間でしたが、NavigationLinkを使った画面遷移など、SwiftUIでアプリらしさを出す部分にようやく手が届き始めてきました。
今回も軽くハマったので、その内容と気づきもシェアしていきます。
今日の学習内容
- Listの構造を理解し、ForEachと組み合わせて一覧表示を実装
- NavigationLinkを使って、リストから詳細ビューに遷移させるコードを写経
- データをループ表示する際の構文ミスでエラーが出て悩む
- プレビューのクラッシュ原因が構造体のスペルミス(longtitude → longitude)だったことを突き止める
参考:Apple公式チュートリアル「Building Lists and Navigation」
ハマったこと・気づいたこと
ForEach
の範囲指定を landmarks.indices
にしたら index out of range
1. これは id: \.self
を指定しないとダメなケースだった!明示的に .id: \.id
を書くことで解決。
NavigationLink(destination: Text("Detail"))
の位置
2. Listの中に書くのが正解だけど、うっかり外に書いたらビューが崩れて何も表示されなかった。
3. スペルミスで全てがクラッシュ
longtitude
と書いたことで Codable がパースエラーを出し、JSONの読み込みが完全に止まってた。
Swiftってスペル一文字のミスが命取りだなと実感。
学びと今後の方針
- SwiftUIの画面遷移は
NavigationLink
で割とシンプルに書ける! - ただし、
List
の中の書き方や、どこに配置するかが重要。 - 何より「コードとデータ構造の整合性」がないとプレビューで即クラッシュする。
明日は時間がもっと取れるので、今日の復習を含めてセクション2を一通り完成させます!
また、ノートに図解とコードをまとめて、理解をさらに深めていく予定です。
おわりに
「NavigationLinkでついに次の画面に進めた!」という小さな一歩が、アプリ開発の楽しさをぐっと感じさせてくれました。
最初はHello, world!すら怖かったけど、少しずつ「自分でもアプリ作れそう」な気がしてきてます。
明日からは水曜バイトもなくなるので、いよいよ本格的に開発モード突入。Zenn記事も引き続き毎日投稿していきます!
Discussion