안드로이드 클린 아키텍처 정리

안드로이드 클린 아키텍처 정리 안드로이드 클린 아키텍처 정리 클린 아키텍처란? 최근에 클린 아키텍처를 안드로이드 프로젝트에 적용해보고 있는데, 처음에는 계층이 왜 이렇게 복잡한지 이해가 안 됐다. 하지만 막상 구조를 나눠서 코드를 작성해보니 “UI와 로직, 데이터가 뒤엉키지 않는다”는 게 이렇게 큰 장점일 줄은 몰랐다. 기본적으로 계층은 세 가지로 나뉜다: presentation: UI, ViewModel domain: UseCase, Entity, Repository Interface … Read more

Jetpack Compose에서 TTS 간단하게 구현하기 – rememberTextToSpeech 커스텀 훅 만들기

최근에 어르신들을 위한 앱을 만들면서 음성 안내 기능을 넣어야 했어요. Compose로 작업하다 보니 TTS도 Compose스럽게 쓰고 싶더라구요. 그래서 간단한 커스텀 Composable을 만들어봤습니다. 왜 Compose에서 TTS가 까다로울까? TTS는 Android의 전통적인 API라서 Compose의 선언적 패러다임과 잘 안 맞아요. 특히 이런 부분들이 신경 쓰였습니다: 초기화가 비동기로 진행됨 Activity 생명주기에 맞춰 정리해야 함 Recomposition 때마다 새로 생성되면 안 됨 … Read more

[Android] AGP 8.8.0에서 앱 이름 변경하여 빌드하기

AGP 버전이 올라감에 따라, 기존에 사용하던 방식으로는 더 이상 앱 이름이 변경 되지 않아 아래와 같이 로직을 수정해 주었다.ex) app-release.apk -> appName_version.apk aab의 경우, 태스크를 확인해 변경해주는 방식을 이용하였다. aab와 apk 모두 이름이 잘 변경되어 빌드 되는 것을 확인 할 수 있었다!