안드로이드 앱의 UI/UX를 개선하고 싶으신가요? 그렇다면 스레드 관리부터!
안드로이드 웹 사이트에는 9억 개의 기기가 안드로이드를 사용하고 있고, 플레이 스토어에는 1백만 개 이상의 애플리케이션이 등록되어 있다. 이렇게 많은 애플리케이션이 마켓에서 사용자의 선택을 기다리는 상황에서, 자신의 애플리케이션이 마켓에서 좋은 평가를 받기 위해서는 무엇을 고려해야 할까? 애플리케이션이 사용자에게 제공하는 가치(Value)와 더불어 애플리케이션의 UI/UX가 매우 중요하다.
현재 많은 모바일 기기가 멀티 코어를 사용한다. 이미 멀티 코어를 사용하는 윈도, 맥 그리고 리눅스 등의 데스크톱 기반 GUI 애플리케이션에서는 UX의 반응성을 개선하기 위해서 다중 스레드를 사용하고 있다. 다중 스레드는 GUI 애플리케이션에서 느린 작업을 처리하느라 GUI 화면이 멈추는 문제 등을 해결하기 위한 수단으로 사용하고 있다.
안드로이드 또한 UI 반응성을 높이기 위해서 다중 스레드 사용을 권고하고 있고, API 수준에서 다중 스레드 프로그래밍을 편리하게 할 수 있도록 지원하고 있다. 또한, 안드로이드 API는 아파치 하모니 프로젝트를 기반으로 자바 5.0의 코어의 상당 부분, 아파치 HTTPClient 4.0.X 버전, JSON, XMLPullParser와 화면에 보이는 각종 위젯을 지원한다. 자바 5.0에서 스레드 관련 패키지는 코어에 존재하고 있으므로 자바가 지원하는 스레드 형태 전부를 사용할 수 있다.
이 책에서는 안드로이드 애플리케이션의 UI/UX를 개선하기 위한 여러 가지 방안 중에 스레드 관리로 반응성을 높이는 방법을 예제와 함께 살펴본다.
이 책의 구성
2장에서는 안드로이드에 대한 배경지식으로 애플리케이션의 패키징과 설치 과정을 살펴보고, 3장에서는 애플리케이션 GUI 위젯이 화면에 어떻게 그려지고 갱신되는지와 이 과정에서 발생할 수 있는 문제를 살펴본다. 4장에서 안드로이드 프로세스와 스레드, 스레드의 스케줄링, 5장에서는 안드로이드에서 사용할 수 있는 기존의 자바에서 지원하는 스레드, 6장에서는 안드로이드에서 사용하는 스레드 형태를 자세히 살펴보고, 7장에서는 안드로이드 스레드 중에 AsyncTask의 소스에 대한 설명과 버전별 개선점을 확인해 본다. 8장에서는 AsyncTask를 개선해서 반응성을 높이는 방안을 살펴보고, 마지막으로 9장에서는 이 라이브러리를 이용한 애플리케이션을 개발해 본다.