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에서 Claude Code 설치 가이드

Windows에서 Claude Code 완벽 설치 가이드 – AI 코딩의 새로운 차원 🚀 Windows에서 Claude Code 완벽 설치 가이드 – AI 코딩의 새로운 차원 개발자 여러분! 혁신적인 AI 코딩 도구 Claude Code를 Windows에서 사용하고 싶으신가요? 이 글에서는 초보자도 쉽게 따라할 수 있는 완벽한 설치 가이드와 실전 활용법을 제공합니다. 🤖 Claude Code란? – AI 코딩의 게임 체인저 … Read more

모노로그 계정 삭제 방법 안내

이 페이지는 Android 앱 ‘모노로그 (Monolog)’ 사용자들의 계정 삭제 요청을 안내하기 위한 공식 페이지입니다. 안녕하세요 모노로그 앱을 이용해 주셔서 감사합니다. 사용자는 언제든지 자신의 계정을 삭제할 수 있으며, 계정 삭제 시 모든 개인 데이터가 영구적으로 제거됩니다. 아래 안내를 따라 계정 삭제를 진행해 주세요. 1. 계정 삭제 전 유의사항 2. 계정 삭제 방법 앱 내에서 계정 삭제하는 … Read more

Poit 앱 계정 삭제 방법 안내

이 페이지는 Android 앱 ‘Poit’ 사용자들의 계정 삭제 요청을 안내하기 위한 공식 페이지입니다. 안녕하세요, 저희 앱을 이용해 주셔서 감사합니다. 사용자는 언제든지 자신의 계정을 삭제할 수 있으며, 계정 삭제 시 모든 개인 데이터가 영구적으로 제거됩니다. 아래 안내를 따라 계정 삭제를 진행해 주세요. 1. 계정 삭제 전 유의사항 2. 계정 삭제 방법 앱 내에서 계정 삭제하는 방법 … Read more

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

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

[Android] apksigner 을 이용한 앱 서명 방법

기존에는 jarsigner를 활용해 서명을 진행했지만, Android 11 이상부터는 apksigner를 활용해 서명을 진행해야만 앱을 설치할 수 있습니다.그럼 apksigner를 활용한 apk 서명 방법에 대해 알아봅시다! https://developer.android.com/tools/apksigner 자세한 내용은 상단 AndroidDevelopers를 참고하세요! 여기까지 진행하고나면, apk에 signing이 완료된 것을 확인할 수 있으며, 이제 install 이 가능합니다 ^______^

[MacOS] Java 버전(JDK version) 변경하기

사용중인 로컬에, JDK 버전 (Java 버전)이 여러개 설치되어 있는 경우 원하는 버전으로 변경하는 방법을 알아봅시다! 본 문서는 MacOS 를 기준으로 작성되었습니다. #1. 우선 사용 중인 Java 버전을 먼저 알아봅시다 위의 명령어 입력시 아래와 같이 출력되는걸 볼 수 있습니다. #2. 로컬에 설치되어 있는 자바 버전들을 확인해봅시다 위의 명령어 입력시 아래와 같이 출력되는걸 볼 수 있습니다. 17, … Read more

MacOS unzip 에러 해결 방법

윈도우에서 생성된 zip 파일들 중, 파일 이름에 한글이 들어간 경우에 MacOS에서 zip 파일을 더블클릭해도, 혹은 unzip 명령어를 사용해도 압축 해제가 안되는 경우들이 있습니다. 예를 들어 아래와 같이 명령어를 입력했다면, 이런식으로 말이죠 ,,,, 이럴 땐, 터미널에서 unzip이 아닌 ditto로 압축을 해제하면 해결 된답니다 ^__^

자동 이미지 픽셀 줄이기 스크립트

블로그를 쓰기 위해 항상 HEIC 확장자를 가진 이미지를 리사이징하고, 확장자를 변경했는데 하나하나 손수 하기에 너무 귀찮아서 스크립트를 활용해 자동화 하기로했다. 우선 스크립트 작성에 앞서,, heic 파일을 다루는게 생각보다 까다롭다는 것을 깨달았다. 아무래도 확장자가 jpg나 png인 편이 훨씬 다루기 쉽다는 것을 뼈저리게 느꼈지만 ,, 애플러버는 어쩔 수 없다 흑흑 .. 스크립트의 순서는 이렇다. 해당 스크립트를 실행하면 … Read more