분류 전체보기126 기분 버튼 개인정보처리방침 (Privacy Policy) 앱 이름: 기분 버튼개발자/운영자: joh9911문의 이메일: joh99111@gmail.com시행일: 2025-11-29기분 버튼(이하 “앱”)은 사용자의 개인정보를 중요하게 생각하며, 본 개인정보처리방침은 앱 이용 시 개인정보의 처리 방식에 대해 설명합니다.1. 수집하는 개인정보앱은 다음과 같은 개인정보를 수집하지 않습니다.이름, 이메일, 전화번호 등 개인 식별 정보위치 정보연락처, 사진/미디어, 파일기기 고유식별자(광고 ID 등)결제 정보또한 앱은 회원가입/로그인 기능이 없으며, 서버로 데이터를 전송하지 않습니다.2. 앱에서 저장되는 정보(로컬 저장)앱은 사용자가 입력한 기분 기록(좋음/보통/나쁨)과 날짜 정보를 기기 내에만 저장합니다.저장된 데이터는 앱 기능 제공(달력 표시 등)을 위해서만 사용되.. 2025. 11. 29. DeleteApp 개인정보처리방침(Privacy Policy) # 개인정보처리방침**최종 업데이트: 2025년 10월 27일**## 1. 개요DeleteApp("앱")은 사용자의 개인정보를 보호하고 있습니다. 본 개인정보처리방침은 앱의 데이터 수집 및 사용 관행에 대해 설명합니다.## 2. 수집하는 정보**본 앱은 어떠한 개인정보도 수집하지 않습니다.**앱은 다음과 같은 정보를 수집하지 않습니다:- 개인 식별 정보 (이름, 이메일 주소, 전화번호 등)- 위치 정보- 기기 정보- 사용 데이터- 기타 모든 형태의 사용자 데이터## 3. 데이터 저장 및 보안앱은 사용자의 개인정보를 수집하지 않으므로, 어떠한 데이터도 서버나 외부 저장소에 저장되지 않습니다. 앱의 모든 기능은 사용자의 기기 내에서만 작동합니다.## 4. 제3자 서비스본 앱은 사용자 데이터를 수집하는 제3자.. 2025. 10. 27. SoundCanvas 개인정보 처리방침(Privacy Policy) SoundCanvas 개인정보 처리방침SoundCanvas는 사용자의 개인정보를 수집하거나 저장하지 않습니다.앱에서 사용하는 권한은 다음과 같습니다:다른 앱 위에 표시 권한: 음악 컨트롤 오버레이 표시 목적알림 접근 권한: 현재 재생 중인 음악 제목/가수 표시 목적오디오 설정 변경 권한: 이퀄라이저, 베이스, 가상화 등 음향 효과 적용 목적인앱 결제 권한: 구글 플레이 결제 시스템을 통한 인앱 구매 처리 (추후 추가 예정)모든 데이터는 기기 내에서만 처리되며 외부 서버로 전송되지 않습니다. App name: SoundCanvasDeveloper contact: joh99111@gmail.comSoundCanvas respects your privacy. This app does not collect, s.. 2025. 9. 23. [Android] # 14 Navigation Component 사용하기 유튜브에서는 홈 탭, 구독 탭, 보관함 탭 등을 눌러 창을 이동해도, 이전 창에서의 데이터를 모두 유지합니다. 저는 이를 구현해 보기 위해서, 각 프레그먼트를 미리 추가해 놓고 show, hide 매소드를 이용하고 있었습니다. [Android] #9 컴포넌트 설계 수정 빠르게 피드백을 받아보고자, 플레이리스트 기능을 제외하고 출시를 했었습니다. 해당 기능에 대한 고려 없이 개발을 했던 것 같습니다. 추가하려던 찰나 컴포넌트 설계를 잘못했다는 것을 깨 joh9911-programming-note.tistory.com 한눈에 보기 복잡한 Backpress 처리가 필요했었습니다. // ex) 하나의 프레그먼트 callback = object : OnBackPressedCallback(true) { overri.. 2023. 8. 25. [Android] # 13 MVVM 패턴 적용 디자인 패턴 공부를 미뤄왔었습니다. 귀찮기도 했고, 무엇보다 기능 구현을 우선으로 여겨, 여러 자잘한 버그들을 수정하고 보완하는데 시간을 보냈습니다. 필요한 라이브러리 기술들을 살펴보려 예시 앱들을 찬찬히 뜯어보는데, 모두 MVVM 아키텍처 기반으로 구성되어 있어, 무지했던 저는 알아보기 힘들었습니다. 이번 기회에 본격적으로 공부도 할 겸, 기존 앱에 MVVM 패턴을 적용해 봤습니다. 다음은 수정한 굵직한 부분입니다. 데이터 계층 정의 이전까지는 각 프레그먼트에서 각 라이브러리(Retrofit2, RoomDB) 의 매서드를 통해 데이터를 요청했습니다. 필요한 데이터 유형이 같은 경우, 데이터를 요청하는 메서드를 복붙 하여 사용했으며 데이터터 요청 방식이 달라질 경우, 모든 코드를 하나하나 수정해야 했습니.. 2023. 8. 14. [Android] # 문제 해결 - 6 Room 마이그레이션 실수.. 미칠 것 같습니다. 데이터베이스 스키마 구조를 수정하면서 Room 버전을 업데이트하였고, 사용했던 마이그레이션들을 명시하지 않은 채 앱 업데이트를 진행했습니다. 앱이 들어가자마자 충돌이 나네요.. 더 심각했던 것은, 업데이트 이전 데이터베이스 구조와, 업데이트 이후 데이터베이스 구조의 차이점을 잘 모르겠다는 점이었습니다. 그동안 작성했던 마이그레이션을 업데이트할 때마다 지웠었습니다. 정말 아무 생각이 없었던 것 같아요. 기억을 되살려서 다시 마이그레이션을 작성한 후, 다시 업데이트를 진행했지만 계속 충돌이 났습니다. 이때 멘탈을 살짝 놨습니다. 구글 팀에서 업데이트를 검토하는데 하루 반이 걸리던데, 만약 다시 업데이트를 했을 때에도 충돌이 나면 정말 큰일이었습니다. 고민하다 결국 데이터베이스 내 저장된 .. 2023. 7. 6. [Android] # 문제 해결 - 5 앱 이슈 해결 6월 28일쯤 비정상 종료 횟수가 치솟았습니다. 오류의 목록은 다음과 같습니다. 대부분 서비스 관련 오류입니다. 오류 횟수가 그렇게 많지가 않았어서, 오류 원인을 명확히 알았음에도 불구하고 미뤄두었습니다. 이번에 뷰모델을 공부하고 적용해 보면서 차근차근 고쳐나가자 생각하고 있었거든요. 갑자기 횟수가 많아져서, 오류부터 해결하고자 합니다. 첫 번째 오류 해당 오류를 해결하려다가 머릿속에 혼란이 와, 자그마치 3일 동안 삽질을 했네요. 일단 해당 오류는 백그라운드 상태에서, 포그라운드 서비스를 시작하려 할 때 나타나는 예외입니다. 시작 지점이 exoPlayer의 onPlayerStateChanged입니다. 이는 exoPlayer의 상태가 바뀔 때 호출되는 콜백 리스너이며, 저는 exoPlayer의 상태가 바.. 2023. 7. 1. [Android] #12 mediaSession 공부 및 코드 리팩토링 - 1 비디오를 재생하고 관리하는 부분에 있어서, 제 코드는 엉망진창 그 자체입니다. 지금도 어떤 원리로 제 코드가 돌아가는지 모르겠습니다.. 그냥 작동은 잘 되네요. Service 코드를 리팩토링 하던 중, 다음과 같은 사실을 발견할 수 있었습니다. 분명 음악을 재생 중이며 Notification까지 뜨지만, 기기 내 미디어 출력에서는 현재 재생 중인 곡이 뜨지 않는다는 것을 알게 되었습니다. 다른 앱은 잘 떠요. 공식 문서에 미디어 플레이어 앱의 흐름에 관련한 문서가 있는데, 공부해 보면서 코드를 리팩토링 해보려고 합니다. 이전까지의 코드 구조 억지 구현이다 보니 구조라고 말하기도 좀 그러네요.. override fun onCreate() { super.onCreate() // 미디어 세션 초기화 media.. 2023. 6. 29. 이전 1 2 3 4 ··· 16 다음