<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>State on Kelly Dev</title><link>https://kelly-chui.github.io/tags/state/</link><description>Recent content in State on Kelly Dev</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 25 Sep 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://kelly-chui.github.io/tags/state/index.xml" rel="self" type="application/rss+xml"/><item><title>SwiftUI 상태 관리</title><link>https://kelly-chui.github.io/posts/swiftui-swiftui-property-wrapper/</link><pubDate>Thu, 25 Sep 2025 00:00:00 +0000</pubDate><guid>https://kelly-chui.github.io/posts/swiftui-swiftui-property-wrapper/</guid><description>&lt;h2 id="상태를-누가-소유하고-어떻게-전달해야-하는가"&gt;상태를 누가 소유하고 어떻게 전달해야 하는가&lt;/h2&gt;
&lt;p&gt;SwiftUI에서는 상태를 저장하거나 다른 뷰에 전달할 때 프로퍼티 래퍼를 사용한다.&lt;/p&gt;
&lt;p&gt;이 상태를 현재 뷰가 직접 가지고 있는지, 부모 뷰에서 전달받는지, 아니면 별도의 객체가 관리하는지에 따라 사용하는 래퍼가 달라진다.&lt;/p&gt;
&lt;h3 id="상위-뷰--하위-뷰"&gt;상위 뷰 → 하위 뷰&lt;/h3&gt;
&lt;div class="code-theme-github"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;@State → @Binding&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;상위 뷰가 상태를 소유하고, 하위 뷰는 해당 상태를 수정할 수 있도록 &lt;code&gt;@Binding&lt;/code&gt;으로 전달받는다.&lt;/p&gt;
&lt;h3 id="뷰-모델--뷰--하위-뷰"&gt;뷰 모델 → 뷰 → 하위 뷰&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;ObservableObject&lt;/code&gt; 프로토콜을 채택한 뷰 모델에서는, 변경을 알려야 하는 값을 &lt;code&gt;@Published&lt;/code&gt; 프로퍼티로 선언한다.(이 뷰 모델을 뷰에서 주입받아 사용할 때는 보통 &lt;code&gt;@ObservedObject&lt;/code&gt;로 관찰함)&lt;/p&gt;</description></item><item><title>SwiftUI Tutorials. Handling User Input</title><link>https://kelly-chui.github.io/posts/swiftui-tutorials-03-handling-user-input/</link><pubDate>Tue, 25 Jun 2024 00:00:00 +0000</pubDate><guid>https://kelly-chui.github.io/posts/swiftui-tutorials-03-handling-user-input/</guid><description>&lt;p&gt;랜드마크 앱에서 사용자는 좋아하는 장소를 플래그하고, 그들이 좋아하는 장소만 필터해서 볼 수 있다. 이런 기능을 만들기 위해서, 리스트에 스위치를 추가하여 유저들이 그들이 좋아하는 장소에만 포커스를 맞출 수 있도록 해야한다. 그리고 별 모양 버튼을 추가하고, 탭하면 유저들이 랜드마크에 favorite 플래그를 할 수 있도록 한다.&lt;/p&gt;
&lt;h2 id="section-1-mark-favorite-landmarks"&gt;Section 1. Mark favorite landmarks&lt;/h2&gt;
&lt;p&gt;리스트를 개선해서 사람들이 한 눈에 favorite를 찾을 수 있도록 시작한다. &lt;code&gt;Landmark&lt;/code&gt; 스트럭처에 프로퍼티를 하나 추가해서, 이 랜드마크가 favorite인지 초기 상태를 읽을 수 있도록 한다. 그리고 favorite 표시된 랜드마크에는 별 아이콘을 보여준다.&lt;/p&gt;</description></item></channel></rss>