본문 바로가기

분류 전체보기34

@State값을 ModalView(FullScreen, sheet..) 에 주입시 유의점 배경 State값을 이용하여 특정 뷰를 보여주는 View를 보여주려고함. 하지만, State 값이 변하였음에도 불구하고 의도했던대로 동작하지 않음. 문제 재현 코드 struct ContentView: View { @State private var n = 1 @State private var show = false var body: some View { VStack { Text("\(n)") // Text("n = \(n)") // Comment out this line, and the n value displayed in the sheet will be 1 (not the expected 2) Button("Set n = 2") { n = 2 show = true } .buttonStyle(.border.. 2024. 1. 6.
@StateObject vs @ObservedObject 공통점 어떠한 목적을 가지고(로직분리, 테스트, 값 저장..) 유저 인터페이스에서 코드를 분리하기 위해 사용한다. ObservableObject 를 채택하고 있다. 차이점 가장 큰 차이점은 View가 재생성 될때 나타난다. SwiftUI는 매우 빈번하게 View를 재생성하게 되는데, 이때 View안에서 @ObservaedObject를 생성하게 되면 View가 재생성 될때마다 같이 초기화가 되기 때문에 예상치 못한 결과를 얻을 수 있다. 이를 해결하기 위해 apple은 @StateObject를 추가한 것 같다. @StateObject는 주어진 View 인스턴스가 얼마나 재생성 되는지에 상관없이 관리 할 수 있게 해준다. struct LibraryView: View { @ObservedObject priva.. 2024. 1. 2.
HTTP Toolkit with iOS HTTP ToolKit? HTTP ToolKit 은 http API를 쉽게 디버깅하기위해 사용하는 소프트웨어이다. 이 소프트웨어를 이용하면 response나 request를 intercept하여 한눈에 쉽게 볼수 있을 뿐만아니라, 수정할 수도 있다. 기본적인 기능들은 거의 무료이고 과금을 하면 자동화등 심화된 기능도 제공한다. ToolKit Setting하기. 1. http응답을 컨트롤하고자 하는 컴퓨터에서 https://httptoolkit.com/blog/ 에서 소프트웨어 다운로드 2. 테스트 하고자하는 iOS디바이스와 컴퓨터가 같은 네트워크 상에 있는지 확인한다. 3. 디바이스의 일반-> Wi-Fi 아래 버튼을 눌러 세부 사항으로 들어간다. 4. 하단에 있는 프록시 구성을 클릭한다. 5. 포트와 서.. 2023. 2. 12.
Multiple Window를 이용하여 Cover Window 만들기. Cover Window?앱 개발을 하다가 보면  Toast나 Popup과 같이 항상 Top Layer에 위치해야하는 View들이 있다.하지만, SwiftUI로 예를 들어서 View들의 Layer를 관리하기위해 제공하는 ZStack이나 Sheet와 같은 View들은 그 뷰에 종속되기 때문에 전역적으로 항상 Top Layer에 위치하기 힘들다. 어떤 뷰가 현재 보이든 간에 항상 최상단에 보여져야 할 View가 있다면 어떻게 보여줄 수 있을까?에 대한 고민을 하던중 좋은 아티클을 발견하여 번역해보았다.UIWindowUIWindow를 이용하여 View가 아닌 Window로 Layer를 쌓아보자!  ?? 그게 뭔말?우리가 평소에 View들을 쌓을 때에(Layer를 만들때)는 하나의 UIWindow위에 UIView.. 2023. 2. 5.