MapKit (12)
Profile View Checked In/Out 구현 현재는 어떤 가게에 들어가야만 checked in/out에 대한 정보를 확인 할 수 있다. (설령 본인일지라도) 그래서 이제는 본인이 체크인을 했다면 프로필에서 체크인 상태를 확인 및 거기서도 체크 아웃할수있게 기능을 구현해본다. 버튼 디자인 우선 ProfileView에서 체크아웃 버튼을 디...
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...
Aggregate Model: Bounded Context를 활용한 대규모 앱 설계 단순히 화면마다 뷰모델을 만드는 방식에서 벗어나, 앱의 규모에 따라 데이터 원천을 어떻게 논리적으로 격리하고 관리할 것인지에 대한 아키텍처적 가이드라인을 정리한다. 1. 단일 모델 구조 (Small to Medium Apps) 앱이 작거나 중간 규모일 때는 하나의 ...
커피 주문 앱의 기존 MVVM 코드 분석 강의에서 제공된 프로젝트(커피주문앱)는 기능을 수행하는 데 문제가 없으나, 레이어 간의 강한 결합과 반복적인 의존성 주입이 구조적 복잡성을 야기함. 리팩토링 전의 핵심 로직들을 정리함. 1. ViewModel의 구조적 복잡성 각 View는 고유한 ViewModel을 가지며, 모든 통신 로직이 이 계층에 갇혀...