Parcelable을 자동으로 구현해주는 @Parcelize에 대해 알아보자.

@Parcelize kotlin-parcelize 플러그인은 Parcelable 구현을 자동으로 해준다. 새로운 클래스를 생성도 필요 없고 @Parcelize 어노테이션을 추가하는 것만으로 직접 Parcelable 관련 코드를 작성 한 것과 같이 동작한다. 컴파일타임에 바이트 코드 변조를 하기 때문에 추가되는 메서드 및 런타임시 오버헤드 비용도 발생하지 않는다. 그리고 더보기…

SingleLiveEvent 개선하여 더블 클릭 방지 하기!

SingleLiveEvent 개선하기 개요 SingleLiveEvent에 대한 설명은 이전 포스팅을 참조하자. Jetpack 라이브러리의 Android Arhitecture Component의 등장이후로 ViewModel과 LiveData를 열심히 사용중이다. View에 대한 ViewModel의 의존관계를 완벽하게 끊어냄으로써 기존에 사용하던 이벤트 처리 방식을 변경 해야 했다. 이벤트 리스너를 뷰컨트롤러(Activity/Fragment)에 구현하는 방식을 많이 사용했는데, 더보기…

글쓴이 Charlezz,

운영체제의 Process와 Thread 이야기

Process와 Thread 이야기 프로세스(Process) 다음과 같이 위키에서 프로세스의 정의를 발췌했다. In computing, a process is the instance of a computer program that is being executed by one or many threads.   컴퓨터 분야에서 프로세스는 컴퓨터 프로그램의 인스턴스로, 하나 이상의 스레드를 더보기…

안드로이드의 Context를 이해하고, 메모리 누수를 방지하기

안드로이드의 Context란 무엇일까? Context란 사실 단어 그대로 맥락(Context)을 의미하며, 현재의 상태를 나타낸다. 다음 내용을 읽어보면 좀 더 Context를 이해하는데 도움 될 것 같다. Context에 대한 중요한 몇 가지 사실들! Application의 현재 상태를 Context를 통해 표현한다. Activity 그리고 Application의 정보를 Context를 더보기…

안드로이드 Paging3 컴포넌트 정복하기 – Part2 (네트워크에서의 페이징과 로컬 데이터 캐싱)

안드로이드 Paging3 컴포넌트 정복하기 – Part2 지난 Part1 에서는 Paging3 전반적인 내용과 PagingSource를 통해 네트워크로부터 페이징 된 데이터를 로드하고 화면에 나타내는 방법에 대해서 살펴보았다. 이번 포스팅에서는 오프라인 상태 또는 커넥션이 불안정한 상태에서도 앱 사용성을 보장하여 향상된 사용자 경험을 제공하는 방법에 더보기…

안드로이드 Paging3 컴포넌트 정복하기 – Part1 (페이징 된 데이터를 로드하고 화면에 나타내기)

안드로이드 Paging3 컴포넌트 정복하기 – Part1 Paging3는 Jetpack 라이브러리 중 하나로 다양한 데이터 소스로 부터 데이터를 나누어 효과적으로 로딩할 수 있게 한다. Paging3는 네트워크 또는 로컬 데이터베이스에서 쉽게 데이터를 불러올 수 있도록 도와주기 때문에 개발 시간을 단축시켜 준다. Paging3는 구글에서 더보기…

안드로이드에서 LruCache를 파헤치기

LruCache란? 면접 또는 코딩테스트에서 흔히 접할 수 있는 주제가 바로 LruCache다. 안드로이드에서는 LruCache가 어떻게 동작하고, 언제 그리고 어디서 사용되는지 한번 알아보도록 하자. LruCache에서 Lru란 Least Recently Used(최근에 가장 적게 참조됨)의 약자다. 그러므로 즉, LruCache는 제한된 사이즈에서 참조(set or get)된지 가장 더보기…