[iOS] SwiftUI で続けたこと・やめたこと(2026年版)
SwiftUI でアプリの開発を続けていく中で、ずっと使い続けているコードパターンやテクニックもあれば逆にやめたものもあります。
前回の記事では開発プロセスや設計などのエンジニアリングに焦点を当てましたが、この記事ではコードパターンに焦点をあて、
- 現在どのようなプラクティスやコードパターンを採用しているか
- それはどのような理由・哲学に基づいているか
SwiftUI でアプリの開発を続けていく中で、ずっと使い続けているコードパターンやテクニックもあれば逆にやめたものもあります。
前回の記事では開発プロセスや設計などのエンジニアリングに焦点を当てましたが、この記事ではコードパターンに焦点をあて、
どうも、@tobi462 です。
時は遡って、2024年11月にある iOS プロジェクトに参画しました。
そのプロジェクトは Objective-C コードこそ無かったものの、UIKit・RxSwift 100%(つまり SwiftUI や Concurrency のコードは 0)で Coordinator パターンが採用された、今から見ると1世代(あるいは見方によっては2世代)前のコードベースでした。
前回 に続いて、今回も実装パターン的な話になります。
Single Source of Truth の題材としてログインフォームが例にあげられることがあります。
親 View からの提案サイズを知りたいときには GeometryReader を利用できます。
本記事は beta 版ソフトウェアの内容を含んでいるため、将来的に挙動が変更される可能性があります。
iOS 17 では ScrollView のインジケータを点滅させる2つの API が追加されました。
本記事は beta 版ソフトウェアの内容を含んでいるため、将来的に挙動が変更される可能性があります。
iOS 17 では 新しいバージョンの onChange が追加されました。
前回の記事では ForEach のような API を持つ、何の装飾もされないプレーンな List である PlainList を作成しました。
今回は応用として、連番付きのリストを作成してみます。
SwiftUI において繰り返しを表現する ForEach では、主に2つの主要な API の利用方法があります。
SwiftUI では toolbarBackground を使用してナビゲーションバーの背景色をカスタマイズすることができますが、この API は iOS 16+ からしか利用できず、かつ文字色を自由に変更する API は iOS 17 時点でも提供されていません。
この記事では SwiftUI-Introspect を利用して、裏にある UINavigationController にアクセスし、ナビゲーションバーの背景色・文字色を変更する方法について紹介します。