/ GDG, ANDROID, RXJAVA, SUPPORT LIBRARY

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

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

LoganSquare

REST API를 사용하여 서버와 통신을 할 때, 데이터 형식으로 JSON을 많이 사용합니다.

LoganSquare는 일반적으로 많이 사용하는 JSON 라이브러리인 GSON이나 Jackson 보다 더 빠르게 동작한다고 합니다.

bluelinelabs/LoganSquare LoganSquare - Screaming fast JSON parsing and serialization library for Android. Link

다음은 LoganSquare에서 측정한 벤치마크 결과입니다. 결과로만 보았을 땐 성능 향상 수준이 어마어마하네요.

LoganSquare - Benchmarks

Retrofit은 2.0 부터 JSON 컨버터를 쉽게 변경할 수 있게 지원하는데, 이를 사용하시는 분들은 각 라이브러리를 사용하여 컨버터를 작성한 후 속도 차이를 비교해 보면 좋을 것 같습니다.

Android Support Library 23.2

안드로이드 앱 개발자와 뗄레야 뗄 수 없는 존재, 서포트 라이브러리의 새 버전이 공개되었습니다.

Android Support Library 23.2 Link

이번 서포트 라이브러리에서 추가된 내용은 다음과 같습니다.

Support Vector Drawables

기존에는 안드로이드 5.0 이상에서만 지원했지만, 정적인 이미지만 포함하는 VectorDrawable은 안드로이드 2.1 (API 7) 이상, 애니메이션이 포함된 AnimatedVectorDrawable은 안드로이드 3.0 (API 11) 이상에서 사용할 수 있습니다.

Support Vector Drawable은 기존의 이미지 리소스를 사용하는 방법과 큰 차이가 없습니다. 자바 코드상에서 사용할 경우 기존과 다른 점이 없으며, XML 코드에서 사용할 경우만 android:src 대신 app:srcCompat을 사용하면 됩니다.

리소스 이름이 ic_add인 리소스를 이미지뷰(ImageView)에 표시하는 경우를 가정할 때, 자바 코드 및 XML을 사용하여 리소스를 지정하는 예는 다음과 같습니다.

[자바 코드에서 사용]

ImageView iv = new ImageView(this);
iv.setImageResource(R.drawable.ic_add); // 기존과 동일하게 사용합니다.

[XML 사용]

<ImageView android:layout_width="match_parent"
  android:layout_height="match_parent"
  app:srcCompat="@drawable/ic_add" /> <!-- android:src 대신 app:srcCompat 사용 -->

DayNight Theme

시간대 (낮,밤)에 따라 적절한 테마 (밝은 색,어두운 색)을 적용해주는 DayNight 테마가 추가되었습니다.

API 14 (Android 4.0) 이상 기기부터 동적으로 밝은 테마와 어두운 테마를 변경하는 기능이 지원됩니다.

DayNight 테마를 적용할 경우 테마 변경으로 인해 글씨나 배경이 의도하지 않게 표시될 수 있으므로 반드시 모든 부분을 테스트 하는 것을 권장합니다.

Design Support Library: Bottom Sheets

구글 플레이 뮤직이나 구글 지도에서 자주 보던 UI 컴포넌트인 Bottom Sheets를 지원합니다.

BottomSheets

서포트 라이브러리에서 제공하는 BottomSheetBehavior를 사용하면 쉽게 구현할 수 있으며, 사용 방법을 간단히 포스트로 정리해 보았으니 관심 있으신 분들은 함께 확인해 보세요.

Android Support Library 23.2 - BottomSheetBehavior (1) Link

RxJava - Defer

defer

RxJava에서 사용하는 연산자(Operator) 중 defer에 대한 토론이 이루어 졌습니다.

문서의 설명 만으론 살짝 부족한 감이 있어 많은 분들이 다소 혼란을 겪고 계셨는데요, 다음 포스트에 defer에 대해 잘 정리되어 있더군요.

Deferring Observable code until subscription in RxJava Link

요약하자면, Observable에서 생성하는 데이터를 Subscription 시점에 생성해 주기 위해 defer 연산자를 사용합니다.

justfrom을 사용할 경우 Observable 객체를 생성하는 시점에 내부에서 데이터도 함께 생성하게 되는데, defer을 사용할 경우 이 동작을 Subscription 시점으로 미뤄줍니다.

자세한 예제는 위의 블로그 포스트에 나온 예제를 참고하는 것을 추천합니다.

DroidKaigi 2016 일부 세션 번역

pluulove 님께서 지난 달 일본에서 진행된 안드로이드 행사인 DroidKaigi 2016 에서 발표된 세션 중 일부를 번역해 주셨습니다.

[번역] DroidKaigi 2016 ~ 내일부터 사용할 수 있는 Rxjava 자주 사용하는 패턴 Link

[번역] DroidKaigi 2016 ~ Android Lint로 올바름을 배우자 Link

Android Lint에 대해 조금 더 자세한 정보를 알고 싶으신 분은 제가 예전에 작성한 글을 참고하셔도 좋을 듯 합니다.

Android Lint - 프로젝트 내 문제를 미리 파악하자 Link

MVP on Android

안드로이드 앱을 작성할 때 사용하는 패턴 중 MVP(Model-view-presenter)를 적용하는 방법 및 사레에 대해 활발한 토론이 이루어졌습니다.

주제의 특성상 몇 마디로 정리하기 어려운지라, 토론 중 여러 분들께서 참고용으로 공유해 주신 링크를 정리해 두었습니다.

Android Architecture — Android & Tech A simple guide through MVC, MVP and MVVM for Android projects Link

leeyc09/RxAndroidMVPSample RxAndroidMVPSample - RxAndroid MVP Sample Link

LiveTyping/u2020-mvp u2020-mvp - Port of Jake Wharton’s U2020 sample app with use of MVP and Dagger 2 Link

grandstaish/hello-mvp-dagger-2 hello-mvp-dagger-2 - Android MVP example code using RxJava, Retrolambda, Dagger 2, and more Link

GDG Korea 2월 모임

GDG Korea 2월 모임이 있었습니다. 애자일, 장고, 일렉트론 등 메인 세션과 다양한 주제의 라이트닝 토크 세션이 진행되었습니다.

메인 세션 중 애자일, 일렉트론 세션은 세션 내용을 영상으로 다시 보실 수 있습니다. 어떤 내용이 나왔는지 궁금하신 분들은 아래 영상을 통해 확인하세요.

‘토스랩, 이렇게 일해요’ 세션 슬라이드는 아래에서 확인하실 수 있습니다.

Android N Developer Preview

Android N DP

Google I/O 2016에 공개될 것으로 예상되었던 Android N Developer Preview가 더 일찍 공개되었습니다.

First Preview of Android N: Developer APIs & Tools Link

프리뷰를 통해 확인된, 안드로이드 N에서 추가된 주요 기능은 다음과 같습니다.

  • 멀티윈도우 지원: 상하 및 좌우분할 모드를 지원합니다. 최신 버전의 갤럭시에서 지원되는 팝업 모드는 지원되지 않습니다.
  • 알림 강화: 알림 내에서 즉시 답장하기, 알림 그룹 지원이 추가되었습니다.
  • Doze mode: 단말기가 사용 중이지 않은 상태 뿐 아니라, 화면이 꺼진 상태에서도 Doze 모드가 활성화됩니다.
  • Java 8 지원: 컴파일러 교체(Jack)를 통해 자바 8의 일부 기능을 지원합니다.

Android Beta Program에 기기를 등록하면 프리뷰 이미지를 OTA를 통해 받을 수 있습니다.

현재까지 공개된 내용에 따르면 총 5번의 프리뷰가 릴리즈 될 에정이라고 합니다. 대략적인 일정은 다음과 같습니다.

Android N DP Timeline

  • Preview 1 (3월): 최초 릴리즈 (Alpha)
  • Preview 2 (4월): 업데이트 (Beta)
  • Preview 3 (5월): 업데이트 (Beta)
  • Preview 4 (6월): 최종 API 확정
  • Preview 5 (7월): 시스템 이미지 작성 및 최종 테스트

이번에 공개된 버전은 알파 버전으로 안정성이 매우 낮아 실 사용에는 상당한 무리가 있을 가능성이 높습니다. 가급적 개발 전용 단말기에 올려 보시는 것을 권합니다.

안드로이드 개발자를 찾습니다!

We want you

안드로이드 개발자를 찾습니다! 구인 중인 업체 및 공고를 모아두었으니, 관심 있으신 분들의 많은 관심 부탁드립니다.

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

kunny

커니

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

Read More