WatchOS 찍먹 (2)
이번엔 2탄이다. 일단 강의에서는 SwiftUI를 활용한 watchOS 앱 구축 watchOS에서의 CoreData 연동 및 활용 CoreData에서 로컬 데이터 불러오기 (로드) CoreData 초기화를 위한 PersistentController 구현 Environment(환경 변수)를 활용한 ManagedObjectConte...
이번엔 2탄이다. 일단 강의에서는 SwiftUI를 활용한 watchOS 앱 구축 watchOS에서의 CoreData 연동 및 활용 CoreData에서 로컬 데이터 불러오기 (로드) CoreData 초기화를 위한 PersistentController 구현 Environment(환경 변수)를 활용한 ManagedObjectConte...
WatchOS 연동하기 기존에 Udemy강의에서 WatchOS 앱만들기를 했었는데 안타깝게도 기존 iOS App과의 연동은 없었다. 그래서 Docs를 보면서 연동을 직접 부딪혀가며 해보려 한다. 1. WathOS App 추가하기 기존에는 그냥 새로운 프로젝트로 만들었다면. iOS App이 있다면 만드는 방법이 달라진다. 이렇게 2가지 방...
Udemy 옛날 강의가 있어서 (2021) 어떤지 궁금해서 정리겸 적어본다. 일단 강의에서는 watchOS 및 SwiftUI 위치 권한 및 위치 접근성 Info.plist 설정 및 위치 추적 권한 처리 watchOS에서의 CLLocationManager 활용 및 위치 추적 구현 제네릭 네트워크 매니저(Generic Network...
Day 4: 자동 갱신 & 브릿지 미션 (Task) 자동으로 새로고침하기 사용자가 직접 새로고침을 누르지 않아도 정해진 주기에 맞춰 스스로 최신 상태 데이터를 다시 불러오는 심장 박동 같은 백그라운드 스트림을 구축할 것 연타 방지하기 유저가 수동 새로고침을 연타할 경우를 대비하여,...
Day 3: 즐겨찾기 만들기 미션 (Task) 버튼 액션을 스트림으로 바꾸기 즐겨찾기 추가 및 삭제 버튼 클릭이라는 사용자의 물리적 터치 액션을 단순한 변수 조작이 아닌 순간적인 이벤트 신호 스트림으로 변환하여 시스템에 흘려보낼 것 즐겨찾기 목록 누적 관리하기 기존에 즐겨찾기된 목록이라는...
Day 2: 프로필 화면 만들기 미션 (Task) 화면 상태 나누기 유저를 선택하여 프로필 상세 화면으로 이동 시, 화면의 현재 상태를 로딩 중, 성공, 실패로 명확히 분리할 것 데이터 상태에 따라 UI가 즉각적으로 변화하는 반응형 환경을 구축할 것 여러 API 한번에 불러오기 ...
Project 시작 Combine을 오랜만에 사용할 겸 간단한 프로젝트를 만든다. 검색을 통해 GitHub 사용자를 찾아서, 해당 유저의 Repository도 보고 Following 기능까지 하는 간단한 앱이지만, Combine을 사용하면서 여러 Data Streaming이 필요한 작업이라 쉬우면서도 쉽지 않을? 그런 프로젝트이다. 4일 계획으로...
Combine에서 자주 사용하는 오퍼레이터를 카테고리별로 정리한다. Transforming 값의 형태를 바꾸거나 새로운 Publisher로 전환한다. map 각 값을 다른 타입이나 형태로 변환한다. [1, 2, 3].publisher .map { $0 * 10 } .sink { print($0) } // 10 // 20 //...
MMAInfoCurrentValueApp (PassthroughSubject) 이번엔 PassthroughSubject를 사용한 앱을 만든다. Modeling struct MMAFighter: Codable, Identifiable { var id = UUID() let name:String let fightTeam...
Data Streaming: PassthroughSubject의 도입 지금까지 만든 방식은 진정한 의미의 데이터 스트리밍(Data Streaming)이 아니다. API를 한 번 호출하고 결과를 통째로 한 번 받고 끝나는 단발성 작업(Future)이었을 뿐이다. 하지만 이번 프로젝트에서는 PassthroughSubject를 도입한다. 무엇이 다른...