상세 컨텐츠

본문 제목

전문가를 위한 안드로이드 프로그래밍

전체 출간 도서

by 비제이퍼블릭 2014. 6. 12. 16:42

본문

 

전문가를 위한 안드로이드 프로그래밍

: 그 한계를 넘어서

 

시리즈명 전문가를 위한 시리즈-002

저자 에릭 헬먼

역자 유윤선

 

출간예정 2014626()

정가 33,000

페이지 496

 

판형 188 x 245

ISBN 978-89-94774-70-1 (93000)

원서정보 Android Programming: Pushing the Limits

 

 

책 소개

 

안드로이드 운영체제의 강력한 힘을 활용해

사용자들이 좋아할 수밖에 없는 혁신적인 앱을 개발하자

 

안드로이드 운영체제에 대해 이미 알고 있고 간단한 안드로이드 앱을 개발할 수 있다면, 그리고 안드로이드의 한계가 어디까지인지 궁금하고 안드로이드의 모든 기능을 최대한 활용하고 싶다면 이 책이 도움될 것이다. 아울러 혁신적이고 직관적인 고급 애플리케이션을 개발하고 싶다면 두말할 것 없이 이 책이 바로 여러분을 위한 책이다.

 

커스텀 뷰부터 고급 멀티터치 제스처, 온라인 웹 서비스 연동부터 최신 지오펜싱 및 활동 인식 기능에 이르기까지, 안드로이드 전문 개발자인 에릭 헬먼은 안드로이드의 한계를 뛰어넘는 데 필요한 자신만의 팁, 트릭, 고급 기법을 소개한다.

 

 

이 책에서 다루는 내용

 

--부드러운 사용자 경험을 위한 컴포넌트 최적화 기법

--새로운 안드로이드 위치 API 활용법

--커스텀 개발 방법

--안드로이드 통신 기술을 활용한 원격 기기와의 통신

--안드로이드 SDK 경계 확장

--백그라운드 처리 수행

--안드로이드 스튜디오 그레이들 마스터

--안드로이드 암호화 API 활용

--안드로이드 오디오, 동영상, 그래픽 API 최적 활용

--구글 플레이 서비스를 활용한 애플리케이션의 클라우드 동기화

--텍스트-음성 전환 API 음성 인식 기능 구현

--구글 플레이 스토어를 통한 애플리케이션 배포 판매

 

『전문가를 위한 안드로이드 프로그래밍: 그 한계를 넘어서』에서 안드로이드의 강력한 힘을 활용하는 법을 배운다면 누구나 좋은 앱에서 위대한 앱으로 자신의 앱을 발전시킬 수 있을 것이다.

 

소스 코드 다운로드

www.wiley.com/go/ptl/androidprogramming

 

독자대상

중고급

 

저자 소개

 

에릭 헬먼Erik Hellman

Factor10의 선임 모바일 컨설턴트다. 에릭은 과거 리서치 엔지니어로 근무한 바 있으며 소니 모바일에 근무할 당시 모바일 앱, 웹 기술, 클라우드 및 엔터프라이즈 서비스, 3D 그래픽 분야의 리드 소프트웨어 아키텍트로 일했다. 에릭은 드로이드콘(DroidCon), 제이포커스(JFokus), 자바원(JavaOne), 그 외 주요 개발자 컨퍼런스에서 정기 강연자로 활동하고 있다.

 

 

역자 소개

 

유윤선

인디 개발자이자 프리랜서 번역가로 활동 중이다. 역서로는 《NoSQL프로그래밍》, 《프로 스프링 3, 《라이프해커》, 《시작하세요! 아이폰 5프로그래밍》, 《안드로이드 레시피》, 《시작하세요! Unity 3D게임 프로그래밍》, 《시작하세요! 안드로이드 게임 프로그래밍》, 《시작하세요! 아이폰 4프로그래밍》, 《플래시 빌더 4& 플렉스 4바이블》, 《쉽고 빠르게 익히는 CSS3, 《스프링 시큐리티 3, 《시작하세요! 아이패드 프로그래밍》, 《오브젝티브 C개발 레시피》, 《프로 제이쿼리 완벽 마스터》, 5일 만에 아이폰 앱 개발하기》, WebGL개발 입문》, 《플래시 게임 마스터》, Adobe AIR인 액션》, 《스프링 3레시피》, 《액션스크립트 3.0완벽가이드》 등이 있다.

 

 

목차

 

1. 더 나은 기반 구축

 

1. 개발 환경설정

--안드로이드 개발에 필요한 운영체제

--고급 안드로이드 SDK

--안드로이드 라이브러리 프로젝트 및 서드파티 라이브러리

--버전 제어 및 소스 코드 관리

--IDE 마스터

--안드로이드 기기의 개발자 옵션

--정리

--추가 자료

 

2. 안드로이드를 위한 효과적인 자바 코드

--안드로이드 달빅과 자바 SE 비교

--안드로이드를 위한 자바 코드 최적화

--메모리 관리 및 할당

--안드로이드 멀티스레딩

--정리

--추가 자료

 

2. 컴포넌트 활용

 

3. 컴포넌트, 매니페스트, 리소스

--안드로이드 컴포넌트

--안드로이드 애플리케이션 매니페스트

--리소스 및 에셋

--정리

--추가 자료

 

4. 안드로이드 사용자 경험 및 인터페이스 디자인

--사용자 스토리

--안드로이드 UI 디자인

--안드로이드 UI 엘리먼트

--안드로이드 애플리케이션에서의 텍스트

--크기

--색상

--이미지 및 아이콘

--사용성

--사용자 보상

--정리

--추가 자료

 

5. 안드로이드 사용자 인터페이스 작업

--Activity Fragment

--다중 화면 활용

--커스텀 뷰 디자인

--멀티터치

--오픈지엘 ES

--정리

--추가 자료

 

6. 서비스 및 백그라운드 작업

--서비스의 사용 시점과 방법

--서비스 생명주기의 이해

--백그라운드 실행

--서비스와의 통신

--정리

--추가 자료

 

7. 안드로이드 IPC

--바인더 살펴보기

--API 디자인

--원격 API 보호

--정리

--추가 자료

 

8. 브로드캐스트리시버 및 설정 변화

--BroadcastReceiver

--기기 설정 변경

--정리

--추가 자료

 

9. 데이터 저장 및 직렬화

--안드로이드의 영속화 옵션

--환경설정 파일을 통한 데이터 저장

--사용자 옵션 및 설정 UI

--고성능 콘텐트프로바이더

--영속화를 위한 데이터 직렬화

--애플리케이션 데이터 백업

--정리

--추가 자료

 

10. 자동화된 테스트 작성

--안드로이드 테스트 원칙

--지속적인 통합

--정리

--추가 자료

 

3. 한계 뛰어넘기

 

11. 고급 오디오, 동영상, 카메라 애플리케이션

--고급 오디오 애플리케이션

--오픈지엘 ES 2.0을 활용한 동영상 처리

--오픈지엘 ES 2.0을 활용한 카메라 처리

--미디어 인코딩

--정리

--추가 자료

 

12. 안드로이드 애플리케이션 보안

--안드로이드 보안 개념

--클라이언트사이드 데이터 암호화

--안드로이드 키 체인 관리

--기기 관리 API

--정리

--추가 자료

 

13. 지도, 위치, 활동 API

--통합 위치 관리자

--구글 지도 v2 연동

--구글 지도 활용

--LocationClient 활용

--지오펜싱

--활동 인지

--정리

--추가 자료

 

14. 네이티브 코드 및 JNI

--CPU 아키텍처에 대한 참고사항

--C언어를 활용한 안드로이드 애플리케이션 작성

--JNI 활용

--안드로이드 네이티브 API

--네이티브 라이브러리의 안드로이드 포팅

--정리

--추가 자료

 

15. 숨겨진 안드로이드 API

--공식 API와 숨겨진 API

--숨어있는 API 찾기

--숨은 API의 안전한 호출

--숨은 API 예제

--정리

--추가 자료

 

16. 안드로이드 플랫폼 해킹

--기기 잠금 해제

--안드로이드 소스 코드

--시스템 애플리케이션 작성

--안드로이드 플랫폼 해킹

--AOSP에 소스 기여

--정리

--추가 자료

 

17. 네트워킹, 웹 서비스, 원격 API

--안드로이드 네트워킹

--웹 서비스 연동

--네트워크와 전력 소비

--정리

--추가 자료

 

18. 원격 기기와의 통신

--안드로이드 통신 기술

--안드로이드 USB

--블루투스 저전력

--안드로이드 와이파이

--기기 웹 서비스

--정리

--추가 자료

 

19. 구글 플레이 서비스

--인증

--구글 드라이브 애플리케이션 데이터

--구글 클라우드 엔드포인트

--구글 클라우드 메시징

--구글 플레이 게임 서비스

--정리

--추가 자료

 

20. 구글 플레이 스토어를 통한 애플리케이션 배포

--앱 내 빌링

--안드로이드 애플리케이션의 광고 활용

--애플리케이션 라이선싱

--APK 확장 파일

--정리

--추가 자료

 

 

이 책의 구성

 

1: 더 나은 기반 구축

 

1: 개발 환경설정에서는 안드로이드 개발 도구를 다룬다. 이 장에서는 안드로이드용 새 IDE인 안드로이드 스튜디오를 소개한다.

 

2: 안드로이드를 위한 효과적인 자바 코드에서는 자바 프로그래밍 언어 및 안드로이드와 관련한 구체적인 프로그래밍 기법을 다룬다. 이 장에서는 메모리 부담을 줄이는 데 도움이 되고 달빅 가비지 컬렉터의 부하를 줄여주는 기법을 소개한다.

 

2: 컴포넌트 활용

 

3: 컴포넌트, 매니페스트, 리소스에서는 컴포넌트의 전반적인 개요를 설명하고 많은 개발자들이 애플리케이션 매니페스트에서 잘 활용하지 못하는 요소들에 대해 자세히 언급한다.

 

4: 안드로이드 사용자 경험 및 인터페이스 디자인에서는 사용자 인터페이스 디자인의 기본이 되는 이론을 살펴본다. 여기서는 사용자 스토리, 페르소나를 시작으로 사용자 인터페이스 디자인을 어떻게 시작해야 하고, 애플리케이션에서 각기 다른 화면의 디자인을 어떻게 진행해야 하는지 알아본다.

 

5: 안드로이드 사용자 인터페이스 작업에서는 안드로이드 UI의 기술적인 부분에 초점을 맞춘다. 이 장에서는 다중 화면을 지원하는 애플리케이션에서 사용할 수 있는 새 API 활용법을 보여준다.

 

6: 서비스 및 백그라운드 작업에서는 애플리케이션에서 Service컴포넌트를 활용해 최적의 백그라운드 작업을 수행하는 법을 자세히 다룬다. 이 장에서는 다른 애플리케이션으로 발행하지 않는 Service에 초점을 맞춘다.

 

7: 안드로이드 IPC에서는 안드로이드 IPC및 같은 기기에서 실행되는 두 개의 별도 안드로이드 애플리케이션 사이에서 통신하는 법을 살펴본다. 이 장에서는 바인더에 대해 자세히 다루고, 바인더를 활용해 플러그인 기능을 지원하는 애플리케이션을 개발하는 법을 배운다.

 

8: 브로드캐스트리시버 및 설정 변경에서는 BroadcastReceiver활용법에 초점을 맞추고 시스템 전역 이벤트 및 설정 변화를 리스닝하는 최적의 기법을 소개한다. 이 장에서는 각기 다른 유형의 브로드캐스트에 대해 설명하고, 각 브로드캐스트를 활용하는 법을 배운다.

 

9: 데이터 저장 및 직렬화에서는 데이터 영속화 및 ContentProvider컴포넌트를 자세히 살펴본다. 이 장에서는 SharedPreferences를 활용하는 법과 기본 안드로이드 컴포넌트를 사용해 설정 UI를 구성하는 법을 배운다.

 

10: 자동화된 테스트 작성에서는 안드로이드 애플리케이션을 위한 자동화된 테스트를 개발하는 법을 깊이 있게 다룬다. 이 장에서는 네 가지 각기 다른 컴포넌트에 대한 간단한 단위 테스트부터 완전한 통합 테스트에 이르기까지 테스트와 관련한 자세한 예제를 제공한다.

 

3: 한계 뛰어넘기

 

11: 고급 오디오, 동영상, 카메라 애플리케이션에서는 고급 그래픽, 오디오, 동영상을 다룬다. 이 장에서는 고성능 저지연 오디오 요구조건을 구현하는 데 활용할 수 있는 오픈에스엘 ES를 비롯해 각기 다른 오디오 API를 활용하는 법을 설명한다.

 

12: 안드로이드 애플리케이션 보안에서는 암호화 API사용법을 중심으로 안드로이드의 다양한 보안 요소를 살펴본다. 이 장에서는 안드로이드에서 안전하게 키를 관리하는 법과 기기 데이터를 암호화하는 법을 배운다.

 

13: 지도, 위치, 활동 API에서는 안드로이드의 새로운 지도 및 위치 API를 자세히 살펴본다.

 

14: 네이티브 코드 및 JNI에서는 C 프로그래밍 언어를 사용해 안드로이드 네이티브 개발을 진행하는 법을 배운다. 이 장에서는 안드로이드 NDK(네이티브 개발 킷)의 활용법과 JNI를 통해 네이티브 코드와 자바 코드를 연결하는 법을 살펴본다.

 

15: 숨겨진 안드로이드 API에서는 안드로이드에서 숨겨진 API가 어떤 식으로 동작하고, 이를 어떻게 찾으며, 애플리케이션에서 안전하게 호출하려면 어떻게 해야 하는지 배운다.

 

16: 안드로이드 플랫폼 해킹에서는 안드로이드 오픈 소스 프로젝트(AOSP)를 가지고 작업하는 법과, 커스텀 펌웨어 개발 방법, 안드로이드 플랫폼 확장 방법을 설명한다. 이 장에서는 AOSP가 어떻게 설계돼 있는지 설명하고, 안드로이드 플랫폼을 수정할 때 어떤 식으로 작업해야 하는지 배운다.

 

17: 네트워킹, 웹 서비스, 원격 API에서는 안드로이드 애플리케이션에서 온라인 웹 서비스와 연동하고, 네트워크 작업을 최적화하는 법을 살펴본다. 이 장에서는 표준 HTTP부터 웹 소켓, SPDY에 이르기까지 네트워크 작업에 활용할 만한 서드파티 라이브러리를 추천하고, 각기 다른 유형의 웹 서비스를 호출하는 법을 설명한다.

 

18: 원격 기기와의 통신에서는 안드로이드에서 사용할 수 있는 다양한 통신 기술을 활용해 원격 기기와 통신하는 각기 다른 기법을 살펴본다. 이 장에서는 안드로이드의 내장 API를 사용해 USB기기와 통신하는 법을 설명한다.

 

19: 구글 플레이 서비스에서는 구글 플레이 서비스의 API 활용법을 다룬다. 이 장에서는 온라인 구글 API의 인증을 받는 법과 구글 드라이브의 애플리케이션 데이터 기능을 활용해 애플리케이션의 데이터를 여러 기기 사이에서 저장하는 예제를 제공한다.

 

20: 구글 플레이 스토어를 통한 애플리케이션 배포에서는 구글 플레이 스토어에서 애플리케이션을 배포하는 방법을 중점적으로 살펴보고 다양한 수익화 옵션을 적용하는 법을 배운다. 이 장에서는 앱 내 빌링 및 광고를 애플리케이션에 추가하는 법과 라이선승 서비스를 사용해 사용자 기기에서 애플리케이션의 라이선스를 확인하는 법을 설명한다.

 

 

출판사 리뷰

 

이 책을 읽고 있다면 안드로이드 플랫폼, 스마트폰, 애플리케이션 개발에 익숙한 사람일 것이다. 여러분 대부분은 지난 몇 년간 안드로이드 기기가 폭발적으로 성장한 사실과 애플리케이션 개발자들에게 안드로이드 플랫폼이 얼마만큼의 잠재적인 가능성을 지니는지 잘 알고 있을 것이다.

 

이 소식은 모든 개발자에게 좋은 소식이다. 안드로이드 개발 분야의 전문가가 되려는 사람에게는 앞으로 밝은 미래가 기다리고 있다. 숙련된 안드로이드 애플리케이션 개발자에 대한 수요는 날마다 늘어나고 있고, 더불어 새 기술을 활용해 사용자들이 원하는 기능을 제공하려면 계속해서 남들보다 앞서 생각해야 하므로 개발자들에게 기업에서 요구하는 기대 수준도 높아지고 있다.

 

물론 구글에서 훌륭한 툴과 API를 통해 손쉽게 애플리케이션을 개발할 수 있게 해주지만 안드로이드를 최대한 활용하려면 자기 자신을 한계 수준까지 끌어올려야 한다. 이 책의 목적은 이와 같이 안드로이드 플랫폼의 한계를 뛰어넘어 남들과는 차별화된 고급 애플리케이션을 개발하게 하는 것이다.

 

누구를 위한 책인가?

 

이 책의 독자라면 이미 안드로이드 애플리케이션을 몇 개 작성해보고 고급 API나 트릭을 알고자 하는 사람일 것이다. 또는 자바를 사용해 프로그래밍한 경험이 있고 새 언어를 배우는 데 문제가 전혀 없는 사람을 대상으로 하기도 한다. 개발자로서 여러분은 새로운 IDE나 전혀 새로운 API를 사용해보는 것을 겁내지 않는 사람일 것이다. 여러분은 모든 최신 기능을 테스트해보기를 좋아하고 처음에 시도할 때 잘 안 되더라도 낙심하지 않는 사람일 것이다.

 

시중에는 안드로이드 개발과 관련한 수많은 입문서가 존재하지만 이 책은 그런 책이 아니다. 대신 이 책은 과거 안드로이드 애플리케이션 개발 경험이 있는 개발자를 대상으로 한다. 여러분은 Activity, Service, BroadcastReceiver,ContentProvider 클래스를 사용해 애플리케이션을 개발하는 법을 기본적으로 알고 있으며, 애플리케이션 메니페스트, 안드로이드의 각기 다른 애플리케이션 리소스 타입의 기본 개념도 알고 있어야 한다. 단 몇 분만에 간단한 안드로이드 애플리케이션을 개발할 수 있다면 이 책의 내용을 이해할 준비를 충분히 마쳤다고 볼 수 있다.

 

 

관련글 더보기

댓글 영역