タグ
#android
記事:25件 · 新しい順
-
AX 엔지니어링 3 — AdMob 배너가 화면 아래를 128dp나 차지하고 있었습니다
큰 앵커드 적응형 배너가 폰에서 128dp를 차지하고 있었습니다. 일반 앵커드 배너는 deprecated라 돌아갈 수 없었습니다. deprecated 함수 없이 배너 높이를 60dp로 정한 방법과, 에뮬레이터에서 광고가 안 뜬 이유를 기록합니다.
-
AX 엔지니어링 1 — 형제 앱의 부품으로 새 앱을 올리는 공식
한 사람과 AI가 형제 앱의 디자인 컴포넌트, 광고·결제·평가·업데이트 문지기, 다국어 구조와 출시 파이프라인으로 APK 추출기를 만들었습니다. 첫 커밋 다음 날 밤 비공개 테스트 트랙에 올리기까지 고친 것들과, 다른 앱도 쓰게 된 스토어 이미지 엔진을 기록합니다.
-
안드로이드를 만들며 15 — 달력에서 고른 날짜와 저장 시각을 섞었다
이력 필터에 Material DatePicker를 붙이면서 UTC 자정을 기기의 날짜로 읽는 문제를 확인했습니다. 연월일을 옮겨 현지 자정을 만들고 필터 테스트에 시간대를 전달하도록 고쳤습니다.
-
안드로이드를 만들며 16 — 사진 길이를 줬는데 Media3가 트랙을 찾았다
사진을 넣은 영상 내보내기가 Asset loader error로 멈췄습니다. EditedMediaItem의 길이 설정과 별개로 MediaItem에 이미지 표시 시간을 지정해야 했습니다.
-
안드로이드를 만들며 14 — 스키마 파일이 있는데 마이그레이션 테스트가 못 읽었다
Pocket PDF의 JVM 테스트에서 MigrationTestHelper가 스키마 에셋을 찾지 못했습니다. 이전 스키마로 DB를 직접 만들고 실제 마이그레이션과 Room의 최종 검증을 실행하도록 바꿨습니다.
-
두 번째 앱 출시기 4 — 도구와 폴더를 줄여도 옛 기록은 남아야 했다
Pocket PDF의 도구를 아홉 개에서 여섯 개로 줄이고 보관함 폴더를 없앴습니다. 기능을 지우면서도 기존 파일 기록을 읽을 수 있도록 타입과 DB 마이그레이션을 남겼습니다.
-
첫 앱 출시기 6 — 공유할 리포트는 따로 그렸다
물타기 계산기의 리포트 공유를 텍스트에서 이미지로 바꿨습니다. 공유 전용 카드를 그리면서 기기 설정과 스크롤 위치를 분리하고, 긴 리포트와 숫자가 잘리는 문제를 고쳤습니다.
-
첫 앱 출시기 5 — 스토어 설명을 앱이 하는 만큼으로
소개 페이지를 손보고 스토어 설명에 주식·코인과 이미지 공유를 넣었습니다. 글자 수 검사를 통과한 문구에도 실제 앱과 다른 설명이 남아 있어, 11개 언어를 다시 검수했습니다.
-
두 번째 앱 출시기 3 — 두 앱의 링크를 /app/ 아래로 모으기
Stock Calculator와 Pocket PDF의 소개 주소를 /app/<제품>으로 맞췄습니다. 앱 두 개와 브랜드 웹사이트에서 함께 바꿔야 했던 경로를 정리했습니다.
-
두 번째 앱 출시기 1 — 스캔과 이미지 변환이 같은 글자층을 쓰도록
스캔본은 페이지를 채우고 불러온 사진은 여백 안에 놓입니다. 두 경로에서 따로 계산하던 OCR 좌표를 InvisibleTextLayer로 모으며, 각 변환기에 남길 일을 정했습니다.
-
안드로이드를 만들며 10 — 앱 아이콘의 검은 모서리와 크기를 맞추기까지
둥근 타일 이미지를 적응형 아이콘으로 옮기며 검은 모서리, 배경 이음매, 크기 문제를 겪었습니다. 가장자리 픽셀을 복제하고 그림 크기를 측정하는 방식으로 바꿔 변환 스크립트를 저장소에 남겼습니다.
-
안드로이드를 만들며 9 — 공유 QR을 스토어 주소에서 App Links로 바꾸기
공유 QR에 스토어 주소가 들어 있어 앱을 설치한 사람도 스토어를 거쳐야 했습니다. QR을 자체 도메인으로 바꾸고 앱의 경로 선언, 도메인 검증, 웹의 스토어 이동을 연결했습니다.
-
PDF 글자층에서 한글을 공백으로 바꾸고 있었습니다
OCR 좌표 계산을 공통 코드로 옮기다가 한글을 지우는 sanitize 조건을 찾았습니다. 한글 폰트를 넣고 JVM에서 생성한 PDF의 ToUnicode를 확인했습니다.
-
안드로이드를 만들며 8 — MainActivity의 생명주기 처리를 Compose로 옮기기
MainActivity에서 결제와 인앱 업데이트의 생명주기를 직접 처리하고 있었습니다. AppLifecycleManager로 관찰 코드를 옮겨 등록과 해제를 함께 두고, 콜백이 최신 게이트를 참조하도록 정리했습니다.
-
안드로이드를 만들며 7 — 열세 개 콜백을 CalculatorAction으로 묶기
계산기 화면에 행동을 추가할 때마다 화면 함수, 호출부, ViewModel 연결을 함께 고쳐야 했습니다. 열세 개 콜백을 sealed interface 기반 액션으로 묶고 AppShell의 라우팅도 분리했습니다.
-
안드로이드를 만들며 6 — Room과 DataStore를 AppRepository로 묶기
목록은 Room에, 설정은 DataStore에 저장하면서 화면이 두 저장 방식을 알 필요는 없었습니다. AppRepository가 상태를 합쳐 전달하도록 정리하고, 기존 키와 JSON 마이그레이션의 호환성을 확인했습니다.
-
안드로이드를 만들며 5 — Hilt·ViewModel·Navigation을 정리한 하루
테스트 트랙에 올린 앱의 의존성 주입과 화면 전환을 정리했습니다. Hilt를 도입하고 AppViewModel을 다섯 역할로 나눴으며, Navigation으로 기존 전환 연출을 옮겼습니다.
-
안드로이드를 만들며 4 — 입력 검증 결과를 ValidInputs로 전달하기
단가 0이 오류 없이 계산에서 빠지고 목표 평단가 칸은 검증을 건너뛰었습니다. 검증 결과를 유효·미완성·오류로 나누고, 계산 함수가 ValidInputs만 받도록 바꿨습니다.
-
안드로이드를 만들며 3 — strings.xml의 줄바꿈이 공백으로 바뀐 이유
strings.xml에 두 줄로 적은 안내가 화면에서는 한 문장으로 붙었습니다. 네 문자열과 열한 언어를 수정하고, 실제 줄바꿈이 들어간 자원을 찾는 검사를 추가했습니다.
-
안드로이드를 만들며 2 — 라이트 모드에서 사라진 삼각형 꼭지
셀렉트 목록 위의 삼각형 꼭지가 라이트 모드에서 보이지 않았습니다. elevation을 높여도 경계가 드러나지 않아 두 빗변에만 윤곽선을 그리고 테마별 색을 토큰으로 관리했습니다.
-
안드로이드를 만들며 1 — 비워 둔 Typography 슬롯에 들어간 기본 글꼴
Material3의 Typography 슬롯 열다섯 중 넷을 정의하지 않았더니 화면 일부에 기본 글꼴이 적용됐습니다. 모든 슬롯을 Pretendard로 채우고, 슬롯 수와 디자인의 글자 크기 단계를 구분했습니다.
-
첫 앱 출시기 4 — 업로드는 성공했고 스크린샷 55장은 빠졌다
11개 언어의 스토어 자료를 준비했지만 실제로 올라간 것은 기존 한국어 등록정보뿐이었습니다. 잘못된 폴더 경로를 발견하고, 서명·권한·업로드 결과를 각각 확인한 기록입니다.
-
첫 앱 출시기 3 — 광고를 보여줘도 되는 순간
계산기에 배너·전면·보상형 광고를 넣으며 동의, 구매, 저장 완료 상태에 따라 요청을 나눴습니다. 에뮬레이터에서 광고가 비어 있던 원인은 DNS였습니다.
-
첫 앱 출시기 2 — HTML 목업에서 앱으로 넘어간 시점
HTML 목업과 안드로이드 앱을 함께 고치다가, 실제 기기의 줄바꿈과 자판 동작은 목업으로 확인할 수 없다는 한계를 만났습니다. 8월 22일에 동기화를 끝낸 이유입니다.
-
첫 앱 출시기 1 — 물타기 계산기에서 빼기로 한 것들
반복하던 평단가 계산을 앱으로 만들었습니다. 시세 연동, 보유 자산 관리, 서버를 제외하고 첫 커밋에서 Play 테스트 트랙 업로드까지 12일 동안 작업한 기록입니다.