MapKit (14)
LocationListViewModel 만들기 이전글에서 작성한 코드와 관련된 작업을 하기위해 ViewModel을 만들어 준다. 그리고 새로 Re-Group을 해주는데 LocationListView, LocationCell, LocationListVM 이렇게 세개를 LocationListView라는 폴더를 만들고 넣어준다. 그리고 아래와 같...
LocationListViewModel 만들기 이전글에서 작성한 코드와 관련된 작업을 하기위해 ViewModel을 만들어 준다. 그리고 새로 Re-Group을 해주는데 LocationListView, LocationCell, LocationListVM 이렇게 세개를 LocationListView라는 폴더를 만들고 넣어준다. 그리고 아래와 같...
클라우드에 새로운 Field 추가하기 CloudKit 대시보드에서 새로운 데이터 필드를 추가하고, 이를 검색 가능하도록 설정하는 과정을 정리해본다. 우선 isCheckedInNilCheck 라는 필드를 만들어 준다. 말그대로 체크인이 NIL인지 아닌지를 확인하는 필드이다. Boolean이 없기때문에 아주 기본적인 방법 0,1로 true/fal...
Profile View Checked In/Out 구현 현재는 어떤 가게에 들어가야만 checked in/out에 대한 정보를 확인 할 수 있다. (설령 본인일지라도) 그래서 이제는 본인이 체크인을 했다면 프로필에서 체크인 상태를 확인 및 거기서도 체크 아웃할수있게 기능을 구현해본다. 버튼 디자인 우선 ProfileView에서 체크아웃 버튼을 디...
CheckedIn/out 상태에 따라 ui 다르게 구분하기 if viewModel.checkedInProfiles.isEmpty { // empty state Text("Nobody's Here 😞") .bold() .font(.title2) .foregroundStyle(.secondary)...
너무나 오래간만에 업로드 그래도 강의를 끝내야 하기에 계속해서 글을 작성한다. Update Check-In Status 이번엔 LocationDetailView를 조금 더 보완한다. 우선 열거형인 enum을 통해 checkin/out에 관한걸 만들어준다. // LocationDetailViewModel enum CheckInStatus { ...
내일의 Swift 공부 계획 graph LR A[연휴 끝] --> B[Swift Combine 공부] B --> C[FlightLog UI 설계] C --> D[깃블로그 포스팅] %% 스타일 정의 classDef largeFont font-size:20px,padding:10px; cla...
SwiftUI 프로젝트 구조화: Screen과 View의 분리 SwiftUI의 모든 요소는 View 프로토콜을 따르지만, 역할과 재사용성에 따라 Screen과 View로 구분하여 관리하는 설계 전략을 분석한다. 1. Screen과 View의 정의 및 차이 Flutter의 Widget 네이밍 컨벤션에서 아이디어를 얻은 이 방식은 앱의 규모가 커질 때...
SwiftUI View의 본질: View는 이미 ViewModel이다 SwiftUI의 View가 단순히 화면을 그리는 도구가 아니라, 데이터를 가공하고 바인딩하는 ViewModel의 역할을 이미 수행하고 있음을 분석한다. 1. SwiftUI View와 UIKit View의 차이 SwiftUI의 View는 픽셀을 직접 그리는 주체가 아니라, 화면이 ...
iOS 17 이전 환경에서의 Nested Observable 문제 해결 (View Composition) @Observable 매크로를 사용할 수 없는 환경에서, 중첩된 객체의 변화를 UI에 반영하기 위한 SwiftUI의 정석적인 해결 방법을 정리한다. 1. 문제의 재확인 (ObservableObject의 한계) ObservableObject를 사...
중첩된 Observable 객체의 한계와 Observation 프레임워크의 해결 과거 ObservableObject 기반의 중첩 구조에서 발생하던 UI 새로고침 버그를 분석하고, 최신 @Observable 매크로가 이를 어떻게 개선하는지 정리한다. 1. 중첩된 Observable 구조 분석 (과거 방식) 강좌에서는 예시로 ExpenseTracker...