본문 바로가기

SwiftUI8

[SwiftUI] ObservableObject, @StateObject, @ObservedObject 알아보기 [Protocol] ObservableObject Class 전용 프로토콜로, 데이터가 변경되면 Observer에게 알림을 보내는 타입 iOS 17.0부터는 Observable() 매크로 사용이 권장됨 ObjectWillChange ObservableObjectPublisher타입으로, 객체가 수정되기 전에 전달하는 publisher이다. objectWillChange.send() 메서드를 사용해 변경사항을 subcriber에게 전달한다. 변경사항이 있을 때마다 objectWillChagne.send() 를 해야한다면, 몹시 불편할 것 같다. 이를 보완하는 방법으로 @Publshed 라는 property wrapper가 있다. import SwiftUI class TestViewModel: Observa.. 2024. 3. 25.
[SwiftUI] CustomTabView 구현 구현하게 된 이유 진행 중인 프로젝트 디자인은 기본 TabView와 유사했음에도, 기본 TabView로는 구현할 수 없었습니다. 'SwiftUI에서 TabView item들의 속성은 조정할 수 있게 해주지' 라는 생각이 많이 들었던.. 동시에 앞으로의 프로젝트가 험난하겠구나(?)가 느껴진 순간이었습니다. 기능 및 디자인 1. 기능: item 클릭 시, 추가 동작 제어 2. 디자인: 기본 CustomView와 유사. (이미지 사이즈만 조정) Model 코드 Enum으로 다음과 같은 모델을 만들었고, 필요한 Property를 추가했습니다. // // CustomTabView.swift // // Created by Eddy on 2/19/24. // import SwiftUI public enum TabIt.. 2024. 3. 4.
[SwiftUI] @State, @Binding 오랜만에 SwiftUI로 프로젝트를 진행하게 되면서 간단하게 개념을 정리해둘 기회가 생겼다. State와 Binding을 알아보기에 앞서, 선행되어야 할 개념인 Source of Truth와 Property wrapper에 대해 짚고 넘어가자. Source of Truth 개요 Source of Truth는 데이터 원본이라 생각하면 되는데, State로 선언된 Property는 모두 Source of Truth를 생성하고 참조할 수 있게 된다. Source of Truth와 State, Binding의 흐름 SwiftUI에서는 property의 Storage를 관리하고, 데이터가 변경되면 이에 의존하는 View 계층의 일부를 업데이트한다. property를 SoT 개념을 활용해 한 곳에서 통합 관리함을써.. 2024. 1. 7.
H.I.G: Human Interface Guideline(스위프트 하이) - File Handling HIG: Human Interface Guideline (=사용자 인터페이스 지침서) 즉, 절대적으로 이 지침을 따라야 한다는 것이 아니라 앱 개발과 디자인에 있어 "권장"하는 내용이다. 무분별한 백지개발로 퀄리티가 낮은 앱이 개발되는 것을 예방하고, 어느 정도 일정한 패턴과 형식을 가진 앱을 개발하기를 바라는 마음에서 만들어진 지침이다. https://www.youtube.com/playlist?list=PLLFDewH7eSVxGMERS4CrwkDXXYZoE5mVZ 온라인 독서모임 www.youtube.com 오늘 공부한 내용은 '스위프트 하이 유튜브 온라인 독서모임'의 'File Handling'이다. 1. 사용자가 파일을 조작하거나, 보거나, 만드는 동안 파일 시스템에 대해 생각할 필요는 없어야 한.. 2022. 6. 7.