100 Days of SwiftUI【Day 81〜Day 85】
こんにちは、白くまコージです!
iOSアプリを開発できるようになるため、Swiftを勉強中です。
100 Days of SwiftUIのDay 81〜Day 85が完了したので、ここに記録を残します。
学習記録
Day 81 – Project 16, part 3
学習時間
40分
学んだこと
- Listにスワイプアクションを追加する方法
- 通知を設定する方法
- XcodeにSwift package dependenciesを追加する方法
感想
Project 16の解説パートです。
Listのスワイプアクションのサンプルコードでは、role: .destructiveなボタンを定義していましたが、自分のシミュレータで試したところ特に削除の処理を加えなくてもボタンを押したらListの行が削除されてしまったのにはびっくりしました。role: .desctructiveをつけるだけで自動的に削除の処理が追加されるのだろうか?
パッケージ依存性の追加のためのサンプルであるSamplePackageをGitHubで実際に見てみたらREADMEとかがきちんと書かれていて感心しました。ライセンスについてもちゃんと触れられていて、Paul Hudsonさんは細かいところまできちんとする人なんだと思いました。
Day 82 – Project 16, part 4
学習時間
40分
学んだこと
- タブビューの実装
- SwiftDataを使った実装
- Queryのフィルタを動的に変える方法
感想
Project 16の実装パートです。
基本的にはこれまで学習してきた内容を使っての実装なので新しい技術要素はありませんでした。
ただ、自作のViewを複数使い回す実装は初めてでした。同じ内容をフィルタを変えて切り替えるタブビューではたしかに使える実装方法だなと思いました。
タブの項目についてはアイコンとテキストを適切なものにするだけで、かなり見映えが良くなるなと思いました。特にアイコンの選択が重要だなと感じました。
SwiftDataのQueryの構文は再登場でしたが、書き方はほとんど覚えていませんでした。この書き方を覚えるのは相当難しいので、使うときには毎回復習が必要だと感じました。
Day 83 – Project 16, part 5
学習時間
60分
学んだこと
- QRコードの作成方法
- QRコードのスキャン方法
- スワイプアクションの実装方法
- スワイプアクションと編集ボタンの併用方法
感想
Project 16の実装パートです。今回は実装量がかなり多かったです。
QRコードの作成でCoreImageを使用しましたが、相変わらずコードの書き方がよくわからなくて理解が追いつかないです。
スワイプアクションのところでさらっと説明されましたが、何気に”swipe fully to activate”は重要な機能だと思いました。僕もメールの一覧から不要なものを削除するときによく使うので、ここは覚えておこうと思いました。
あとは、編集ボタンからの削除を実装する際に、今回はListのmodifierとしてtagを追加しましたが、これの理由がいまいちよくわかりませんでした。以前onDeleteを使って削除をしていたときには付与していなかったので、そことの差が気になるところです。
Day 84 – Project 16, part 6
学習時間
50分
学んだこと
- 画像へのコンテキストメニューの設定方法
- 通知の実装方法
感想
Project 16の実装パートです。
通知に関してはテストが大変そうだなと思いました。今回のアプリでは、すぐに試すためにインターバルの設定で代替していましたが、実際に時間指定にしたい場合は、その時間まで待って本当に通知が来るか試さないといけないので、ここを簡易的に検証できるような機能があると良いなと感じました。そうじゃないと、本当に通知処理がちゃんと実装できているのか心配になってしまいそうなので。
Day 85 – Project 16, part 7
学習時間
100分
学んだこと
チャレンジパートのため、以下の課題に挑戦しました。
- 見込み顧客のリストに接触済みかのアイコンを追加する
- リスト項目に対する編集画面を追加する
- リストに対するソート順を選択できる項目を追加する
感想
Project 16のチャレンジパートです。
1つ目と2つ目の課題については特に難しくなかったので問題なく実装できました。
3つ目に関しては、以前(Project 7)のアプリでソート順を選択するアイコンの実装をしたので、それと同じようにやれば問題なくできると思って挑みましたが、今のところ実現ができていません。ソートに関する処理自体は実装できたのですが、ソート順を選択した際にその変更を検知する処理が実装できませんでした。
ここでずっと詰まっているのも時間がもったいないので、とりあえずは一旦諦めて先に進みたいと思います。時間があるときにまた挑戦してみたいです。
まとめ
100 Days of SwiftUIのDay 81〜Day 85が完了しました。
相変わらず理解できないところもありますが、なんとか最後まで走り切りたいと思います。
以上、白くまコージでした!