Sunabalab
Sunabalab Tech Blog
For every software enginners
Newest post
Latest posts
All posts[iOS] UIKit 100% だったプロジェクトの SwiftUI 化の終わりが近い話(参画時の面談から現在、そして)
どうも、@tobi462 です。
時は遡って、2024年11月にある iOS プロジェクトに参画しました。
そのプロジェクトは Objective-C コードこそ無かったものの、UIKit・RxSwift 100%(つまり SwiftUI や Concurrency のコードは 0)で Coordinator パターンが採用された、今から見ると1世代(あるいは見方によっては2世代)前のコードベースでした。
[SwiftUI] プレースホルダ(.redacted)の実装パターン
前回 に続いて、今回も実装パターン的な話になります。
フォーム部品のバリデーションの実装パターン
Single Source of Truth の題材としてログインフォームが例にあげられることがあります。
[SwiftUI] ウィンドウ(SafeArea)のサイズを Environment で取得できるようにする
親 View からの提案サイズを知りたいときには GeometryReader を利用できます。
スクロールインジケータを点滅させる(iOS 17、互換実装)
本記事は beta 版ソフトウェアの内容を含んでいるため、将来的に挙動が変更される可能性があります。
iOS 17 では ScrollView のインジケータを点滅させる2つの API が追加されました。
iOS 17 の新しい onChange(of:initial:_:) とその互換実装
本記事は beta 版ソフトウェアの内容を含んでいるため、将来的に挙動が変更される可能性があります。
iOS 17 では 新しいバージョンの onChange が追加されました。
ForEach のような API を持ったコンテナ View の作り方(型パズルを解く) - Part 2
前回の記事
では ForEach のような API を持つ、何の装飾もされないプレーンな List である PlainList を作成しました。
今回は応用として、連番付きのリストを作成してみます。
ForEach のような API を持ったコンテナ View の作り方(型パズルを解く)
SwiftUI において繰り返しを表現する ForEach では、主に2つの主要な API の利用方法があります。
ナビゲーションバーの背景色・文字色を変更する
SwiftUI では toolbarBackground を使用してナビゲーションバーの背景色をカスタマイズすることができますが、この API は iOS 16+ からしか利用できず、かつ文字色を自由に変更する API は iOS 17 時点でも提供されていません。
この記事では SwiftUI-Introspect を利用して、裏にある UINavigationController にアクセスし、ナビゲーションバーの背景色・文字色を変更する方法について紹介します。
padding に負の値(マイナス値)を指定すると便利な例
SwiftUI で余白を設定するためには padding を使用しますが、正の値だけでなく負の値を指定することもできます。