본문 바로가기

AndroidStudio

(4)
[Android] Navigation Backstack Controll and Pass Data Navigation을 이용하면 어떻게 fragment에서 결과값을 받아올 수 있을까? NavBackStackEntry와 LiveData를 활용하면 fragment의 결과값 전달을 할 수 있다. NavBackStackEntry - 말 그대로 NavController의 BackStack으로 집입시켜주는 메서드이다. - 이를 통해서 SavedStateHandle에 접근할 수 있다. - SavedStateHandle은 viewModel의 상태를 저장해놓은 Saved State를 다루기 위한 객체이다. 그렇다면 navigation에는 backstack을 관리하기 위한 옵션들에 대해서 간단히 짚고 넘어가자 popUpTo는 주어진 도착점이 나올때까지 백스택을 팝업한다. popUpToInclusive 속성이 1) fa..
[Android] Multi Select Gallery만들기 with Paging 앱에서 사진을 불러와야 할 때 어떻게 하셨나요?? 보통 Intent를 사용하여 핸드폰의 갤러리를 열고 사진을 가져왔을 것입니다. 이 방식으로 했을 때 제 스마트폰은 삼성갤러리로 접근이 되어 이미지 다중 선택이 되지 않습니다. (아니면 제가 방법을 모르는걸지도,,?) 그래서 저는 MediaStore에서 이미지 파일을 모두 불러온 뒤 Recyclerview에 로드해주었습니다. 많은 스마트폰에는 보통 수천개에서 수만개의 사진이 저장되어 있기 때문에 한번에 뷰에 로딩하는 것이 아니라 Paging을 이용하여 스크롤할 때마다 원하는 청크만큼 데이터를 요청하여 가져옵니다. 이렇게 하면 갤러리앱을 열지 않고 성능 저하 없이 직접 커스텀해서 사용할 수 있습니다! 1️⃣ Dependency추가 - version은 3.0...
[Android] kotlin으로 Coroutine사용하기 Coroutine을 이용하면 메모리를 효율적으로 사용하면서 손쉽게 비동기 처리를 할 수 있다. Coroutine은 Thread가 아니다. 코드만 보면 동기적으로 동작하는 것 같지만 쓰레드 처럼 비동기적으로 동작하며 경량 쓰레드라고도 부른다. 하나의 쓰레드 안에서 여러개의 코루틴이 동시에 수행될 수 있다. BackGround Task가 필요한 경우에 사용하는데 대표적인 예로, 1. 네트워크 리퀘스트 (Retrofit, Volley 등) 2. 내부저장소 접근 (Room, SQLite 등) 등이 있다. 1. Dependency 추가 안드로이드 스튜디오에서 코루틴을 사용하기 위해서는 build.gradle(:app)에 dependency를 추가해야한다. dependencies { implementation 'o..
차근차근 Kotlin(3) - Array, Collection 배열(Array) - 하나의 변수에 여러 개의 값을 저장할 수 있다. - 값을 담기 전에 먼저 배열 공간의 개수를 할당하거나 초기화 시에 데이터를 저장해두면 데이터의 개수만큼 배 열의 크기가 결정된다. - 먼저 개수를 정해놓고 사용해야 하며 중간에 개수를 추가하거나 제거할 수 없다. 사용법 : var 변수명 = Array(개수) 1. 배열객체는 기본 타입 뒤에 Array를 붙여서 만든다. ex) var students = IntArray(10) / LongArray(10) / DoubleArray(10) / CharArray(10) / FloatArray(10) / DoubleArray(10) 2. 이후 배열의 공간에 값을 입력한다. · 배열명[인덱스] = 값 ex) students[0] = 10 · 배..