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

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

글쓴이 Charlezz,

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

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

글쓴이 Charlezz,

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

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

글쓴이 Charlezz,

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

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

글쓴이 Charlezz,

Span이 적용된 텍스트를 잘라서 붙일 때 제대로 나오지 않는다면?

Span이 적용된 텍스트를 잘라서 붙일 때 제대로 나오지 않는다면? Span이 적용된 텍스트를 잘라서 붙여야 하는 경우가 있다. 예를 들면 원문 중간에 새로운 텍스트를 삽입하거나 필요없는 텍스트를 제거해야 하는 경우가 그렇다. 나의 경우도 별반 다르지 않았기 때문에 Span이 적용되어 있는 텍스트를 자른뒤 다시 이어 붙였지만 이상하게도 원하는대로 나오지 않았다. Span이 적용된 더보기…

글쓴이 Charlezz,

안드로이드 스튜디오에서 빠르게 표기법 변경하기 (Snake case <-> Camel case)

표기법 변경하기   macOS 기준으로 다음의 경로로 진입한다. Android Studio – Preferences – Plugin – Marketplace탭 – CamelCase 검색 CamelCase 플러그인을 찾아서 설치 한 뒤 Android Sudio를 재시작 한다. 텍스트영역을 블록 지정한 뒤  Shift + Option(Alt) + U로  표기법을 변경할 수 있다. 대소문자 변환 텍스트영역을 블록 지정한 뒤 Cmd+Shift+U 를 더보기…

글쓴이 Charlezz,

Vysor를 이용한 안드로이드 원격 미러링 및 디버깅

Vysor를 이용한 안드로이드 원격 미러링 및 디버깅 요즘 코로나로 인해 재택근무를 하는 사람이 많을 것이다. 웬만한 업무처리는 영상통화, 이메일, 메신저를 통해 온라인으로 해결할 수 있다. 하지만 원격근무 중에 동료의 기기에서만 이슈(버그, 크래쉬)가 재현된다면 로그확인 및 디버깅에 어려움이 생긴다. 이 때 Vysor라는 앱을 사용하면 동료가 가지고 있는 기기를 원격으로 미러링 및 더보기…