100 Days of SwiftUI【Day 51〜Day 55】
こんにちは、白くまコージです!
iOSアプリを開発できるようになるため、Swiftを勉強中です。
100 Days of SwiftUIのDay 51〜Day 55が完了したので、ここに記録を残します。
学習記録
Day 51 – Project 10, part 3
学習時間
80分
学んだこと
- @Bindableを使って@Observableなクラスを編集可能にする方法
- チェック結果によってViewを非活性にする方法
- scrollBounceBehaviorを使ってサイズによってスクロールを無効にする方法
- インターネットを介してデータを送受信する方法
感想
Project 10の実装パートです。
@Bindableの使い方については、少しモヤモヤしています。この後もきっと登場すると思うので、繰り返す使うことで理解を深めていきたいです。
データの送受信に利用したhttps://reqres.in/は初めて知りました。ネットワークのテストをしたい時にとても便利なサービスだと思ったので、これは覚えておきたいです。
最後に、今回の3つ目の動画は長かったです。さすがに20分の動画を見るのは疲れました。。。
Day 52 – Project 10, part 4
学習時間
50分
学んだこと
チャレンジパートのため、以下の課題に挑戦しました。
- テキストフィールドが空白だけの場合にチェックエラーとする修正
- ネットワーク通信に失敗した場合にアラートを表示するよう修正
- ユーザ情報をUserDefaultsに保存するよう修正
感想
Project 10のチャレンジパートです。
今回もなんとか全ての課題をクリアすることができました。
ただ、実装した内容が最適解かがわからないため、やはり答えが欲しいなと思ってしまいました。
Day 53 – Project 11, part 1
学習時間
60分
学んだこと
- @Bindingを使って@Stateプロパティを共有する方法
- TextEditorを使ってテキストエリアを作る方法
- SwiftDataを使ってデータを永続化する方法
感想
Project 11の解説パートです。
@Bindableと同様、@Bindingについても理解が追いついていない部分があります。複数のView間で@Stateプロパティを共有するために利用する、というのが今の所の理解です。
SwiftDataはCoreDataの後継という扱いなのでしょうか?トランザクション処理とかはまだわかりませんが、かなり簡単に実装できそうだという印象を受けました。
Day 54 – Project 11, part 2
学習時間
60分
学んだこと
- SwiftDataを使ったデータの保存および取得方法
- スターレートコンポーネントの作成方法
感想
Project 11の実装パートです。
なぜかSwiftDataによる永続化がうまくいかないので調査中です。シミュレータ上のアプリを再起動すると、データが保存されていない事象が発生しています。
SwiftやXcodeのバージョンが新しくなっているのでその影響かもしれませんが、今のところ原因は不明です。
Day 55 – Project 11, part 3
学習時間
60分
学んだこと
- SwiftDataを使う場合のプレビューの実装方法
- @Queryを付与した項目のソート方法
- SwiftDataでコンテキストから項目を削除する方法
感想
Project 11の実装パートです。
SwiftDataを使う場合にはプレビューにmodelContainerを割り当てなければいけないということでしたが、そのようなコードを付与しなくても動画で示されたようなエラーは出ませんでした。バージョンが違うからなのか、ここは少し謎でした。
alertやdismissなどの、これまでに多く登場してきた構文はだいぶ理解が深まってきました。やはり、繰り返し使うことでわかってくるのだと感じます。
ただ、相変わらずmodifierをつける位置はいまいち理解しきれていません。
まとめ
100 Days of SwiftUIのDay 51〜Day 55が完了しました。
何度も登場する構文に関してはだいぶ理解できてきましたが、登場回数が少ないものはやはり理解が追いついていないところが多いです。
繰り返し何度も学習することが理解度向上につながると思いますので、これからも継続していきたいと思います。
以上、白くまコージでした!