동식이 블로그

[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...

[Kotlin] Stackful / Stackless Coroutine

Stackful? Stackless?

[Kotlin] Stackful, Stackless Coroutine Stackful? Stackless? Coroutine은 Kotlin에서 처음 나온 개념이 아니다 (C#, Python, JavaScript, Kotlin등 지원) 1 It's not important to know the the distinction to be able to ...

[Kotlin] Coroutine? Thread?

Coroutine과 Thread 비교

[Kotlin] Coroutine? Thread? 단순히 Thread의 대안으로 Coroutine을 사용하는것으로 알고있었는데, 그게 아니였다. 좀 더 자세하게 알아보자 Process 와 Thread 일단 Process와 Thread에 대해서 알아보자 Process 프로그램이 메모리상으로 적재되어 실행되는 인스턴스 ...

[Kotlin] Annotation

Kotlin annotation 공부

[Kotlin] Annotation Hilt로 CoroutineDispatcher를 주입하려고 할 때 커스텀 어노테이션을 만들어야 했는데, 이 때 @Retention 어노테이션이 사용이 돼서 좀 더 자세하게 알아보게 되었다 Annotation 이란 ? 사전적 의미는 주석이지만, 주석과는 다르게 특정 코드에 달아서 어떤 의미를 부여하거...

[Android] Paging3 load all pages at once

Paging3 troubleshooting

[Android] Paging3 load all pages at once 문제점 : 페이징3 로드시 모든 페이지 데이터를 한번에 가져오는 문제 현재 문제가 생긴 구조 Activity - ViewPager - NestedScrollView - RecyclerView 문제점 PagerFragment내의 RecyclerView를 감...