안드로이드 앱 모듈화 가이드

모듈이란? 모듈(module)이란 앱을 구성하는 요소로, 관련된 소스 코드나 리소스 등을 하나로 묶는 단위다. 최근에는 앱 모듈에 모든 코드를 작성하지 않고, data나 domain 등의 모듈로 세분화 시켜 개발한 뒤 최종적으로 프로덕트를 만들 때 이러한 모듈들을 합쳐서 하나의 애플리케이션을 만들게 된다. 이런 더보기…

이미지 Exif(메타-데이터) 수정하기

Exif 란? Exif(Exchangeable Image File format)는 스캐너, 스마트폰, 디지털 카메라 등에서 기록된 이미지(또는 오디오) 파일을 다룰 때 태그를 보조적으로 사용하는 표준 포맷이다. 위 이미지에 나타나는 ‘출처‘, ‘규격‘, ‘기기 제조사‘, ‘위도‘, ‘경도‘ 등이 일반적으로 Exif형식의 내용이며, 이 메타데이터들은 이미지 파일 자체에 더보기…

계측 테스트에서 리소스 불러오기

계측 테스트 코드 작성시 외부에서 리소스(파일)을 불러와야 하는 경우가 있다. 다음의 절차를 따라 리소스를 불러 올 수 있다. 1. 리소스 디렉토리 파일 추가하기 계측 테스트를 수행하고자 하는 모듈 하위에 다음과 같이 resources 디렉토리를 추가한다. 추가한 디렉토리에 원하는 리소스를 추가한다. 이 더보기…

Android 14 미리보기

Android 14 미리보기 한국시간으로 오늘 새벽에 Android 14 Preview 가 공개되었다. Preview 단계라 아직 모든것이 확정된 내용은 아니지만 현재까지 공개된 내용으로 이 포스팅을 작성한다. Android 14의 주요 변경 사항은 보안강화와 베터리 타임을 개선하는 내용이다. Android 14 릴리즈 일정 이제 Preview 더보기…

Compose의 CompositionLocal 이해하기

컴포저블 함수는 트리(tree)로 구성된다. 이 때 상태는 일반적으로 트리에서 가능한 한 가장 높은 노드에 선언되어야 한다(상태 호이스팅). 그리고 일반적으로 이렇게 선언된 상태는 하위 트리로 전달되곤 한다. 하지만 트리에서 여러 단계를 통해 상태를 전달해야 할 때는 다소 번거로울 수 있다. 예를 더보기…

[Hilt] 컴파일 타임에 @InstallIn 체크 무시하기

Hilt를 사용할 경우 모듈 클래스에 반드시 @InstallIn을 추가해야 한다. 그렇지 않으면 컴파일 타임에 오류가 발생한다. 하지만 Dagger2에서 Hilt로 마이그레이션을 하거나 특별한 사유가 있는 경우 모든 모듈 클래스에 @InstallIn을 추가하기 어려운 경우가 있다. 이때 다음 예제코드 처럼, 해당 모듈의 그레이들 스크립트에 더보기…