100 Days of SwiftUI【Day 86〜Day 90】
こんにちは、白くまコージです!
iOSアプリを開発できるようになるため、Swiftを勉強中です。
100 Days of SwiftUIのDay 86〜Day 90が完了したので、ここに記録を残します。
学習記録
Day 86 – Project 17, part 1
学習時間
60分
学んだこと
- ダブルタップジェスチャーを検出する方法
- 押しっぱなしジェスチャーを検出する方法
- 押し始めと離した瞬間を検出する方法
- gesture()の使い方
- 重なったViewに対するジェスチャーの優先順位付け
- ジェスチャーを組み合わせる方法
- allowsHitTesting()でタップを無効化する方法
- contentShape()でタップできる領域を変更する方法
感想
Project 17の解説パートです。
ジェスチャーに関しては覚えることが多くて大変な印象です。できることをある程度頭に入れた上で、必要なときに調べるようにしたいと思いました。
allowsHitTesting()はTestingという名前がついているからテスト目的ということでしょうか?明確な解説がなかったので気になるところでした。この後の実装パートでどのように使うのかを注視したいと思います。
タップ可能領域の調整はかなり細かくできそうなので、ここは使い勝手が良さそうだと感じました。
Day 87 – Project 17, part 2
学習時間
50分
学んだこと
- Timerを使った周期処理の実装方法
- アプリがバックグラウンドに入った時、戻った時の検知方法
- アクセシビリティの「カラー以外で区別」、「視差効果を減らす」、「透明度を下げる」に対応する実装方法
感想
Project 17の解説パートです。
scenePhaseを使ってアプリがバックグラウンドに入った時と戻った時を検知するロジックは色々と使えそうだなと感じました。これは覚えておくべき項目の1つだと感じました。
アクセシビリティに関しては、前回のボイスオーバーに加えて3つの項目が登場しました。今回登場したもの以外にもあると思うので、考慮しなければいけないことが多くて大変だと感じました。ここは徐々に学習できたら良いと思います。
Day 88 – Project 17, part 3
学習時間
60分
学んだこと
- デバイスの向きを指定する方法
- Viewの位置を少しずつずらして表示する方法
- Viewをドラッグして非表示にする方法
感想
Project 17の実装パートです。
今回作成するアプリはiPhoneが横向き前提なので、デバイスの向きを横向き固定に変えました。これは作成するアプリによっては必須の設定なので覚えておこうと思いました。
Viewの位置を少しずつずらして積み上がったカードを表現していましたが、それをViewのextensionで実装するという発想がすごいと感じました。この発想を自分で出せる気がしなかったので、ただ感心するばかりです。
Viewのドラッグ時の動作の実装方法もすごいと思いました。今回は実装方法がすごいコードが多かったので、自分の実力のなさが少し嫌になってしまう回でした。
Day 89 – Project 17, part 4
学習時間
40分
学んだこと
- ドラッグしたときにViewの色を変える方法
- 「カラー以外で区別」がオンの時を考慮した実装方法
- カウントダウンタイマーの実装方法
- アプリがバックグランドに入った時の動作の実装方法
- タップを無効化する方法
感想
Project 17の実装パートです。
カウントダウンタイマーの実装方法はかなり使えそうだと感じました。特にアプリがバックグラウンドに入った時の制御は覚えておいた方が良さそうです。
今回のパートでallowsHitTesting()を通常のアプリの実装として使っていたので、テスト目的のものというわけではなさそうです。条件によってタップを無効化したい場合に使えそうだと思いました。
Day 90 – Project 17, part 5
学習時間
70分
学んだこと
- アクセシビリティを考慮した実装
- 構造体初期化のシンタックスシュガー
感想
Project 17の実装パートです。
今回は新しい技術要素は特になく、これまで学習してきたものを使ってアプリの仕上げをする回でした。
アプリが大きくなってくると、どうしてもコードが見づらくなってしまうので、そこをなんとかしたいなと思いました。今回のアプリの場合だと、ViewModelを使うことで少しはよくなりそうだと感じたので、次のチャレンジパートでそのお題が出るかもしれません。
まとめ
100 Days of SwiftUIのDay 86〜Day 90が完了しました。
今回のアプリは実装方法がすごかったです。自分の発想でここまでできるようになる気がしないので、少し気が滅入ってしまいました。勉強を続けることで、このようなアプリを自分で作れるようになるのだろうか。。
とはいえ、このコースもここまできたので諦めずに最後まで続けたいと思います。
以上、白くまコージでした!