Android에서 API 키 안전하게 관리하기 – Secrets Gradle Plugin 사용법

프로젝트하다가 실수로 API 키를 GitHub에 푸시한 적 있으신가요? 저는 있습니다… Google Maps API 키를 하드코딩해놨다가 커밋하고 나서 식은땀이 났던 기억이 나네요. 오늘은 Google에서 제공하는 Secrets Gradle Plugin으로 API 키를 안전하게 관리하는 방법을 공유해볼게요. 기존에 어떻게 했나? 보통 이런 식으로 했죠: // ❌ 절대 하면 안 되는 방법 class MapsActivity : AppCompatActivity() { private val API_KEY … Read more

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

안드로이드 클린 아키텍처 정리 안드로이드 클린 아키텍처 정리 클린 아키텍처란? 최근에 클린 아키텍처를 안드로이드 프로젝트에 적용해보고 있는데, 처음에는 계층이 왜 이렇게 복잡한지 이해가 안 됐다. 하지만 막상 구조를 나눠서 코드를 작성해보니 “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

Firebase Remote Config로 데모 앱 유효기간 관리하기 – 빌드 시간 기반 자동 만료 시스템

최근에 회사에서 SDK 데모 앱을 만들면서 겪은 일입니다. 무제한으로 사용하게 둘 수는 없고… 그렇다고 매번 만료일을 하드코딩해서 빌드하기도 번거롭더라구요. 그래서 Firebase Remote Config를 활용해서 꽤 괜찮은 해결책을 만들었습니다. 오늘은 그 과정을 공유해보려고 합니다. 문제 상황 저희가 원했던 건 이런 거였어요: 빌드할 때마다 자동으로 3일 사용 기한 설정 “며칠만 더 써보고 싶다”고 하면 즉시 연장 가능 … Read more

Windows에서 Fastlane + Firebase로 앱 배포 자동화하기

iOS/Android 앱 배포 자동화를 위한 Fastlane을 Windows에서 설정하는 방법을 정리해보았습니다. Mac이 아닌 Windows 환경에서도 충분히 Fastlane을 활용할 수 있습니다! 📋 사전 준비사항 Fastlane을 설치하기 전에 다음 프로그램들이 필요합니다: Ruby: Fastlane은 Ruby 기반으로 동작합니다 Git Bash: Unix 명령어를 Windows에서 사용하기 위해 필요합니다 Android Studio 또는 IntelliJ IDEA: 개발 환경 🔧 Step 1: Ruby 설치하기 Windows에서 Ruby를 … Read more

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

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

[Android] Retrofit 2를 활용한 간단한 회원가입 구현 예제

이번 글에서는 Retrofit 2 라이브러리를 사용하여 안드로이드 앱에서 간단한 회원가입 기능을 구현하는 방법을 알아보겠습니다. Retrofit 2를 활용하면 서버와의 원활한 통신을 통해 회원가입 프로세스를 간단하게 구현할 수 있습니다. 이해를 돕기 위해 예시 코드도 함께 제공하겠습니다. #1. Retrofit 2 라이브러리 소개Retrofit 2는 안드로이드 앱에서 서버와의 통신을 효율적으로 처리하기 위한 라이브러리입니다. 네트워크 요청과 응답을 처리하는 과정을 단순화하고 개발자가 … Read more

[Android] 네트워크 통신을 위한 Retrofit 2 활용 가이드

안드로이드 앱을 개발하다보면 외부 서버와의 통신이 필요한 경우가 빈번합니다. 이때 Retrofit 2 라이브러리는 편리하고 효율적인 도구로서 네트워크 통신을 간소화하고 관리할 수 있습니다. 이 글에서는 Retrofit 2를 활용하여 안드로이드 앱에서 서버와의 네트워크 통신을 구현하는 방법을 안내합니다. #1. Retrofit 2 라이브러리 소개Retrofit 2는 안드로이드 앱에서 서버와의 HTTP 통신을 쉽게 다룰 수 있도록 도와주는 라이브러리입니다. Retrofit 2를 사용하면 … Read more