RecyclerView의 특정 아이템 위치로 이동하기

RecyclerView를 사용하면서 어떤 사용자 action 등에 의해 특정 아이템 위치로 스크롤할 필요가 있습니다. 이때 손 쉽게 사용할 수 있는 방법이 있는데, 아래와 같이 기본적으로 제공되는 scrollToPosition 함수를 사용하는 것입니다. 이걸로 상황이 말끔히 해결된다면 그걸로 끝입니다. 하지만 때로는 위 함수로 부족한 경우가 있습니다. 예를 들어, 위 2개 함수를 통해 스크롤을 하게 Read more…

[Android Dev Summit ’19] What’s New in Room – 정리

다소 늦은 감이 있지만, Android Dev Summit 내용을 정리하고자 합니다. 주로 Room 2.2 개선 사항을 다루고 있습니다. Flow support Flow가 추가되면서 코루틴을 보다 완벽하게 지원할 수 있게 됨 아래와 같이 Dao 함수에 Flow를 반환하도록 정의할 수 있다. Flow를 아직 파악하지 못한 상태인데…언뜻 보기에는 Rx의 장점을 코루틴에서 취한 형태가 아닐까 짐작해봅니다.Rx의 Read more…

[Android] View Binding

Android에서는 현재 UI를 그리기 위해 XML을 사용하고 있습니다. (Compose는 논외로 합니다.) XML에 정의한 View widget들을 제어하기 위해서는 Java/Kotlin 코드로 작업을 해야하죠. 코드에서 해당 view들의 reference를 얻기 위해서 일반적으로 아래와 같은 방법을 사용합니다. 하지만 이미 Android 앱 개발을 좀 해보신 분이라면 아시겠지만 위와 같은 방식은 단점이 좀 있죠. 당연하게도 reference 얻어오는 Read more…

[Android] Architecture 정리 – AAC ViewModel, LiveData, Coroutine

본 포스팅은 Android 앱 개발 시 적용할 수 있는 여러 아키텍쳐 패턴들 중 Google에서 공식 문서를 통해 Recommend하는 방식을 소개하고자 합니다. 본문은 여기에서 확인하실 수 있으며, 본 포스팅에서는 이를 바탕으로 간단한 샘플 앱을 만들어 보고자 합니다. 크게 다루는 기술 셋은 다음과 같습니다. 기본적인 언어: Kotlin Jetpack – Lifecycles, LiveData, ViewModel Read more…

[Android] Property Animation – Snowing (눈 내리기)

본 포스팅은 아래 포스팅들과 관련있습니다. [Android] Property Animation – Rotate (회전) [Android] Property Animation – Translate (이동) [Android] Property Animation – Scale (확대/축소) [Android] Property Animation – Fade (나타나기/사라지기) [Android] Property Animation – Color (색상 변경) Android Property Animation 중 눈내리기 효과를 구현해보려고 했는데, 마침 오늘 첫 눈이 내렸습니다. 이번에 Read more…

[Android] Handler Memory Leak

개인적으로 비동기 처리는 Rx로 거의 하는 편이지만, 종종 Handler를 쓰는 경우가 있습니다. 그런데 저 같이 기본기가 부족한 개발자의 경우 아래와 같이 메모리 릭이 잠재된 코드를 작성할 수 있습니다. 메모리 릭 가능성이 있는 코드 액티비티를 시작하자마자 handler에게 runnable을 던지고는, 액티비티를 종료합니다. 무슨 일이 일어날까요? 사실 돌려보기도 전에 이미 Android Studio에서 아래와 Read more…

[Android] Dagger – 1. @Inject

이전 포스팅에서 Dependency Injection에 대해 간단히 언급하였습니다. 본 포스팅에서는 Dagger를 사용하여 DI를 하는 간단한 예제를 보여드리고자 합니다. 이전 포스팅에서 사용한 예제 코드를 그대로 가져와봤습니다. 직접 DI를 해주게 되면 MoviesPresenter() 생성 시 MoviesRepository()를 직접 생성하여 주입해야 하는데, Dagger를 사용하게 되면 아래와 같이 작성할 수 있습니다. 차이점은 생성자 앞에 @Inject 어노테이션이 붙은 Read more…

[Android] Dagger – intro

본 포스팅은 Dagger에 대한 내용을 다루며, 아래 문서를 베이스로 작성되었습니다. 아직 번역되지 않은 문서다 보니 학습 목적으로 재정리를 해보았습니다. https://developer.android.com/training/dependency-injection https://codelabs.developers.google.com/codelabs/android-dagger https://www.youtube.com/watch?v=o-ins1nvbDg 얼마 전 Android Dev Submit 2019이 있었습니다. Day 2 때 “An Opinionated Guide to Dependency Injection on Android” 제목의 세션이 있었습니다. 바로 결론부터 이야기하자면 Android에서 Dependency Injection으로 Dagger를 Read more…

[Android] Property Animation – Color (색상 변경)

본 포스팅은 아래 포스팅들과 관련있습니다. [Android] Property Animation – Rotate (회전) [Android] Property Animation – Translate (이동) [Android] Property Animation – Scale (확대/축소) [Android] Property Animation – Fade (나타나기/사라지기) [Android] Property Animation – Snowing (눈 내리기) Android에서 Color(색상) 변경 애니메이션을 구현하는 방법을 알아 보겠습니다. 먼저 적용된 결과는 다음과 같습니다. 버튼을 Read more…

[Android] Property Animation – Fade (나타나기/사라지기)

본 포스팅은 아래 포스팅들과 관련있습니다. [Android] Property Animation – Rotate (회전) [Android] Property Animation – Translate (이동) [Android] Property Animation – Scale (확대/축소) [Android] Property Animation – Color (색상 변경) [Android] Property Animation – Snowing (눈 내리기) Android에서 Fade(나타나기/사라지기) 애니메이션을 구현하는 방법을 알아 보겠습니다. 먼저 적용된 결과는 다음과 같습니다. 버튼을 Read more…