Android Weekly(http://androidweekly.net/)는 매주 발행되는 안드로이드 뉴스레터입니다. 영어 기사를 정독할 시간이 없는 분을 위해 핵심 꼭지를 요약했습니다.
주간 안드로이드 뉴스를 요약해 드립니다. Android Weekly 192 원문도 읽어보세요.
다양한 앱 성능 개선
이 번 뉴스레터에서는 레이아웃 최적화, 화면 회전, 시동 시간 개선 등 앱 성능 개선을 주제로 한 기사가 많았습니다. 하나하나 놓치기 아까운 주제인데요, 어떤 기사가 있는지 살펴 보시죠.
- 사용자들이 앱이 느리다고 불평하나요? 중복 그리기(overdraw)를 감소시켜 레이아웃을 최적화하는 방법을 알려주는 방법을 알려주는 기사가 나왔습니다. 다시 그리기를 감소시켜 안드로이드 레이아웃 최적화하기(Optimizing Layouts in Android – Reducing Overdraw)를 확인해보세요. 중복 그리기를 테스트하는 툴 사용법을 소개하고 중복 그리기를 줄이는 방법을 간결명료하게 알려줍니다. 소개하는 툴을 사용하면 실시간으로 중복 그리기가 표시돼서 어떤 부분에서 문제가 있는지 한눈에 파악할 수 있겠네요!
- 화면과 관련한 다른 흥미로운 기사도 함께 실렸습니다. 안드로이드 bitmap의 premultiplied alpha 특이사례(The curious case of Android premultiplied alpha)에서 PSPDFKit 개발자가 발견한 premultiplied alpha 관련 버그와 해결책을 공유합니다. premultiplication은 NDK나 OpenGL 등 안드로이드 프레임워크 외부에서 픽셀 값에 접근할 때만 필요하다고 하니 이번 기회에 알아두시면 좋겠네요.
- 화면을 회전하면 앱이 재시작한다는 점을 인식하기는 쉽지만 이를 대비한 앱을 만드는 것은 꽤나 까다롭습니다. Configuration 변화에 따른 액티비티 재생과 화면 회전 이해하기(Activity Revival and the case of the Rotating Device)에서는 Configuration 변화가 앱에 미치는 영향을 설명하고, 시스템에 상태 저장을 맡기는 방법이나
onConfigurationChanged()
콜백을 사용하여 상태 변화에 대비하는 법,AsyncTask
의 제어법을 상세히 알려줍니다. 또한 화면 전환을 안하거나fragment
를 사용하는 경우도 다루고 있습니다. Configuration 변화에 익숙하지 않다면 이 기사가 원인모를 앱의 크래시를 줄이는데 도움이 될 것 같습니다.
- NYTimes 앱이 참 깔끔하게 만들어졌다고 감탄한 적이 있는데요, 이 앱의 구동 시간을 개선한 사례를 소개한 기사가 나왔습니다. NYTimes 앱, 더 빠르게 구동하도록 개선하기(Improving Startup Time in the NYTimes Android App)에서 비효율적인 라이브러리를 제거하고 Dagger의 lazy instantiation을 활용하는 등 reflection을 개선해서 인기 앱을 단 1.6초만에 띄울 수 있게 재작성한 경험담을 공유합니다. 아직도 개발팀은 계속 시동 시간을 개선하고 있다고 하니 NYTimes 시동 시간을 간간히 확인해봐도 좋겠죠?
복잡한 상황에서 MVP 적용하기
안드로이드 개발자라면 누구나 MVP 설계를 고민해본 경험이 있을 겁니다. 이번 뉴스레터에는 MVP와 Dagger로 Realm을 사용하는 예제와 Retrofit 2.0과 RxJava를 사용해서 생명주기에 맞게 요청을 할 수 있는 MVP 접근법과 관련한 기사도 있습니다. 여러 상황에서 MVP에 맞게 설계하는 방법을 함께 살펴보시죠.
-
Realm 데이터베이스 사용법(http://www.thedroidsonroids.com/blog/android/realm-database-example/ 포스팅에서 안드로이드에 Realm을 적용하는 간단한 예제를 알려주었던 Droids On Roids LLC에서 이번에는 Dagger와 Realm 라이브러리를 적용해서 구조가 좀 더 복잡해진 앱에 MVP 아키텍쳐 패턴을 구현하는 방법을 알려줍니다. MVP와 Dagger로 Realm 사용하기 (Example of Realm with MVP and Dagger)에서 Realm이 제공하는 비동기 트랜잭션 메커니즘 콜백을 활용해서 MVP 아키텍처를 구현해 보세요. Realm 인스턴스를 각각의 액티비티에서 여닫는 것이 어려웠는데 Dagger로 쉽게 해결된다니 흥미롭네요!
- 안드로이드 네트워크를 MVP에 맞게 디자인하기 어려우셨나요? 안드로이드 생명주기에 맞추려면 더 힘들기 마련이죠. Retrofit 2.0과 RxJava를 사용해서 생명주기에 맞게 요청을 할 수 있는 MVP 접근법 (A MVP Approach to Lifecycle Safe Requests with Retrofit 2.0 and RxJava)에서 해결책을 찾을 수 있습니다. MVP 접근법을 각 레이어별로 상세히 설명해주고, Retrofit 2.0와 RxJava를 사용할 때 모델 레이어를 어떻게 구현하는지, 또한 어떻게 안드로이드 생명주기에 맞게 요청하는지 상세한 예제와 함께 설명하고 있습니다. 예제 앱의 소스코드도 제공되니 Retrofit 2.0과 RxJava, MVP 패턴의 시너지를 경험해보고 싶은 분들께 강력 추천합니다.
RxJava와 Kotlin extention
- 이번 뉴스레터에도 RxJava 관련 기사가 실렸습니다. RxJava- Understanding observeOn() and subscribeOn()에서 멀티스레딩과
observeOn()
과subscribeOn()
에 대해 알아보세요. 단계별 상황을 설명하는 gif가 포함돼서 이해하기 쉽습니다.
- Rx스럽게 Kotlin extension 사용하기(Using Kotlin Extensions for Rx-ifying)에서 요즘 핫한 Kotlin과 Reactive Extension(Rx), 두 주제를 엮어 소개합니다. 짧지만 명료한 예제로 설명해서 즐겁게 볼 수 있을 것 같습니다.
더 읽을 거리
2월 셋째 주의 기사를 Android Weekly 192 영어 원문에서 볼 수 있습니다.
지난 뉴스가 궁금하다면 아래 링크를 참고해 주세요.
- 주간 안드로이드 뉴스 #191 한글 요약
- 주간 안드로이드 뉴스 #190 한글 요약
- 주간 안드로이드 뉴스 #189 한글 요약
- 주간 안드로이드 뉴스 #188 한글 요약
- 주간 안드로이드 뉴스 #187 한글 요약
- 주간 안드로이드 핫 뉴스 #186 우리말 동영상 요약
컨텐츠에 대하여
이 컨텐츠는 저자의 허가 하에 이곳에서 공유합니다.