jetpackcompose 10

Cursor Composer 2.5 vs Claude Code, 안드 프로젝트 닷새 같이 굴린 1차 후기

지난주 새벽 2시, 안드로이드 스튜디오(Android Studio) 터미널 한쪽엔 클로드 코드(Claude Code), 다른 창엔 커서 컴포저 2.5(Cursor Composer 2.5). Room 마이그레이션을 누가 더 깔끔하게 뽑는지 정면으로 붙여봤거든요. 조건은 단순했어요. 단일 모듈 Compose 앱, Kotlin 2.3.x, AGP 9.2.0. 평가 축은 ① Room 스키마 마이그레이션 ② Compose 화면 추가 ③ Gradle 빌드 실패 디버깅 세 가지로 잡았습니다. 결과부터 미리 흘리자면, 한쪽이 완승하는 그림은 아니었어요. Composer 2.5와 Claude Code, 어디에 강점이 있나커서 컴포저 2.5는 Kimi K2.5 베이스에 Cursor가 후처리를 얹은 에이전트예요. SWE-B..

안드로이드 위젯 통합 테스트, remote-testing으로 뚫린 사각지대

일주일 9시간 투자해서 수동 QA가 놓친 위젯 버그 3건을 잡았습니다. 젯팩 컴포즈(Jetpack Compose) 최근 알파에서 추가된 remote-testing 덕분이었습니다. Glance 위젯은 본문을 그대로 룰에 던질 수 없고 어댑터로 한 번 감싸야 하는데, 그 얘기는 뒤에서 다시 풀게요. remote-testing 라이브러리가 위젯 테스트에서 의미하는 것그동안 위젯은 테스트 사각지대였습니다. 앱과 분리된 프로세스(out-of-process)에서 렌더링되니까 createComposeRule 기반의 표준 UI 테스트가 닿지 않습니다. Glance 위젯도, 잠금화면 보조 화면도, Wear OS 표면도 사정은 비슷했습니다. Remote Compose 라는 프레임워크가 그 사각지대를 일단 비집고 들어왔어요..

Jetpack Compose 2026.05.00 BOM 살펴보기 — MeshGradient·customizable shadows·defaultFontFamily

defaultFontFamily, 다시 돌아왔어요Material3 1.5 라인에서 다시 등장한 한 줄짜리 API인데, M3 초기에 빠졌던 바로 그 자리예요. 저는 그동안 displayLarge, headlineMedium, bodySmall … 13개 TextStyle 마다 fontFamily = Pretendard 를 일일이 복사해 박고 있었습니다. 두 줄씩 들어가니까 폰트 한 번 바꾸려면 26줄을 들춰야 했어요. 이번에는 이렇게 한 줄이면 끝나요.val AppTypography = Typography(defaultFontFamily = Pretendard)MaterialTheme(typography = AppTypography) { /* ... */ } 이전엔 이렇게 13개 스타일을 copy 로 돌려..

MeshGradient Modifier, 한 줄로 끝난다는 말의 진짜 의미

어제 1.12.0-alpha02 받자마자 온보딩 배경 Modifier 한 줄을 meshGradient 로 바꿔봤는데요. 픽셀 6 에서는 부드럽게 흐르는데, 에뮬레이터에서는 시커먼 사각형만 떠있더군요. 알파 버전 릴리즈 노트에서 Modifier.meshGradient() 가 정식 API로 들어왔다는 줄을 보고, 사이드 프로젝트 환영 화면 배경을 바꿔보고 싶어서 손이 먼저 갔습니다. 결과부터 말씀드리면, 분명 한 줄로 적용은 되는데 그 한 줄 뒤에 깔아야 할 게 의외로 많은 API였어요. Compose 1.12.0-alpha02 meshGradient 시그니처와 한 줄 적용먼저 시그니처부터 짚고 가겠습니다. points 가 2D 그리드의 (Offset, Color) 쌍 리스트이고, 해상도 인자 두 개가 따라..

Material3 1.5.0-alpha19 adaptive pane scaffold, 1.5.0 안정 직전 정리

adaptive 기능을 쓰려면 adaptive 모듈이 필요하다는 건 당연한 얘기처럼 들리죠. alpha19를 살펴보다 보니 그 전제가 흔들릴 수 있다는 흐름이 보였습니다. PaneScaffoldScope와 AnimatedPane 같은 일부 타입이 material3 본체에서도 노출되는 변경이 논의 중이라는 이야기가 있거든요. Material3 adaptive API, 본체 노출 가능성 (검증 필요)PaneScaffoldScope, ThreePaneScaffoldRole, AnimatedPane — 이 세 타입이 material3-adaptive 모듈에서 material3 본체 모듈에서도 참조 가능해질 수 있다는 변경이 거론되고 있어요. 다만 이 글을 쓰는 시점 기준으로 제가 직접 확인한 공식 릴리즈 노트 ..

최근 안정화된 Compose API, MeshGradient 말고 매일 쓸 3가지

화려한 MeshGradient보다 따분한 lint 경고 하나가 팀 전체 성능 기준을 바꿔놓습니다. 이번 릴리즈의 진짜 가치는 제일 눈에 안 띄는 API 세 개에 있더라구요. 젯팩 컴포즈(Jetpack Compose)의 최근 업데이트 내역을 처음 봤을 때, 솔직히 MeshGradient에 잠깐 눈이 갔습니다. 그런데 릴리즈 노트를 조금 더 읽다 보니까, 매일 손 가는 코드 문제들을 건드린 변경사항 세 개가 눈에 띄더라구요. 직렬화 보일러플레이트, 재컴포지션 성능 버그, 서비스에서의 다이얼로그 처리 — 다들 한 번씩은 머리를 싸맨 지점들이에요. 이런 기능들은 과거에 소개된 이후 이제는 안정화되어 더 편하게 쓸 수 있게 되었죠. rememberSerializable + KSerializer: Parcelabl..

Jetpack Compose 업데이트, 진짜 '물건'은 따로 있었네요

폴더블 UI 테스트하려고 아직도 에뮬레이터를 껐다 켜고 계신가요? 이제 프리뷰 창 크기만 쭉 늘리면 10초 만에 끝나거든요. 이번 젯팩 컴포즈(Jetpack Compose) 업데이트, 진짜 핵심은 따로 있었습니다. 새 릴리즈 소식이 들리면 다들 그렇잖아요. 이것저것 신기한 기능부터 찾아보게 되죠. 저도 이번 업데이트 노트를 보면서 '오, AI 기능이 드디어?' 하면서 기대를 많이 했는데요. 막상 다 써보고 나니까, 진짜 제 퇴근 시간을 앞당겨줄 '물건'은 예상치 못한 곳에 숨어있더라구요. 화려한 기능 리스트보다는, 당장 제 개발 시간을 줄여준 실용적인 업데이트 3가지를 골라봤습니다. 1. 폴더블 UI 테스트, 에뮬레이터 없이 10초 만에이건 진짜 경험해보셔야 해요. 예전에는 폴더블 기기에서 화면이 접혔을..

안드로이드 Compose 테스트 컴파일 에러, Matcher 기반 마이그레이션 일지

월요일 아침이었어요. 평소처럼 안드로이드 스튜디오(Android Studio)를 켰는데, 수십 개의 테스트 파일이 온통 빨갛게 물들어 있더라구요. 별생각 없이 올린 컴포즈(Compose) 버전 하나가 원인이었습니다. 진짜 멘붕이 오더라구요. 잘 돌아가던 테스트가 한순간에 전부 컴파일 에러를 뱉어내니까요. 저처럼 갑작스럽게 빨간 테스트 코드 더미를 마주한 분들이 분명 계실 것 같아서, 해결 과정과 그 속에서 배운 점들을 정리해봤습니다. 기존 테스트 코드가 한계에 부딪힌 이유원인은 테스트 환경의 고도화와 관련이 있었어요. 사실 젯팩 컴포즈(Jetpack Compose) 최신 버전에서 onNodeWithText 같은 확장 함수 자체가 공식적으로 완전히 삭제된 건 아니에요. 하지만 테스트 요구사항이 복잡해지면서..

무작정 최신 API로 바꾸면 안 되는 이유 (feat. Compose FlowRow vs LazyVerticalGrid)

얼마 전 깃허브에 올라온 팀 후배 PR을 리뷰하다 멈칫했습니다. 상품 그리드 코드 전체가 FlowRow 기반의 커스텀 레이아웃으로 바뀌어 있었거든요. 커밋 메시지엔 "Compose 최신 API로 반응형 레이아웃 교체"라고만 달려 있더라구요. 코드를 잠깐 들여다보고는, 바로 'Request Changes(수정 요청)'를 남길 수밖에 없었네요. 최근 컴포즈(Compose)에서 FlowRow와 ContextualFlowRow의 기능이 대폭 강화되면서 "이제 복잡한 LazyVerticalGrid는 구식 API 아니냐, 덜 써도 되는 것 아니냐"는 분위기가 생긴 건 저도 느끼고 있었습니다. 다만 그 판단이 좀 성급하다고 봅니다. 각각의 API는 애초에 다른 문제를 풀기 위해 설계된 거거든요. LazyVertica..

안드로이드 스튜디오에서 클로드 코드가 진짜 도움 되는 순간 3가지

팀 동료 하나가 Gradle 충돌로 반나절을 날렸습니다. 어느 라이브러리가 문제인지 몰라서요. 그런데 너무 답답해서 고민하다가 클로드 코드한테 던졌더니 5분 만에 딱 짚어주더라구요. 그 모습 보고 저도 써봤는데, 생각보다 쓰임새가 굉장히 많더군요. 안드로이드 앱 개발 툴인 안드로이드 스튜디오(Android Studio)로 작업할 때 특히 효과가 크다고 경험한 순간이 3가지 있는데, 하나씩 짚어볼게요. 프로젝트 전체를 한 번에 읽어내는 분석력클로드 코드(Claude Code)는 이전 글에도 명시했지만, 한 번에 200K 분량을 받아주는 것으로 알려져 있어요. 200K 가 어느 정도냐면, A4 용지로 따지면 80~100장 분량을 통째로 넣을 수 있다는 얘기거든요. 일반적인 AI 코딩 도구가 파일 몇 개씩 쪼..