タグ

ブックマーク / zenn.dev/ueshun (2)

  • LazyVStackを使用すると描画処理が何度も走ってしまう

    概要 iOS14.0で利用できるようになったLazyVStackにより、SwiftUIでの開発がやりやすくなったように感じます。 しかし私が携わっているプロジェクトにて少し複雑なレイアウトをLazyVStackを用いて組むと、スクロールがカクついてしまうような事象が発生しました。その一因として、LazyVStackの中にどのようなコンポーネントを配置するかによって毎回レンダリング処理が走ってしまうことが挙げられそうでした。 今回は自分がハマったコンポーネントの配置方法を紹介したいと思います。 Stack+ForEach LazyVStackの中にVStack/HStack/ZStackを配置して、さらにその中でForEachを使うケースは多々あるのかなと思います。 例えば文字列を表示するシンプルなレイアウトを組んでみます。 再描画される書き方 struct ContentView: Vie

    LazyVStackを使用すると描画処理が何度も走ってしまう
    invent
    invent 2023/06/20
  • SwiftUIの状態管理の基礎

    概要 2019年のWWDCにおいてSwiftUIが発表されてから約3年が経過し、プロダクトにSwiftUIを導入する方も増えてきたのではないでしょうか。そしてSwiftUIベースのアプリケーション実装において、状態管理をどうするか、という問題があると思います。稿では私が開発しているアプリケーションにおいて状態管理についてどのように考えているかについて紹介していきます。 状態・状態管理とは SwiftUIのような宣言的シンタックスを採用しているフレームワークにおいて、大きな関心ごとの一つに状態管理があります。そこでまずは状態・状態管理についての定義を確認し、重要な概念であるSingle source of truthについても触れていきます。 状態 状態とは、UIを(再)構築するために必要なデータのことを指しています。 SwiftUIの場合、Textの引数にString型のデータを渡すこと

    SwiftUIの状態管理の基礎
    invent
    invent 2022/09/26
  • 1