동식이 블로그

[Android] Paging3 PagingAdater가 UI를 업데이트하기까지

Paging3 데이터가 UI 업데이트 되는 과정

[Android] Paging3 PagingAdater - submitData 생각해보니 Paging3를 사용하고있는데 이에 대해서 정리를 한번도 하지 않은 것 같다. 먼저 데이터가 UI에 그려지는 흐름부터 시작해서, 데이터를 처리, 가공해주는 부분까지 알아보도록 하자 Paging3를 사용해 데이터가 넘어와 pagingAdapter에 sub...

[Android] Native Debug Symbol

PlayStore 경고문구 !!

[Android] Native Debug Symbol 매번 심사제출 때마다 떨린다. 혹시나 앱이 리젝먹지는 않을까…. 앱을 올렸는데 이상한 파일이 올라가서(실제로 hello world apk를 올린적이 있다😂) 큰일 나지않을까 하는데, 정작 경고문구는 무시하고있던 나를 반성하면서 이 글을 작성한다 심사 제출할때마다 나타났던 경고창. 문...

[Kotlin] @Volatile

Volatile이란?

[Kotlin] @Volatile @Volatile 키워드 volatile 키워드는 Java 변수를 메인메모리에 저장하겠다는 것을 명시하기 위해 사용한다 volatile 변수를 사용하고 있지 않는 경우에는 Task를 수행하는 동안 성능 향상을 위해 메인메모리에서 읽은 변수 값을 캐시에 저장하게 된다. 멀티쓰레드 애플리케이션의 경우 각 쓰레드를...

[Kotlin] Primitive Type in Kotlin

Primitive type? Wrapper Type?

[Kotlin] Primitive Type in Kotlin 얼마전 카카오톡 오픈채팅에서 한 유저가 Kotlin에는 primitive type도 없어서 성능 구리겠네 ㅋ 라는 채팅이 올라온적이 있었다. 부방장이 kotlin에는 primitive type이 없지만 런타임시점에 가능한 효율적인 방식으로 표현된다고 했는데, 이 점이 궁금해져서 포스팅...

[Android] Fragment ViewLifecycleOwner

ViewLifecycleOwner?

[Android] Fragment ViewLifecycleOwner [Android] Fragment Lifecycle 글에 이에서 Fragment에서 사용하는 ViewLifecycleOwner에 관한 내용이다 Fragment에는 두 가지 Lifecycle이 존재한다 (Fragment Lifecycle, Fragment View Lifecy...

[Android] Dirty Flag Pattern

android designpattern

[Android] Dirty Flag Pattern Dirty Flag Design Pattern? 더티 플래그는 값의 변경이 일어나야 하는 상황을 플래그로 설정해두어, 꼭 필요한 상황에만 갱신을 하도록 해주는 패턴이다. 변화가 없는 상황인데 불필요한 연산을 한다면 퍼포먼스에 지장을 주기 때문이다 대부분의 글들이 게임 프로그래밍에 대해서 예를 들...

[Android] Hilt @Provides? @Binds?

Hilt Provides vs Binds

[Android] Hilt @Provides? @Binds? 적재적소에 @Provides와 @Binds를 사용해보자 Hilt? Android에서 의존성 주입(DI / Dependency Injection)을 도와주기 위해서 Hilt 라이브러리를 제공해 준다. Hilt 라이브러리를 사용하면 의존성 주입을 위해 Android 프로젝트에 컨테이...

[Kotlin] Coroutine Exception Handling

coroutine exception handling in viewmodel

[Kotlin] Coroutine Exception Handling Coroutine Exception Coroutine Builder들은 Exception을 어떻게 handling 하느냐에 따라서 두가지 타입으로 나뉜다 Exception propagation propagating exceptions automatically (예외 전파) : ...

[Android] Debounce 구현 (with Thread Safe)

Thread를 사용한 Debounce 직접 구현

[Android] Debounce 구현 (with Thread Safe) 개발을 진행하려고 했던 것은 체크박스나, 스위치에다가 네트워크 요청을 달아야 하는데, 사용자가 내가 의도한대로 한번-한번 천천히 클릭하는게 일반적이겠지만, 그렇지 않을 경우(굉장히 빠르게, 많이 이벤트를 발생시킬 경우) 불필요한 네트워크 요청이 매우 많아지게 된다. 그래서 제일...

[Kotlin] Serializable Object

kolin의 object serialize에 대해서

[Kotlin] Serializable Object Coroutine GlobalScope를 사용해야 할 일이 생겨서 GlobalScope가 정의된걸 보고있었는데, EmptyCoroutineContext 라는게 나와서 해당 context를 따라가보니 궁금한게 생겼다 EmptyCoroutineContext 1 2 3 4 5 6 7 8 9 1...