동식이 블로그

[Android] TextView.getText()

TextView의 text를 가져오자

[Android] TextView.getText() 오랜만에 간단한 글.. 정신차리고 코딩 TextView의 LineCount를 가져오려면 해당 TextView가 그려진 다음에 TextView의 .lineCount 메서드를 통해서 값을 가져올 수 있다. 그렇게 하려면 ViewTreeObserver를 단다던지… textView에 .post ...

[Android] Paging3 Pager 내부에서 일어나는 일

Paging3 Pager 내부 들여다보기

[Android] Paging3 Pager 내부에서 일어나는 일 이전 글에서 PagingDataAdapter의 submitData에 대해서 알아보았다 이전 글 : Paging3 PagingAdater가 UI를 업데이트하기까지 Paging3 version 3.0.1 이번엔 Pager에 대해 알아보자. Pager는 PagingSourc...

[Kotlin] Coroutine 내부동작

suspend가 어떻게 돌아가는지

[Kotlin] Coroutine 내부동작 코루틴의 내부 동작에 대해 알아보자 코루틴을 사용할 때 익숙하게 보아왔던 suspend. 일시 중단을 가능하게 해주는 한정자인데, 어떻게 일시 중단이 되며 다시 재개될 수 있는지 알아보도록 하자 suspend 한정자가 달린 함수를 디컴파일 해보면 Continuation Passing Style(...

[Kotlin] Value Class

Value Class란 무엇일까

[Kotlin] Value Class Value Class 객체를 생성하는 비용을 줄여주는 class 1 2 3 4 5 6 @JvmInline value class Color private constructor(val rgb: Int) { companion object { fun rgb(rgb: Int) = Color(rgb) } ...

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