Android/Jetpack(8)
-
[Jetpack WebView] shouldOverrideUrlLoading vs shouldInterceptRequest 완벽 정리
Android WebView를 사용할 때, 두 가지 중요한 메서드가 있다.shouldOverrideUrlLoadingshouldInterceptRequest이 두 가지를 제대로 이해하면, WebView에서 원하는 동작을 제어하고, 네트워크 요청을 최적화 할 수 있다.하지만, 두 메서드의 차이를 정확히 모르면 잘못된 방식으로 WebView를 컨트롤 하게 될 수도 있다. 1. shouldOverrideUrlLoading란?“ 웹뷰가 URL을 어떻게 처리할지 결정하는 메서드 ”(1) 역할WebView가 새로운 URL을 로드할 때, 이를 가로채서 직접 처리할지 결정한다.특정 URL을 WebView에서 로드할지, 외부 브라우저에서 열지, 차단할지 등을 제어한다.(2) 예시특정 링크만 Webview에서 호출하고,..
2025.03.20 -
Compose에서 네비게이션을 통한 데이터 전달 및 savedStateHandle 활용
프로젝트 구축하는 과정에서 문제가 하나 발생했다. ✅ 문제 상황AScreen에서 BScreen으로 화면 이동 후 BScreen에서 선택한 값을 AScreen으로 돌려주기이 때, ViewModel을 통해 돌려주면 viewModel이 초기화 되는 이슈 발생✅ 해결 방법NavController의 savedStateHandle을 이용하여 화면 간 데이터 전달ViewModel을 통해 데이터를 전달할 때, 전달된 데이터가 초기화 되는 현상이 발생했다.당연하다. ViewModel을 새로 만드는 멍청한 짓을 했으니까 ㅋ 그래서 찾아낸 다른 방법! NavController 이용하기~화면을 이동할 때 사용하는 Navigation Component는 데이터를 전달하는 savedStateHandle을 지원한다.이걸 활용하면 ..
2025.02.26 -
Jetpack Compose에서 remember vs rememberSaveable 차이 완벽 정리
Jetpack Compose에서는 remember와 rememberSaveable을 사용하여 상태(state)를 유지할 수 있다.하지만 두 함수의 동작 방식이 다르며, 유지되는 범위도 차이가 있다. 1️⃣ remember📌 개념remember는 Composable 함수가 재구성(Recomposition)될 때 값이 유지하지만 Activity가 재생성되거나 화면이 회전하면 값이 초기화.Composition Scope(컴포저블 생명주기) 안에서만 유지🔹 언제 사용해야 할까?UI 상태(애니메이션 진행 상태, UI 트리거 등)를 유지할 때화면 회전 후에도 데이터가 유지될 필요가 없을 때2️⃣ rememberSaveable📌 개념rememberSaveable은 remember와 비슷하지만, Activity가..
2025.02.13 -
Android Studio에서 Proto DataStore 설정하는 방법 (gradle kotlin)
Proto DataStore에 대한 친절한 정보가 많이 없어서제가 열심히 삽질해가며 작성한 글입니다... 😭 참고한 소스코드 : NowInAndroid[versions]# datastoreandroidxDataStore = "1.1.1"protobufPlugin = "0.9.4"protobuf = "4.26.1"junitJunit = "4.12"[libraries]# AndroidXandroidx-dataStore = { group = "androidx.datastore", name = "datastore", version.ref = "androidxDataStore" }androidx-dataStore-core = { group = "androidx.datastore", name = "datastor..
2024.11.07 -
Preference DataStore와 Proto DataStore의 차이
개요SharedPreferences는 이미 무덤으로 들어간지 오래.하지만 현재 회사는 아주 아주 오래된 프로젝트였고, 여전히 SharedPreferences를 사용하고 있었다.데이터 무결성이 지켜지지 않아 자꾸 문제가 발생하였기에 마이그레이션을 하기로 결정 !! 이전 회사에서 사용했던 방법은 JetPack에서 나온 DataStore였다.당연하게 써왔던 DataStore의 개념이 NowInAndroid를 보며 무너졌다. Proto DataStore ???그게 대체 뭔데 !!!!!!! 모르면 정리해야지...정리1. Preference DataStore란?Key-Value 형식으로 데이터를 저장하는 방법이다.SharedPreferences의 방식과 유사하다.단, 구조화 된 데이터는 지원하지 않으며 Boolea..
2024.11.05 -
[Android/Jetpack]ViewModel + Databinding + LiveData
구현을 위한 이전글 [프로그래밍]MVVM 패턴 MVVM패턴이란? View - ViewModel - Model View: 사용자에게 보이는 화면 ViewModel: View를 표현하기 위해 만든 View를 위한 Model && View를 나타내주기 위한 데이터 처리 담당 Model: 어플에서 사용되는 데이터 및 anovice-dp.tistory.com [Android/Jetpack]Databinding 사용하기 (1) 기본 세팅 build.gradle (java는 아래 코드만 추가) android { ... dataBinding { enabled = true } ... } build.gradle (kotlin의 경우, 아래 코드도 추가) apply plugin: 'kotlin-kapt' ... depend..
2023.02.24