동식이 블로그

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

[Android] Fastlane #2 (PlayStore)

Fastlane 릴리즈 자동화

[Android] Fastlane #2 (PlayStore) 실제 PlayStore에 게시할 lane 설정을 해보자 저번에 생략했던 metadata를 받아오는 작업부터 시작 1 fastlane supply init --track [production, beta, alpha, internal] 작업이 완료되면 fastlane 디렉토리에 여러 디...

[Android] Room Migration

Room Database Migration

[Android] Room Migration Room을 사용하면서 겪었던 Migration 이야기 기획자 : 이 화면에서 추가적으로 데이터를 보여주세요 ! 백엔드 : 새로운 필드 하나를 추가했습니다 ! 이미 서비스중인 앱에 위와 같은 요구사항은 빈번하게 일어난다. 단순히 entity를 수정하고 빌드하고 앱을 업데이트 하게한다면? Looks ...