본문 바로가기
반응형

iOS, Swift/SwiftUI6

Swift UI @Observable, @State, @Environment, @Bindable, @Binding으로 상태관리 마스터하기 오늘은 SwiftUI에서 상태를 관리할 수 있게 해주는,swift UI @Observable, @State, @Environment, @Bindable, @Binding에 대해 알아보겠습니다. 이 방법은 ios17이상에서만 적용할 수 있는데요.이전의 방법에 대해서는 아래 글을 참조해 주세요.(이 글을 이해하는데 도움이 됩니다.)>> SwiftUI @State vs @Environment, @EnvironmentObject vs @StateObject, @Binding으로 상태관리 이해하기 1. ios17이상에서의 상태관리 변화구체적으로 알아보기 전에, 상태관리에 무엇이 바뀌었는지 볼까요?우선은 이런 변화가 있었다는 것만 보고,아래에서 하나씩 구체적으로 보겠습니다. ios17이상 @Observable사용.. 2026. 2. 26.
SwiftUI VStack, HStack, ZStack, Spacer와 overlay 총정리 오늘은 SwiftUI에서 매우 중요한 역할을 하는,VStack, HStack, ZStack, Spacer와 overlay에 대해 정리하겠습니다. 1. VStack, Hstack 그리고 ZStack각각에 대해 알아보기 전에,3가지를 한 번에 표로 비교해서 전체 그림을 볼까요?대략 이런 것들이 있구나 하고 보시고요.아래에서 하나씩 구체적으로 알아보겠습니다. VStackHStackZStack배치방향수직(세로)수평(가로)깊이(겹침)기본 크기width :자식 뷰 중 가장 넓은 뷰의 너비,height: 모든 자식 뷰 높이의 합width: 모든 자식 뷰 너비의 합, height:자식 뷰 중 가장 높은 뷰의 높이자식 뷰 중 가장 큰 뷰의 크기Spacer() 효과수직방향 확장수평방향 확장영향 없음자식 뷰 배치 순서위에.. 2026. 2. 25.
SwiftUI @State vs @Environment, @EnvironmentObject vs @StateObject, @Binding으로 상태관리 이해하기 오늘은 swiftUI에서 상태관리의 주축을 이루는,@State vs @Environment 그리고 @StateObject와 @EnvironmentObject를 비교하면서 이해해 보겠습니다. 1. @Environment vs @StateSwiftUI에서 @State와 @Environment는,값의 변화를 감지하고,그에 맞춰 UI를 다시 그리는 데 사용되는,프로퍼티 래퍼(Property Wrapper)입니다. 말이 좀 어려운데요. 둘은 어떤 차이가 있을까요?먼저 State부터 살펴보겠습니다. 1-1. State@State는 특정 뷰 내부에서만 생성되고 유지되는,Value Type의 단순한 값들을 관리할 때 사용합니다.점 더 쉽게 말하면,뷰(View)가 데이터를 소유하고 관리하는 것 입니다.(뷰가 관리하니, .. 2026. 2. 24.
SwiftUI body에 사용할 수 없는 것과 대안들 : 변수선언, 조건문, 반복문 오늘은 SwiftUI body에 사용할 수 없는 것들에 대해 정리하겠습니다. 1. SwiftUI body에 사용할 수 없는 것들SwiftUI는 명령형이 아닌,선언형 프로그래밍 방식을 따르는데요.SwiftUI View의 body에서는,UI의 상태와 구조만을 '선언'하도록 하고 있습니다. 그래서, body안에 사용할 수 없는 것들이 있는데요.이에 대해 명확히 알아 둘 필요가 있습니다. SwiftUI body에 사용할 수 없는 것들은 다음과 같습니다.변수 선언 (var 키워드)명령형 조건문 (if, switch 등을 값 할당에 사용할 때)명령형 반복문 (for, while 등)예를 들어,아래와 같이 코드를 작성하면,컴파일 에러가 발생합니다.  struct ContentView: View { var bod.. 2025. 3. 22.
SwiftUI 빈 공간에 사용하는 Color.clear 와 EmptyView 오늘은 SwiftUI에서 빈공간에 사용하는,Color.clear와 EmptyView에 대해 정리하겠습니다. 1. Color.clear와 EmptyViewColor.clear와 EmptyView()는,둘다 시각적으로 보이지 않는 요소를 만들 때 사용되는데요. 하지만 실제 사용할 때 둘은 큰 차이가 있습니다.  Color.clearEmptyView주요 용도투명 오버레이, 공간 예약, 이벤트 캡처아무것도 표시 안 함을 명시적으로 나타낼 때 사용공간 차지지정된 크기의 공간을 차지함지정하지 않으면,부모 뷰가 제공하는 공간을 채움공간을 전혀 차지하지 않음사용자 상호작용가능 (.contentShape 등으로 설정 가능)공간이 없어 불가능Modifer적용가능대부분 불가능onAppear/onDisappear트리거 됨트리.. 2025. 3. 19.
SwiftUI 커스텀 폰트(Font) 사용하기 오늘은 swiftui에서 커스텀 폰트를 지정해서 사용하는 방법에 대해 정리하겠습니다. 1. Font 등록하기폰트를 등록하기 전에,먼저 폰트를 프로젝트에 복사해 줍니다.이 때 어느 그룹에 넣어서 관리하건 문제되지 않습니다.그룹은 단순히 논리적인 구조로 실제하는 물리적 구분이 아니기 때문입니다. 그럼 이제 프로젝트 설정에서 아래와 같은 순서로,Font를 등록해 줍니다.좌측의 네비게이터에서 최상단의 프로젝트 선택'Info' 탭 클릭여러 섹션 중, 맨 위의 'Custom iOS Target Properties' 섹션 열기"+" 버튼을 클릭하여 새 항목을 추가키 이름으로 'Fonts provided by application' 검색해 선택 후 아이템 추가(배열 타입임)배열 항목 옆의 "+" 버튼을 클릭하여 첫 .. 2025. 3. 19.