전체 글12 안드로이드 멀티모듈 환경에서 R8/ProGuard 난독화 Google Play Console에 앱 번들을 업로드하면 다음과 같은 경고를 확인할 수 있습니다. 난독화와 관련된 경고로 지난 빌드 과정을 이해하면서 이해했던 코드 축소, 난독화, 최적화와 관련된 내용입니다.중요: 앱의 출시 빌드에는 항상 최적화를 사용 설정해야 하지만 테스트나 라이브러리에는 사용 설정하지 않는 것이 좋습니다. 테스트와 함께 R8을 사용하는 방법에 관한 자세한 내용은 최적화 테스트 및 문제 해결을 참고하세요. 라이브러리에서 R8을 사용 설정하는 방법에 관한 자세한 내용은 라이브러리 작성자를 위한 최적화를 참고하세요. 공식문서의 권장 사항으로 앱의 출시 빌드에는 항상 최적화가 적용되어야 한다고 합니다. 해당 경고는 R8을 사용하여 난독화된 코드를 가독화할 수 있는 mapping.txt 파.. 2025. 7. 9. Android 빌드 과정 이해하기 안드로이드 스튜디오에서 Run 버튼을 누르는 순간부터 에뮬레이터나 기기에 앱이 설치되기까지, 보이지 않는 곳에서는 수많은 작업이 일어납니다. 이 과정을 Build라고 부릅니다. 이 빌드 과정에 대해 공부한 내용을 정리하였습니다. GradleGradle은 빌드 자동화 도구입니다. 개발 프로젝트에서 build.gradle을 자주 접하게 되는데 빌드, 테스트, 배포와 같은 반복적인 작업을 자동화하고 관리하는 데 사용합니다. Gradle은 코드를 컴파일하는 것을 넘어 다음과 같은 핵심적인 역할을 수행합니다.빌드 프로세스 자동화: 소스 코드 컴파일, 리소스 패키징, DEX 파일 생성, APK 서명 및 최적화 등 복잡한 안드로이드 빌드 단계를 자동으로 처리합니다.의존성 관리: 프로젝트에 필요한 라이브러리를 외부 저.. 2025. 7. 9. 구글 플레이 정기 결제 V8 구현하기 AppLink Alarm을 개발하면서 광고 제거 및 편의 기능을 제공하는 Premium membership 기능을 추가하면서 구글 플레이 인앱 정기 결제를 구현하는 내용을 정리하였습니다. 초기 설정정기 결제 상품을 추가하려면 Google Play Console에 상품을 추가해야 합니다. 하지만 기본적으로 권한이 추가되지 않은 상태에서는 인앱 상품과 정기 결제 상품을 만들 수 없습니다. ... 권한을 추가하고 공개 테스트나 비공개 테스트 혹은 내부 테스트에 앱을 등록시킨 후에 상품을 추가할 수 있습니다. 멀티 모듈의 경우 권한이 등록된 모듈이 최종적으로 빌드된 앱 번들에 포함되어야 합니다. Google Play Console의 설정에서 먼저 개발자 계정 설정을 추가합니다. 결제 프로필을 만들.. 2025. 7. 8. AboutLibraries를 사용하여 오픈소스 라이선스 표시하기 오픈소스 라이선스 고지 의무안드로이드 앱을 개발할 때 다양한 오픈소스 라이브러리를 당연하게 활용하여 개발합니다. 오픈소스 사용에는 라이선스 고지라는 중요한 의무가 따르지만, 평소에 개발할 때는 크게 생각하지 않고 사용했던 것 같습니다. 하지만 오픈소스 라이선스 고지 의무를 소홀이 하게 된다면 법적 분쟁에 휘말리어나 앱이 스토어에서 내려가는 등의 일이 발생할 수도 있다고 합니다. 고지 의무의 핵심 내용앱을 사용자에게 배포할 때는 다음 정보를 사용자가 쉽게 확인할 수 있도록 제공해야 합니다.오픈소스 명칭 및 버전: 사용된 오픈소스의 정확한 이름과 버전 정보저작권자 정보: 원 개발자 또는 저작권 보유자에 대한 정보라이선스 명칭: 적용된 라이선스의 이름 (예: Apache License 2.0)라이선스 사본: .. 2025. 6. 28. Android AdMob Native Ads Compose와 함께 적용하기 AdMob에는 다양한 광고 단위가 있습니다. 배너와 전면 광고, 리워드 광고도 사용해 보았지만 이번에는 네이티브 고급 광고를 사용하여 앱의 디자인과 어울리도록 광고를 추가해 본 과정에 대해서 정리하였습니다. Native Ads 란?배너 광고와 네이티브 고급 광고를 제외하고 나머지 광고들은 UI에서 광고를 실행하는 게 아닌 광고 객체에서 직접 실행할 수 있는 형태입니다. 그렇기 때문에 직접적으로 UI에서 설정할 필요 없이 광고를 Load 하는 로직과 보여주는 로직, 혹은 리워드를 처리하는 콜백을 설정하는 등의 작업이 필요합니다. 하지만 배너 광고와 네이트브 광고는 직접 UI에 형태와 위치를 지정해야 합니다. 배너 광고의 경우 어디에 배너가 위치해야 할지, 배너의 크기는 어떤 크기로 할지 정해야 한다면, 네.. 2025. 6. 26. FFmpegKit has been officially retired Failed to resolve: com.arthenica:ffmpeg-kit-full:6.0-2 프로젝트 빌드 중 com.arthenica:ffmpeg-kit-full:6.0-2의 의존성을 찾을 수 없다는 오류 메시지를 접하게 되었습니다. 분명 얼마 전까지만 해도 잘 되었던 프로젝트에서 갑자기 왜 이런 문제가 발생하는지 알아보았습니다. https://tanersener.medium.com/saying-goodbye-to-ffmpegkit-33ae939767e1 Saying Goodbye to FFmpegKitAs of January 6, 2025, FFmpegKit is officially retired.tanersener.medium.com Arthenica의 블로그 게시물 'Saying Goodby.. 2025. 5. 28. 이전 1 2 다음