RunWay (21) TakeoffView 보강
지금 TakeoffView의 값들이 하드코딩 되어있는데 이걸 실기기 반영을 해보도록 한다. 현재는 하드코딩되어있는데, 워치 연동 그리고 battery 상태 등을 활용해서 실기기를 반영하도록 수정해본다. GPS Signal 우선 GPS 감도이다. LocationService에 이미 accuracy: Double 프로퍼티가 있다. CLLoc...
지금 TakeoffView의 값들이 하드코딩 되어있는데 이걸 실기기 반영을 해보도록 한다. 현재는 하드코딩되어있는데, 워치 연동 그리고 battery 상태 등을 활용해서 실기기를 반영하도록 수정해본다. GPS Signal 우선 GPS 감도이다. LocationService에 이미 accuracy: Double 프로퍼티가 있다. CLLoc...
TestFlight 베타 심사가 진행 중이다. 심사 결과를 기다리는 동안 손 놓고 있을 수는 없어서, App Store 정식 출시에 필요한 것들을 미리 정리해보기로 했다. 정식 출시를 위해 필요한 항목은 크게 이렇다. 스크린샷 (iPhone, Watch) 앱 설명 (짧은 설명 / 긴 설명) 키워드 카테고리 연령 등급 개인정보...
이제 배포전 TestFlight를 준비한다. 앱 아이콘 앱아이콘은 워치 둘다 만들어 둔 상태이다. 워치도 아이콘은 같아서 이미지는 패스 버전 / 빌드 넘버 버전 / 빌드 역시 초기값 그대로 해둔 상태이다. Xcode에서 프로젝트 타겟을 선택하고 General 탭의 Identity 섹션에서 설정한다. Version은 사용자에게 ...
실기기 테스트를 진행하면서 발견한 버그들을 정리한다. 발견된 버그 1. 일시정지 동기화 안됨 미러링 중 위치 데이터 업데이트가 5초 이상 없으면 주도 기기는 isPaused가 걸리는데, 미러링 기기는 그 상태를 전달받지 못해 계속 러닝 중인 것처럼 표시된다. Before 미러링 기기(startOrigin == .remote)는 start(...
문제 인식 지금 구조는 미러링 중에도 iPhone과 Watch가 각자 독립적으로 위치 데이터를 처리하고 있다. Watch 주도 미러링이어도 iPhone이 자체 LocationService와 RunningCenter를 돌려서 GPS를 따로 수집하고 계산하는 식이다. 이 방식의 문제는 실제로 사용해보면서 드러났다. Watch에서 미러링으로 러닝을 ...
가장 큰 산인 미러링이 끝났다. 물론 그동안에 충분히 휴식도 취하면서 하느라 애초에 생각했던 계획보다 조금 일정이 미뤄졌지만 크게 문제는 없는 부분이다. 이제는 나머지 부분을 해보려 한다. 먼저 쉬운것부터 차례로 해본다. 온보딩 & 스플래시 화면 프로젝트 연결 이미 AI를 통해 디자인을 만들어 두었기에 프로젝트에 연결만 하면 된다. S...
요새 너무 빡시게 달리기도 해서 며칠간 휴식을 좀 취하고 오늘 다시 이어서 해본다. iPhone 주도 미러링 이전까지 Watch 주도의 미러링이었다면, 이번엔 iPhone을 주도로 미러링을 해보려고 한다. 시작하기 전 플로우를 정리해보면 아래와 같다. 사실 기본적으로 Watch 주도의 미러링과는 개념이 같기 때문에 그것과 유사하게 하면 될 ...
문제점 수정하기 3차 간이테스트를 통해 실기기를 테스트한 결과 아래와 같은 문제점들이 발견되었다. transferUserInfo 거리 단위 오류 (m 단위로 저장됨) transferUserInfo 좌표 배열 미전송 (Summary 경로 미표시) Watch/iPhone PFD 표시값 불일치 및 종료 동기화 미작동 (SwiftData 중복...
문제점 수정하기 이전 글 마지막에서 간단하게 실기기 테스트를 진행했다. 결과는 좋지 않았다. 위치 데이터를 전혀 가져오지 못해 페이스, 거리 등 GPS 관련 데이터가 하나도 표시되지 않았다. HealthKit 데이터도 수집되지 않았다. 앱 삭제 후 재설치 시 위치 권한만 요청하고 HealthKit 권한 요청이 뜨지 않은 것으로 보아 권한 ...
13일차의 Watch UI 설정은 이미 AI를 통해 디자인했으므로 생략한다. 여기선 이후 과정에 대해 서술한다. LocationService 만들기 이건 사실 앱에서 구현한것과 같아서 타겟 멤버쉽에 watch를 추가해주었다. 다만 watchOS에서는 pausesLocationUpdatesAutomatically를 지원하지 않아 조건부 컴파일로 ...