uhooi
uhooi
トビさんと Twitter でお話しした際に出た Effective な項目です。 > 可読性もそうですが、複数の View について異なるAlignment を貼りたい場合など、ZStack ではかなり面倒になったりします。(たぶん一度遭遇すれば納得できるかと思います > ZStack を使いたいとなるのは、 `zIndex` を使いたいケースや、ベースとなる View の frame に縛られないようにしたいケースだけだと、現時点では考えていますー ## References - https://twitter.com/the_uhooi/status/1542009802787659776 - https://www.swiftbysundell.com/articles/backgrounds-and-overlays-in-swiftui/
当たり前かもしれません 🙏 SwiftUI の View はネストが深くなるので、インデントを半角スペース4つにすると読みづらいです。 半角スペース2つが望ましいです。
GeometryReader を使うことで、親 View のサイズや座標を取得できます。 非常に便利ですが、親 View のサイズや座標を使わなくても実現できることは、GeometryReader を使わないほうがネストが減って意図が伝わりやすくなることが多いと思います。 例えば「View を親 View の幅に合わせる」は以下のように実現できます。 ```swift // △ var body: some View { GeometryReader { geometryProxy in Text("Foo") .frame(width: geometryProxy.size.width) } } ```...
View にイニシャライザ経由で引数を渡し、それを保持したい場合、自動で生成されるメンバーワイズイニシャライザを使うとコードがスッキリします。 ```swift // ○ struct FooView: View { var foo: Int var bar: String var body: some View { // ... } } FooView(foo: 1, bar: "bar") ``` 変数は外から呼ばれないので...
当たり前だったらすみません🙏 複数の View を同時にプレビューする場合、View ごとにプレビュー用のシミュレーターが表示されて見づらいです。 `VStack { ... }` で括ることで1つのシミュレーターに表示され、見やすくなります。
## References - #126 - https://github.com/apple/swift-package-manager/blob/main/Documentation/ReleaseNotes/5.6.md#manifest-api-improvements - https://developer.apple.com/documentation/swift_packages/package/dependency/2878262-package
ref: https://github.com/JohnSundell/Publish/pull/128
ref: https://github.com/ios-osushi/website/pull/30
ref: https://github.com/ios-osushi/website/pull/16