본문 바로가기

Android28

[Android] jetpack compose : State Hoisting(상태 호이스팅) ✅ State Hoisting(상태 호이스팅)이란?컴포저블 함수 내부에서 상태를 직접 관리하는 대신, 상위 컴포저블로 상태를 끌어올려(State Lift) 관리하는 패턴을 의미합니다.📌 왜 State Hoisting을 사용할까?재사용성 증가: 상태를 특정 컴포넌트에 묶지 않고, 상위에서 관리하면 여러 하위 컴포넌트에서 공유 가능단방향 데이터 흐름 유지: 데이터 흐름이 예측 가능하고 유지보수 쉬워짐컴포저블의 책임 분리: UI 컴포저블은 UI만 담당하고, 상태 관리는 상위에서 담당🚀 예제: State Hoisting 적용 전 vs 후❌ 상태를 내부에서 관리하는 잘못된 예시@Composablefun Counter() { var count by remember { mutableStateOf(0) } /.. 2025. 3. 7.
[Android] SMS Retriever 못 받아오는 오류 운영에서 해시 키 인식이 안되었던 이유안드로이드 버전 12 이하 까지는 작동이 됨버전 13 이상부터는 RECEIVER_NOT_EXPORTED 필터를 걸게 되어 메세지를 내용을 받아오지 못했음RECEIVER_EXPORTED 로 변경외부에서 브로드 캐스트 리시버 실행 필터 → 시스템 이벤트(SMS 수신)을 할 수 있음 Dev에서 해시 키 인식이 안되었던 이유메세지 해시 값이 로컬 키파일에 의한 해시 값으로 변경되어 있었음keystore에 의한 해시 값으로 변경 (기존 문서 dev 해시 값과 동일) 2024. 12. 19.
[Android] 앱 삭제 시에도 SharedPreference가 남아있는 현상 앱 삭제 시 Google 클라우드 백업 및 장치 간 데이터 전송을 비활성화하는 역할을 합니다. 즉, 앱을 삭제하거나 재설치할 때 기존 데이터가 Google 계정을 통해 복원되지 않도록 설정하는 코드입니다.앱 삭제 자체와는 관계없으며, 앱의 데이터 파일이나 설정을 삭제하거나 날리는 작업은 하지 않습니다. 아래에서 다시 한번 정리해 드릴게요.Google 클라우드 백업(Google Drive를 통한 자동 백업)을 비활성화합니다.앱 데이터를 Google 계정에 저장하지 않도록 설정합니다.낼 더 자세히 쓰도록 2024. 11. 21.
[Android] 안드로이드 앱 비동기 처리 및 interceptor 네트워크 모듈과 인터셉터는 HTTP 통신을 관리하고, 요청 및 응답을 처리하는 데 중요한 역할을 합니다. 이들은 Retrofit과 OkHttp 라이브러리를 중심으로 설계되고 사용됩니다.1. 네트워크 모듈(Network Module)네트워크 모듈은 API 통신을 중앙에서 관리하는 구조로, 앱의 네트워크 요청을 효율적으로 처리하기 위한 설계입니다.역할API 클라이언트 설정 및 초기화.공통적인 네트워크 관련 설정 관리.요청 인터셉터, 응답 처리, 오류 처리 등 통합 관리.네트워크 모듈 설계 예제Step 1: Gradle 의존성 추가implementation 'com.squareup.retrofit2:retrofit:2.9.0'implementation 'com.squareup.retrofit2:converte.. 2024. 11. 20.
[Android] FLAG_ACTIVITY_SINGLE_TOP 와 FLAG_ACTIVITY_CLEAR_TOP 차이점 Intent.FLAG_ACTIVITY_SINGLE_TOP이 플래그는 현재 Task의 최상단에 동일한 Activity가 이미 있다면 새로 생성하지 않고 기존 Activity의 onNewIntent() 메서드를 호출합니다.조건: 동일한 클래스의 Activity가 Task의 최상단에 있어야 합니다.Intent.FLAG_ACTIVITY_CLEAR_TOP이 플래그는 스택에 동일한 Activity가 이미 존재하는 경우, 해당 Activity 위의 모든 Activity를 종료합니다.종료 후, 동일한 Activity는 새로 생성하거나 onNewIntent()를 호출합니다. 어떤 동작이 발생할지는 Intent.FLAG_ACTIVITY_SINGLE_TOP의 유무에 따라 달라집니다. 플래그에 따라 기존 화면을 다시 그릴 지.. 2024. 11. 19.
[Android] gradle를 활용한 firebase App distribution 배포 후 slack 알람 연동 * 이미 gradle을 활용한 firebase App distribution 은 개발되어있던 상태.* 그러므로 앱이 배포되면, 따로 슬랙 메세지를 보냈어야 했다.* 하지만, 배포가 되자마자 바로 슬랙 메세지를 보내는 봇을 만들자! firebase App distribution 공식 문서https://firebase.google.com/docs/app-distribution/android/distribute-gradle?hl=ko Gradle을 사용하여 Android 앱 배포  |  Firebase App Distribution의견 보내기 Gradle을 사용하여 Android 앱 배포 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. APK AAB App Distribution.. 2024. 11. 17.