/ GDG, ANDROID, SUPPORT LIBRARY, REDEX, AGERA, RXJAVA, RECYCLERVIEW, RETROFIT

GDG Korea Android Weekly - 4월 1주 ~ 2주차

GDG Korea Slack#android 채널에서 오고간 주제를 정리한 포스트 입니다. 가입은 여기에서 하실 수 있습니다.

Support Library 23.3.0

안드로이드 서포트 라이브러리 23.3.0이 공개되었습니다. 주요 변경 사항은 다음과 같습니다.

  • AppLaunchChecker가 추가되었습니다. hasStartedFromLauncher() 메서드를 사용하면 애플리케이션이 홈 스크린 내 런처에서 실행되었는지 여부를 확인할 수 있습니다.
  • 안드로이드 5.0 이하에서 VectorDrawable을 사용할 수 있도록 지원했던 기능이, 메모리 누수 이슈로 인해 제거되었습니다. (Issue Link)

자세한 사항은 공식 페이지를 참고하세요.

dex 최적화 툴: Redex

post

페이스북은 dex 최적화를 수행하는 툴인 Redex를 공개했습니다.

바이트코드 최적화를 수행하는 툴인 Proguard와 비슷한 역할을 수행하지만, Proguard가 .class 파일들을 기준으로 하는 반면 Redex는 .dex 자체를 대상으로 최적화를 수행합니다.

facebook/redex
A bytecode optimizer for Android apps
Link

페이스북 팀에서 Redex의 동작 방식에 대한 내용을 블로그에 정리해 두었으니, 관심 있으신 분들은 참고하면 좋을 듯 합니다.

Reactive Programming의 새로운 대안? - Agera

Agera

구글에서 안드로이드를 위한 Reactive 프로그래밍 라이브러리를 공개했습니다.

google/agera
Reactive Programming for Android
Link

이미 안드로이드에서 RxJavaRxAndroid가 활발하게 사용되고 있는지라, 똑같은 걸 다시 만든 건 아니냐는 토론도 벌써 활발히 이루어 지고 있습니다.

RxJava 같은 경우, 기능은 강력하지만 개념을 이해하고 활용하기 위한 학습 곡선(Leaning curve)이 높다는 단점이 있는데 Agera는 어느 정도 수준일지 궁금하네요.

Common RxJava mistakes

Droidcon SF 2016 행사에서 발표된 세션으로, RxJava를 사용하며 실수하기 쉬운 사례들을 다루고 있습니다.

RxJava를 현재 적용하고 있는 분이나 이미 적용하신 분 모두에게 도움이 될 것으로 보입니다.

발표 슬라이드는 아래 링크에서 확인할 수 있습니다.

Common RxJava Mistakes by Daniel Lew
Talk given at Droidcon SF 2016
Link

RecyclerView를 더욱 강력하게 만들어주는 어댑터들

이제는 리스트를 구성할 때 RecyclerView를 쓰지 않는 경우를 찾아보기 힘들 정도로 활발히 사용되고 있습니다.

RecyclerView는 특정 위치에 해당하는 뷰 타입과, 그에 해당하는 뷰를 바탕으로 화면을 구성하게 되는데, 하나의 RecyclerView 내에 포함해야 하는 요소가 다양할 경우에는 이를 처리하기 다소 까다로운 경우가 많습니다.

대표적으로 구글 플레이 스토어의 상품 리스트와 같이 섹션별로 제목과 항목이 나누어진 UI를 들 수 있습니다.

post

채팅방에서도 위와 같은 UI를 구현한 사례들이 공유되면서 참고하거나 사용해 볼 만한 라이브러리들이 꽤 여러가지 언급되었는데요, 이를 정리해 보면 다음과 같습니다.

참고로 android-SectionAdapter레진코믹스의 메인 화면 및 여러 화면에 광범위하게 적용되어 있습니다. 실 적용 사례가 궁금하신 분들은 앱을 참고하셔도 좋을 것 같습니다.

post

Android N 멀티윈도우 대응하기

이 글을 작성하는 시점을 기준으로 Developer Preview 2가 진행되고 있는 안드로이드 N에서 새로 추가된 멀티윈도우 기능을 지원하기 위해 확인해야 하는 사항을 정리한 포스트 입니다.

Android N 멀티윈도우 - 어떻게 대응해야 할까?
Link

예제 코드와 더불어 다량의 스크린샷이 포함되어 있으니, 멀티윈도우 지원을 위해 필요한 사항을 쉽고 빠르게 파악하는데 많은 도움이 될 것으로 보입니다.

Retrofit2 적용 후기

토스랩에서 Retrofit 1.x 버전에서 Retrofit2로 전환한 후기를 공유했습니다.

Retrofit2 로 전환
Link

Retrofit2가 정식 릴리즈 된 지 않아 많은 분들이 새 버전으로 전환을 고려하고 계실 것으로 보이는데요, 이 포스트를 통해 전환 시 고려해야 할 부분과 비용을 파악하는데 도움이 될 것 같습니다.

Foreground 서비스의 Doze 모드 대응 방법

안드로이드 6.0부터 절전을 위해 추가된 Doze mode는 활성 상태가 아닌(즉, 화면이 꺼져있거나 애플리케이션이 현재 화면에 떠 있지 않은) 경우 상황에 따라 애플리케이션의 동작을 제한합니다.

서비스(Service), 그 중에서도 음악 재생과 같이 서비스의 실행, 조작 및 중단이 사용자와 밀접히 관련되어 있는 포그라운드 서비스(Foreground Service)는 Doze 모드와 관계없이 서비스 실행이 보장되어야 합니다.

하지만, Top Sleeping Importance 버그로 인해 상황에 따라 포그라운드 서비스가 Doze 모드의 영향을 받는 경우가 있다고 합니다.

Doze와 Foreground Service
Top Sleeping importance 버그 회피하기
Link

위 버그를 회피하는 방법과, 포그라운드 서비스를 작성할 때 추가로 고려해야 하는 사항에 대해 상세히 정리되어 있으니 필요하신 분들은 참고하시면 좋겠습니다.

대화에 직접 참여하고 싶으신가요? GDG Korea Slack#android 채널을 방문하세요. 아직 가입하지 않으셨나요?

kunny

커니

안드로이드와 오픈소스, 코틀린(Kotlin)에 관심이 많습니다. 한국 GDG 안드로이드 운영자 및 GDE 안드로이드로 활동했으며, 현재 구글에서 애드몹 기술 지원을 담당하고 있습니다.

Read More