목록개발_iOS/스위프트UI (5)
소피it블로그
https://developer.apple.com/documentation/swiftui/managing-model-data-in-your-app Apple Developer Documentation developer.apple.com 1. 개요 보통의 경우 앱의 유저 인터페이스와 다른 로직들과 분리된 데이터 모델을 사용하여 데이터를 저장하고 처리한다. 분리를 통해 모듈화가 강화되고 테스트성이 개선되며 앱이 어떻게 작동하는지에 대해 추론하기도 쉬워진다. 전통적으로는 데이터를 모델과 UI 사이에서 주고받게 하기 위해 뷰 컨트롤러를 사용하지만(MVC 패턴), 스위프트UI는 이 대부분의 동기화를 대신 관리해준다. 데이터가 바뀔 때 뷰를 업데이트하기 위해서는 데이터 모델 클래스를 observable object..
https://developer.apple.com/documentation/swiftui/observedobject Apple Developer Documentation developer.apple.com 애플 공식 문서에서는 ObservedObject를 다음과 같이 정의한다. observable object를 구독하고 observable object가 변경되면 뷰를 무효로 하는 프라퍼티 래퍼 선언 @propertyWrapper @frozen struct ObservedObject where ObjectType : ObservableObject
https://developer.apple.com/documentation/swiftui/binding Apple Developer Documentation developer.apple.com source of truth가 소유하는 값을 읽고 쓸 수 있는 프라퍼티 래퍼 타입 데이터를 저장하는 프라퍼티와 해당 데이터를 보여주고 변경하는 뷰 간의 쌍방 연결을 생성하기 위해 바인딩을 사용한다. 바인딩은 데이터를 직접적으로 저장하는 대신 다른 곳에 저장된 source of truth에 프라퍼티를 연결시켜준다. 예를 들어, play와 pause를 번갈아가며 토글되는 버튼은 Binding 프라퍼티 래퍼를 통해 부모 뷰의 프라퍼티에 바인딩을 생성해줄 수 있다. // 자식 뷰 struct PlayButton: View..
https://developer.apple.com/documentation/swiftui/state Apple Developer Documentation developer.apple.com 스위프트UI에 의해 관리되는 프라퍼티 래퍼 타입으로, 값을 읽고 쓸 수 있음 스위프트UI는 state로 선언한 프라퍼티의 저장을 관리한다. 해당 값이 변경되면 스위프트UI는 그 값에 의존하는 뷰 위계의 일부분을 갱신한다. 뷰 위계질서 내부에 저장된 한 값에 대한 유일한 source of truth로써 state를 사용하라. State 인스턴스는 그 자체로서 값은 아니다. 이는 값을 읽고 쓰는 수단에 해당한다. state의 값에 접근하기 위해서는 프라퍼티명을 부르면 되는데, 그 결과로써 wrappedValue 프라퍼티 ..
미루어 두었던 스위프트UI를 하나하나 공부해보는 시간이다. 아주 간단한 앱이긴 하지만 본격적으로 뭔가를 만들어보려고 하니, 내가 구현하고 싶은 기능을 가장 효율적으로 담을 수 있는 컴포넌트가 뭔지부터 감이 잡히지 않았다. 메타인지조차 없는 상황. 스위프트UI 컴포넌트들에 대한 정리된 지식 없이 대충 그때그때 필요한 것을 검색해서 익히고 앱에 적용할 수도 있긴 하겠으나, 그럴 경우 내 검색망에 걸린 컴포넌트보다 더 알맞은 컴포넌트를 놓치기도 쉽고 무엇보다 체계가 없어서 공부를 해도 혼란스러울 것 같다. 따라서 이렇게 하는 게 맞는지는 잘 모르겠지만, 이번 기회에 스위프트UI의 요소들을 간단하게나마 정리해보고자 한다. Button: A control that initiates an action 버튼은 액션,..