HealthKit (8)
HealthData 추가하기 지금까지는 처음에 addSimulator라는 함수를 사용해서 임의의 데이터를 추가해서 그 데이터를 기반으로 View나 기능을 구현했다면 이제는 유져가 직접 값을 추가하게 만들어 본다. 이전에 만들어둔 HealthDataListView를 조금 더 보완한다. @Environment(HealthKitManager.self...
HealthData 추가하기 지금까지는 처음에 addSimulator라는 함수를 사용해서 임의의 데이터를 추가해서 그 데이터를 기반으로 View나 기능을 구현했다면 이제는 유져가 직접 값을 추가하게 만들어 본다. 이전에 만들어둔 HealthDataListView를 조금 더 보완한다. @Environment(HealthKitManager.self...
Weight Average Chart 이번에도 이전 Pie Chart와 유사하게 진행을 한다. 하지만 BarChart로 한다. 일별 몸무게 변화량 계산 함수 만들기 struct ChartMath { // 생략 static func averageDailyWeightDiffs(for weights: [HealthMetric]) -&...
Weight Chart MockData 분리 기존에 HealthMetric 구조체에 같이 있던것을 별도의 구조체를 만들어 MockData를 관리한다. struct MockData { static var steps: [HealthMetric] { var array: [HealthMetric] = [] ...
ChartView 분리 현재 DashBoardView의 View를 구성하는 코드가 길어지기에 분리를 해준다. 기존에 DashBoardView에 있던, rawSelectedDate, averageStepCount, selectedHealthMetric을 옮겨준다. 그리고 새롭게 var selectedStat: HealthMetricContext ...
Charts 사용하기. MockData를 생성하고, 그걸 fetch하는 것 까지 했으니, 이젠 Dashboard에 Charts를 사용하여 도식화를 해보도록 한다. WWDC2022 Charts Docs 모델링 fetch해서 가져온 데이터들을 객체로 담아서 Chart에 전달하기위해 모델링을 해준다. struct HealthMetric: Id...
Simulator에서 MockData가 필요한 이유 시뮬레이터 환경 제약: HealthKit은 시뮬레이터에서 기본적으로 데이터를 수집하거나 저장할 수 없다. 데이터를 입력하거나 확인할 수 있는 기능이 제한적이기 때문에 MockData를 통해 시뮬레이터 환경에서도 동작을 검증할 수 있다. 수동 데이...
HealthKit Permission 요청하기 HealthKit GuideLine을 한번 읽어보도록 하자 디자인은 생략. HealthKit Image Download는 여기 한가지 중요한 점이 있다면. 해당 앱을 사용하는 Device가 HealthKit을 지원하는지 반드시 체크해야한다. When you enable the Health...
HealthKit을 사용한 앱을 만드는 걸 공부하면서 기록을 적어본다. 가급적 UI디자인은 크게 언급할 부분이 없다면 생략을 하면서 가도록 하겠다. 첫 화면의 디자인은 다음과 같다. Picker(Segmented) 적용하기 현재 디자인이 된 상태에서 Picker를 사용하여 step을 고를지, weight를 고를지를 정해본다. Picker를...
UI 디자인 UI를 그대로 디자인하면 가독성이 떨어지니 새로운 SwiftUI View파일을 만들어 거기에 디자인을 하도록 한다. LiveActivityView로 만들었다. 코드는 생략 Preview는 위와 같은데 버전의 차이로 양사이드 여백이 생기는건 이후에 해결 예정 GameLiveActivity 설정 struct GameLiveAct...
BasketballSim 이라는 앱으로 Dynamic Island & LiveActivity를 구현하려고 한다. 해당프로젝트의 기본적인 내용은 이미 만들어진걸 사용해서 패스 Dynamic Island와 Live Activity Live Activity: 잠금 화면 및 배너에 실시간 정보를 제공. Dynamic Island: iPho...