주간 안드로이드 뉴스 #197 RxJava, Kotlin, 안드로이드 TV

Android Weekly는 매주 발행되는 안드로이드 뉴스레터입니다. 영어 기사를 정독할 시간이 없는 분을 위해 핵심 꼭지를 요약했습니다.

주간 안드로이드 뉴스를 요약해 드립니다. Android Weekly 197 원문도 읽어보세요.


RxJava

  • Retrofit요청을 실행하는 Observable에 새로 Subscriber를 새로 추가할 때마다 네트워크 연결이 다시 실행되는 문제로 고민하셨나요? RxJava - 하나의 Observable, 여러개의 Subscriber, 같은 데이터 (RxJava - One Observable, Multiple Subscribers, Same Data)에서 이 문제를 해결 할 수 있는 방법을 소개해드립니다. .share().publish()를 포함하기때문에 이를 실행하면 자동적으로 Observable을 ConnectableObservable의 형태 즉, .connect()가 호출되면 데이터를 보내는 상태가 됩니다. 따라서 초기 Subscriber를 추가하고 .connect()를 호출하는 방식으로 문제를 해결할 수 있습니다! 만약 이 상태에서 Subscriber를 더 추가하고 싶다면 .connect()를 더 호출 할 필요없이 데이터를 받을 수 있고, .replay()를 사용한다면 언제 Observable을 Subscribe했는지 상관없이 같은 데이터를 받을 수 있으므로 Retrofit요청이 다시 실행되면서 데이터가 달라지는 문제를 막을 수 있다고 합니다.

  • 이어지는 연재로 Observable에서 Subscriber로 데이터 replay하기(RxJava —RxReplayingShare, Emit only Once)에서는 Jake Warton의 ReplayingShare 라이브러리를 중요한 코드블럭별로 꼼꼼히 설명하고 있으니 관심있는 분들을 참고해보세요.

  • RxJava를 아직 사용해보지 않으신 분들께는 좋은 첫 디딤돌이 될, 또는 기존 reactive 콜백 체이닝을 개발하면서 시간도 많이 걸리고 에러도 많이 나서 힘드셨던 분들께 도움이 될 RxBinding라이브러리를 소개해드립니다. RxBinding은 RxJava 패러다임을 이용해 사용자인터페이스에 react할 수 있게 해주는 라이브러리입니다. 일반적인 버튼 클릭이나 텍스트 변경에 대한 리스너를 구현하는 것과 비교했을 때 RxJava subscription을 활용한 코드의 장점은 일관성입니다. RxBinding을 이용한 Reactive안드로이드 UI프로그래밍(Reactive Android UI Programming with RxBinding)에서 RxJava/RxBinding의 장점을 소개하고 있습니다. RxJava는 다양한 operator들을 제공하는데 대표적으로 1. map()으로 전달받은 데이터 스트림을 변경하는 등 다른 operation을 쉽게 체이닝 방식으로 구현할 수 있고 2. publish(), share(), and replay()를 사용해 한 뷰에 여러 클릭리스너(multiple clicklistener) 구현을 쉽게 할 수 있다고 하네요. 그 밖에 RxBinding사용시 주의할 점(weak reference 사용하지 말 것 등), dependencies 선언 방법 등 제시하고 있습니다.

  • Droidcon SF 2016에서 RxJava관련하여 흔히 RxJava에서 실수하는 것들(Common RxJava Mistakes)슬라이드가 준비되어 있습니다.

이런 개발 뉴스를 더 만나보세요

Kotlin

  • Kotlin을 배우고 싶으셨던 분들께 강추!! Kotlin 언어를 사용한 Reddit 안드로이드 앱을 만드는 연재가 시작됩니다. 총 10부작으로 매 회 Kotlin의 주요 특징들을 설명하면서 Configuration에서 Test까지 진행해볼 수 있는 튜토리얼입니다. 앞으로 만들게 될 앱은 무한스크롤을 구현한 뉴스와 코멘트 정보를 제시하는 것으로 Retrofit2.0, RxJava, Picasso, RecyslerView, Kotlin Android Extensions라이브러리를 사용할 예정입니다. 안드로이드 앱 개발하면서 코틀린 배우기(Learn Kotlin while developing an Android App)에서 차근히 따라해보시죠~

  • 많은 개발자들이 Kotlin의 미래에 대해 낙관적으로 생각한다지만, 당장 Kotlin을 사용하면서 아직 모르는 위험을 감수하고 싶진 않을 겁니다. 하지만 만약 오직 테스트를 위한 용도로 Kotlin을 사용하는 것은 어떨까요? 간단한 섭씨, 화씨 온도 변환 코드를 만들고 Kotlin으로 테스트하는 튜토리얼을 소개합니다. 안드로이드에서 테스트를 위한 코틀린(Kotlin For Tests in Android)에서 dependencies설정부터 테스트코드 구현 및 실행까지 확인해보실 수 있습니다.

Android TV

생산성 향상을 위한 꿀팁!

  • 개발하시면서 토스트 띄우기나 상수 선언, 로그 찍기 많이 하시죠? 라이브템플릿을 이용해 효율적으로 코딩하기(Writing More Code by Writing Less Code with Live Templates)에서 매번 반복적인 코드를 치는 것을 좀 더 편하게 할 수 있는 방법 알려드립니다~! IntelliJ는 다양한 라이브 템플릿을 포함하고 있는데 안드로이드 스튜디오에서 많이 사용할법한 것들은 아래와 같습니다. File > Settings > Editor > Live Templates 설정으로 코드 작성 중 흔한 실수를 피하면서 동시에 더 편리하게 코딩할 수 있는 방법 활용해보세요. 필요하다면 새로운 라이브템플릿을 추가해서 사용할 수도 있습니다!

  • 개발 중 데이터셋이 특정 코드블럭에 진입했을 때 어떻게 처리되는지 확인하고 싶을 때가 있죠~ 이 때 브레이크포인트를 설정하시나요? 이 보다 조금 더 편리한 방법으로 특정 시나리오에서만 멈출 수 있는 조건적 디버깅을 사용하셨나요? 디버거 없이 데이터 흐름 분석하기(Analyse data flows without the debugger)에서 좀 더 편하게 처리하는 방법을 제시합니다. Analyze > Analyze Data Flow to/from Here로 데이터를 일일이 추적하는 수고로움을 줄여보세요.

더 읽을 거리

3월 넷째 주의 기사를 Android Weekly 197 영어 원문에서 볼 수 있습니다.

지난 뉴스가 궁금하다면 아래 링크를 참고해 주세요.

컨텐츠에 대하여

이 컨텐츠는 저자의 허가 하에 이곳에서 공유합니다.


Realm Korea

Realm Korea Team

4 design patterns for a RESTless mobile integration »

close