세로형 RecyclerView 안에 가로형 RecyclerView 구현할 때 스크롤이 잘 되지 않을때

스크롤이 잘 되지 않아요!! Vertical RecyclerView안에 Horizontal RecyclerView를 구현하는 경우 스크롤이 잘되지 않는 경우가 발생할 수 있습니다. 상위/하위 RecyclerView 상호간 터치이벤트 간섭으로 인해 원치 않는 동작이 발생기 때문인데요. RecyclerView는 NestedScrollingChild 인터페이스의 구현으로 중첩된 스크롤(nested scroll)에 대한 내용을 지원하고 있습니다. RecyclerView가 초기화 되고 중첩스크롤에 대한 기능이 true로 되어있는데 이를 비활성화 해주면 문제가 더보기…

Dagger2를 알아보자 – Android

Dagger2를 알아보자 – 기본편 Dagger2를 알아보자 – Scope  Dagger2를 알아보자 – Injection의 종류  Dagger2를 알아보자 – Qualifier  Dagger2를 알아보자 – Binding  Dagger2를 알아보자 – Multibinding  Dagger2를 알아보자 – SubComponent  Dagger2를 알아보자 – Android (You’re here) Dagger2를 알아보자 – Testing(준비중) Dagger2를 알아보자 – Dynamic Feature에 적용하기 대부분의 다른 의존성 주입 프레임 워크에 더보기…

LinearSnapHelper 마지막 아이템이 snap 되지 않는다면..?

기획자의 요구사항은 다음과 같았다. 첫번째 아이템은 RecyclerView 왼쪽편에 snap되어야할 것 마지막 아이템은 RecyclerView 오른쪽편에 snap되어야할 것 첫번째와 마지막 아이템을 제외하고는 아이템뷰의 중앙을 기준으로 RecyclerView 중앙에 스냅되도록 배치 할 것   SnapHelper를 사용하면되겠구나! PagerSnapHelper를 사용하니 한페이지 단위로만 snap되므로 RecyclerView내에 2개 이상 Completely Visible 아이템이 보이는경우는 snap 제대로 스냅 되지 않았다. 예를 더보기…

글쓴이 Charlezz,

Naver Tech Concert 2019: Android 후기

    네이버 테크콘서트 Android : 예제로 배우는 카메라2 – 발표영상, 발표자료 pdf 다운로드, 예제코드 생각보다 많은 분들이 참석해주셨는데요. 참석해주셔서 감사합니다. 다른분들보다 강연할 수 있는 시간이 짧아서 아쉬웠습니다. 그래서 짧은시간내에 많은 정보를 담으려 하다보니 자세히 설명 못드린점 죄송합니다. 작은 Tip 하나라도 얻어가셨다면 만족합니다. 강연이 끝나고 많은분들이 찾아오셔서 질문해주셨는데 시간도 부족하고, 제가 더보기…

RecyclerView 사용시 Diffing callback 구현하기

RecyclerView.Adapter의 성능을 높이거나 또는 같은 이유지만 Paging Component를 쓰는경우 DiffUtil.ItemCallback을 반드시 구현해야 합니다. 보통 Adapter내에서 Inner class로 구현하거나 Outer로 빼서 생성자 파라미터로 OldItem과 NewItem을 제공해야합니다. boolean areItemsTheSame(oldItem, newItem) 를 통해 이젠 아이템과 새로운 아이템의 ID가 같은지 비교한 뒤 같은 경우 내부에서 boolean areContentsTheSame(oldItem, newItem) 을 다시 호출하여서 객체의 필드가 같은지 더보기…

더 빠르고 새롭게 달라진 Android Studio 3.5

What’s New in Android Development Tools 안드로이드 스튜디오3.5는 IDE의 기본 기능과 흐름을 견고하게 만드는데 집중하기 위해  Project Marble을 시작했고 3.5버전에서는 System health, Feature polish, bugs에 초점을 맞추었다고 합니다. System Health 앞서 말한 시스템 상태에 초점을 맞춰 개선한 내용을 소개하겠습니다. Memory 안드로이드 스튜디오를 쓰다보면 시간이 지남에 따라 느려지는게 느껴지셨을 겁니다. 바로 더보기…

글쓴이 Charlezz,

안드로이드 Q 무엇이 달라졌나 : Google I/O 2019

What’s New in Android (Google I/O’19)   #io19 What’s New in Android 세션을 정리한 내용입니다. Bubbles API 안드로이드 Q에 새로 도입어 사용자는 Bubbles를 이용해 기기상 어디서나 쉽게 멀티태스킹을 할 수 있습니다. 페이스북의 챗헤드와 같아 보입니다. 자세한 내용은 공식문서에서 확인가능합니다. Dark Theme Android Q는 Android 시스템 UI와 기기에서 실행중인 앱에 모두 더보기…

Jetpack에 새롭게 추가된 점(2019.05.08)

CameraX(알파버전) 카메라 관련 앱 개발은 어렵습니다. 또한 API21(롤리팝)을 기점으로 Camera 와 완전히 다른 Camera2 API로 분기 되어 개발자를 비명지르게 만듭니다. 새로운 CameraX 라이브러리르 이용하면 기본 적인 동작에 대한 걱정없이 애플리케이션을 개발 할 수 있게 된다고 합니다.  코루틴과 함께 하는 LiveData 그리고 Lifecycles(알파버전) 코루틴을 이용하여 동시성을 가진 작업을 처리할 수 있습니다. Lifecycle 더보기…

글쓴이 Charlezz,

Google Play Instant 개요

Overview of Google Play Instant Android 5.0 (API 21) 이상의 기기에서는 Google Play Instant를 사용하면 네이티브앱과 게임을 설치하지 않고도 실행됩니다. Android Studio를 사용하여 인스턴트 앱 및 인스턴트 게임이라고 불리는 유형을 만들 수 있습니다. 즉각적인 경험을 제공하는것으로 알려진 인스턴트 앱 또는 인스턴트 게임을 사용자가 실행할 수 있게 함으로써 앱 또 게임 더보기…

글쓴이 Charlezz,

Dynamic Delivery를 지원하는 앱 만들기

https://developer.android.com/studio/projects/dynamic-delivery를 번역한 내용입니다. 다이나믹 딜리버리란? 다이나믹 딜리버리(Dynamic Delivery)라는 구글 플레이의 앱 제공 모델은 Android App Bundles를 사용하여 최적화된 APK를 각 사용자 디바이스환경에 맞춰 생성하고 제공하므로 사용자들은 앱실행에 필요한 코드와 리소스만 다운로드합니다. 다양한 장치를 지원하기 위해 더 이상 여러개의 APK를 빌드, 서명 및 관리 할 필요가 없으며 사용자는 더 작고 최적화 더보기…