
백준 프로필의 IOS 버전을 개발하던 도중, 티어 배지를 Swift UI 의 Shape 프로토콜을 사용하는 커스텀 도형으로 직접 구현해보기로 하였다. 티어 배지는 위와 같이 생겼으며, 물론 어도비 XD 를 이용해 svg파일을 직접 추출해도 되지만 6가지의 티어 (브론즈, 실버, 골드, 플래티넘, 다이아, 루비) 색상과, 1~5단계에 해당하는 티어 단계로 인해 만약 위와 같은 방식으로 구현할 경우 총 30가지의 svg 파일을 추출해야 한다. Android 버전은 티어 단계를 텍스트 뷰로 구현해 총 6가지의 svg 파일만으로 구현을 완료했지만, IOS 버전에서는 직접 저 모양을 그려서 구현해보았다. Swift UI Shape 프로토콜 Swift UI 에서 사각형, 원, 둥근 사각형 등은 각각 Rectangl..

Swift UI - Observable 객체 Swift UI 상태 프로퍼티 - @State Swift UI 에서 뷰의 업데이트는 뷰와 결합된 데이터를 업데이트 할 때 일어난다. 이를 위해선 데이터와 뷰 사이에 게시자 - 구독자 관계를 구축하여 할 수 있다. 이를 forstudy.tistory.com Observable 객체는 특정 상태가 앱 내의 몇몇 뷰에 의해 사용되어야 할 경우에 적절하게 사용할 수 있다. 그러나 어떤 뷰에서 다른 뷰로 이동할 때 이동할 뷰에서도 동일한 Observable 객체에 접근해야 한다면, 대상 뷰로 Observable 객체에 대한 참조체를 전달해야 한다. 다음 코드 예제를 살펴보자 struct DemoDataView : View { @ObservedObject var demo..

Swift UI 상태 프로퍼티 - @State Swift UI 에서 뷰의 업데이트는 뷰와 결합된 데이터를 업데이트 할 때 일어난다. 이를 위해선 데이터와 뷰 사이에 게시자 - 구독자 관계를 구축하여 할 수 있다. 이를 위해서 Swift UI 는 상태 프로 forstudy.tistory.com 이전 글에서 알아본 상태 프로퍼티는 선언된 뷰나 하위 뷰에서만 사용할 수 있다. 즉 다른 뷰로 이동하거나, 부모 뷰가 사라진다면 그 상태도 사라진다. 그렇다면 여러 뷰들이 동시에 접근해야 하는 영구적인 데이터의 경우는 어떻게 처리해야 할까? 이는 Observable 객체로 해결할 수 있다. Observable 객체는 ObservableObject 프로토콜을 따르는 클래스나 구조체의 형태를 취한다. Observable..

Swift UI 에서 뷰의 업데이트는 뷰와 결합된 데이터를 업데이트 할 때 일어난다. 이를 위해선 데이터와 뷰 사이에 게시자 - 구독자 관계를 구축하여 할 수 있다. 이를 위해서 Swift UI 는 상태 프로퍼티, Observable 객체, 그리고 Environment 객체를 제공하며, 이들 모두는 사용자 인터페이스의 모양과 동작을 결정하는 상태를 제공한다. Swift UI 에서 UI 는 코드 내에서 직접 업데이트하지 않고, 결합된 데이터가 변함에 따라 자동으로 뷰가 업데이튿 된다. struct ContentView: View { @State private var wifiEnabled = true @State private var userName = "" var body: some View { } } 상..
Comment