서브메뉴

본문

Practical Android Projects (안드로이드 개발자를 위한 실전 프로젝트 개발서)
Practical Android Projects (안드로이드 개발자를 위한 실전 프로젝트 개발서)
저자 : 루카스 조던|피이터 그레이링
출판사 : 한빛미디어
출판년 : 2012
ISBN : 9788979149036

책소개

안드로이드 개발자를 위한 실전 프로젝트 개발서『Practical Android Projects』. 이 책은 안드로이드에 대한 전체적인 상황과 구조를 살펴보고 자신의 성향에 맞게 개발 환경을 꾸리는 내용과 안드로이드에서 다른 언어, 특히 스크립트 언어를 사용하기 위한 다양한 방법을 살펴본다. 웹 앱과 RIA 앱을 개발해보고, 단말기 영역을 벗어나 외부 서비스와 연동하는 기술을 다루며 배운 내용을 기반으로 간단한 게임을 만들어볼 수 있도록 구성했다. 초보 개발자보다는 자바 환경에 대한 경험이 있고 안드로이드 앱 개발에 관심 있는 개발자에게 유용한 내용을 많이 담았다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

이 책이 제시하는 핵심 내용
실전에서 바로 활용할 수 있는 핵심 안드로이드 애플리케이션 개발 정보를 제공한다.

어떤 독자를 위한 책인가?
자바 환경에 대한 경험이 있고 안드로이드 기초를 다진 개발자
안드로이드 애플리케이션 개발에 관심 있는 자바 및 웹 개발자

실전 프로젝트로 배우고 현업에서 바로 쓴다!


안드로이드에서 촉발된 스마트폰 전쟁은 운영체제만의 싸움이 아니라 서비스, 사용자 편의성 등 모든 영역에 걸쳐 경쟁이 고조되고 있는 양상이다. 모바일 시장에서 벌어지는 거센 경쟁은 개발자에게도 혁신을 요구한다. 경쟁이 심화되는 상황에서 사용자의 주목을 끌려면 보다 경쟁력 있는 모바일 앱 개발에 대한 치열한 고민이 필요하다.
이 책은 안드로이드 개발자에게 저자들이 실전에서 얻은 경험을 빠르게 전달한다. 초보 개발자보다는 자바 환경에 대한 경험이 있고 안드로이드 앱 개발에 관심 있는 개발자에게 유용한 내용을 많이 담았다. 안드로이드 개발 경험이 있다고 해도 다양한 방식의 프로젝트를 다뤄보면 현업에 활용할 수 있는 기술을 익히는 데 도움이 될 것이다.

【주요 내용】

· 안드로이드 기초
· 실전 개발 도구
· 나만의 안드로이드 스크립트 환경 만들기
· 루아를 내장한 앱 만들기
· SL4A 소개: 안드로이드용 스크립트 계층
· HTML/자바스크립트/AIR로 GUI 만들기
· REST로 페이스북/트위터 사용하기
· 안드로이드에서 구글 앱엔진 사용하기
· 게임 개발: 그래픽스
· 게임 개발: 애니메이션
· 앱 인벤터

[옮긴이의 말_이주호]

IT업계에서 변화속도는 대단히 빠릅니다. 특히 모바일 시장은 변화로 인해 숨이 가쁠 정도입니다. 그만큼 모바일은 새로운 기술들로 넘쳐납니다. 여러분도 잘 알고 있듯 스마트폰 업계는 안드로이드폰과 아이폰 쌍두마차가 치열하게 경쟁하고 있고, 그 뒤에 윈도폰7과 바다 등 후발주자들이 나름 시장을 차지하려고 노력 중입니다. 아이폰에서 촉발된 스마트폰 대전은 이제 단순히 모바일 운영체제만의 싸움이 아닙니다. 서비스, 사용자 편의성 등 다양하고 복합적인 총체적인 경험을 놓고 경쟁이 펼쳐지고 있습니다. 단말기 제조사뿐만 아니라 수많은 서드파티 개발자들간 경쟁도 뜨겁습니다. 스마트폰 플랫폼 업체는 앱을 쉽고 빠르게 개발할 수 있는 환경을 제공하고 있습니다. 이 책은 그중 안드로이드 플랫폼을 좋아하는 개발자들에게 저자들이 실전에서 얻은 경험을 빠르게 전달하기 위해 쓰였습니다. 전체적으로 완전 초보자 보다는 자바 개발 경험이 약간 있고, 안드로이드 앱 개발에 관심 있는 개발자들에게 유용한 내용이 많습니다. 안드로이드 개발에 몸담고 있는 독자들에게도 다양한 분야, 다양한 방식의 프로젝트를 다뤄보면서 현업에 활용할 수 있는 기술들을 익히는데 도움이 될 것입니다.
이 책 1장과 2장은 안드로이드에 대한 전체적인 상황과 구조를 살펴보고 자신의 성향에 맞게 개발 환경을 꾸리는 내용을 다룹니다. 개발도구의 역할을 살펴보면서 안드로이드 내부 구조 및 아키텍처에 대한 이해가 넓어질 것이라고 생각합니다. 3장부터 5장까지는 안드로이드에서 다른 언어, 특히 스크립트 언어를 사용하기 위한 다양한 방법을 살펴봅니다. 여기에는 베이직, 루아, 파이썬, 펄 등과 같은 언어들이 포함됩니다. 자바로 개발된 언어 구현체를 이식하는 과정부터 RPC를 통해 기능을 확장할 수 있는 아키텍처까지 경험할 수 있습니다. 6장은 웹 앱과 RIA 앱을 개발해 봅니다. 웹 기술을 이용한 앱부터 자바스크립트 기능을 확장하여 네이티브 플랫폼 기능을 이용하는 방법까지 다룹니다. 폰갭과 같은 하이브리드 앱 플랫폼의 원리가 궁금하신 분들께는 재미있는 내용이 될 것입니다. 최근 어도비 사가 플러그인 방식의 모바일용 플래시 플레이어 개발을 중단한다는 소식이 있습니다만, 기존 플렉스 기반 기술을 네이티브 앱으로 개발하는 것에는 지속적인 투자를 할 것으로 보입니다. 자바 이외의 언어로 유려한 앱을 개발하고 싶은 분들에게는 이 부분도 유익할 것입니다. 7장부터는 단말기 영역을 벗어나 외부 서비스와 연동하는 기술을 다룹니다. REST 프로토콜을 사용하여 트위터, 페이스북과 같은 대표적인 SNS에 대한 인증 과정 및 OpenAPI를 살펴보고, 안정적인 네트워크 통신을 수행하는 앱을 만드는 방법들도 익힐 수 있습니다. 8장에서는 구글 앱엔진이 핵심 주제입니다. 클라우드 서비스나 웹서비스와 연동되는 앱을 본격적으로 개발하기 전에 구글 앱엔진으로 시험해 볼 수 있습니다. 안드로이드 앱을 만드는데 주로 사용하는 자바 언어를 기반으로 확장성을 가진 서버 앱을 만드는 과정과 그에 대한 한계점을 익힐 수 있을 것입니다. 다만 역자 입장에서 걱정되는 것은 구글 앱엔진은 서비스이기 때문에 요구사항에 맞게 정책이 바뀔 수 있다는 사실입니다. 그러나 기본적인 내용과 관점은 동일하므로, 이 책에서 다룬 내용을 익히면 변화를 쉽게 따라갈 수 있을 것입니다. 9장과 10장에서는 지금까지 배운 내용을 기반으로 간단한 게임을 만들어 봅니다. 그동안 익힌 내용들은 기본 인터페이스를 사용했다면 9장과 10장에서는 화려한 애니메이션 효과를 비롯하여 좀 더 발전된 형태의 인터페이스를 구현하는 기술을 익힐 수 있을 것입니다. 11장은 앱 인벤터를 소개합니다. 앱 인벤터는 구글랩스에서 시작한 서비스지만 조만간 별도 오픈소스 프로젝트로 진행될 아주 간편한 오픈소스 개발 환경입니다. 스크래치와 같이 블록 기반 프로그래밍 기술 방법을 익히면서 사고를 전환해 보는 것도 좋을 것 같습니다.
이 책 번역을 시작한 이후 많은 시간이 지났습니다. 책을 번역하는 동안 수많은 조언과 충고, 격려를 해주신 한빛미디어 황치규 차장님께 특별히 감사드립니다. 좋은 IT 서적을 만들기 위해 수고하시는 한빛미디어를 비롯한 많은 IT출판 종사자 분들께도 감사드립니다. 책 하나를 만들기 위해 투입되는 땀 한방울의 의미에 누가 되지 않기 위해 노력했으나 아쉬운 점이 많이 남습니다. 책을 번역하면서 언제나 든든한 지원군이 되어준 아내 수현과 말썽꾸러기 두 아들 현욱, 현태에게도 고마움을 전하고 싶습니다. 뒤에서 묵묵히 지켜봐 주시며 버팀목이 되어주신 부모님께도 감사드립니다. 아울러 이 책을 구입해 읽는 독자 여러분께 감사드립니다. 부족한 번역입니다만 개발자로서 여러분의 삶에 작은 도움이 될 수 있기를 기원합니다.
- 이주호_

[지은이의 말_루카스 조던&피이터 그레이링]

안드로이드는 심사숙고 끝에 등장한 모바일 애플리케이션 개발 플랫폼이다. 구글은 세계적인 수준의 개발 환경을 서드파티 개발자들에게 제공하는 멋진 일을 해오고 있다. 방대한 사용자층과 개발 용이성이 결합되면서 안드로이드는 개발자들에게 매우 강력한 플랫폼으로 거듭나고 있다.

이 책은…

안드로이드 앱을 개발해 보면 많은 것들이 직관적이라는 것을 알 수 있다. 그러나 안드로이드 플랫폼에 대한 경험 하나하나가 매우 귀중한 가이드가 되는 것도 사실이다. 이 책은 요소 하나하나를 살펴보면서 독자들이 각 주제를 보다 잘 이해할 수 있도록 각 장이 구성되어 있다. 실질적인 예제 프로젝트를 통해 직접 필요한 작업을 단계별로 수행하면서 안드로이드에 대한 통찰력을 얻을 수 있다. 프로젝트에 수반될 수 있는 위험도 피할 수 있을 것이다. 이 책은 안드로이드 SDK 도구와 통합 개발 환경(IDE)을 사용하여 다양한 개발 방법을 보여주는 것에도 신경을 많이 썼다. 자바로 안드로이드 앱을 개발하는 것뿐 아니라 자바스크립트나 루아 같은 다른 프로그래밍 언어를 사용하는 방법도 다룬다.

여러분에게 필요한 것

1장과 2장에서는 안드로이드 개발 환경에 대한 기초적인 내용을 상세히 다룬다. 안드로이드 SDK 도구들과 기타 IDE 및 플러그인 등 다른 개발 도구들을 사용하여 앱을 만드는 상세 과정을 소개한다. 이 책에 나오는 프로젝트를 따라 해보려면 다음 준비가 필요하다.

● 윈도우, 리눅스, 맥 OS X 중 하나가 실행되는 데스크탑 컴퓨터

책에 나오는 프로젝트는 윈도우 XP, 우분투 리눅스, 맥 OS X를 혼합하여 개발하였다. 모든 프로젝트는 이들 플랫폼에서 호환되는 것을 확인하였다.

● 자바 SDK

JDK 1.6.0_18 이후 버전을 사용하면 된다.

● 아파치 Ant

저자들은 독립실행형 아파치 Ant를 설치하였다. 이렇게 설치하면 안드로이드 SDK 터미널 명령행 도구들을 사용할 때 매우 편리하고 유용하다. 이와 관련해서는 1,2장에서 자세히 다룰 것이다.

● 구글 안드로이드 SDK

이 책의 모든 프로젝트는 안드로이드 2.3(진저브레드) SDK를 사용하여 개발되었다.

● 통합 개발 환경(IDE)

이 책에서는 이클립스, 넷빈즈, 인텔리J 커뮤니티 에디션 등의 IDE를 사용하였다. 모든 IDE 프로젝트가 호환되는 것을 확인했으므로, 자신이 좋아하는 IDE를 선택하면 된다. 사실 안드로이드 터미널 명령행 도구들과 아파치 Ant만 있어도 IDE 없이 모든 프로젝트를 다뤄볼 수 있다. 앞에서 얘기한 대로 1장과 2장에서는 핵심 안드로이드 SDK를 사용하여 자신의 입맛에 맞는 안드로이드 개발 환경을 꾸미는 방법을 다룬다. 이후에는 각 장의 내용에 따라 별도 도구나 소프트웨어를 구성하는 방법을 소개할 것이다.

여러분이 알아야 할 것들

여러분이 자바에 능숙하고, 자바스크립트도 어느 정도 익숙할 것이라고 생각한다. 여기에 파이썬, 루아, 루비, 펄과 같은 다른 스크립트 언어도 알고 있다면 좋다.
- 루카스 조던, 피이터 그레이링

관련 도서

-. 『안드로이드 프로그래밍 정복』(한빛미디어, 2010)
-. 『안드로이드 분석과 포팅』(한빛미디어, 2011)
-. 『만들면서 배우는 안드로이드 게임 프로그래밍』(한빛미디어, 2011)
-. 『안드로이드 웹앱 : with HTML, CSS, JavaScript』(한빛미디어, 2011)
[교보문고에서 제공한 정보입니다.]

목차정보

CHAPTER 1 안드로이드 기초
_1.1 안드로이드란?
_1.2 안드로이드 SDK 설치
__1.2.1 자바 개발 키트(JDK)
__1.2.2 안드로이드 SDK와 타겟 플랫폼
_1.3 안드로이드 SDK 시험 가동
_1.4 안드로이드 아키텍처 및 배경 지식
__1.4.1 안드로이드 플랫폼 스택
__1.4.2 안드로이드 런타임: 달빅 가상 머신(DVM)
_1.5 통합 개발 환경(IDE) 사용하기
_1.6 이클립스 사용하기
__1.6.1 웹 자료: 안드로이드 개발용 이클립스
__1.6.2 빨리 시작하기: 이클립스 안드로이드 개발도구(ADT) 플러그인
_1.7 넷빈즈 사용하기
__1.7.1 웹 자료: 안드로이드 개발용 넷빈즈
__1.7.2 빨리 시작하기: 넷빈즈용 안드로이드 플러그인(NBAndroid)
_1.8 인텔리J IDEA 커뮤니티 에디션 사용하기
__1.8.1 웹 자료: 안드로이드 개발용 젯브레인즈 인텔리J IDEA
__1.8.2 빨리 시작하기: 인텔리J용 안드로이드 플러그인
_1.9 정리

CHAPTER 2 실전 개발 도구
_2.1 SDK와 개발자용 편집기만으로 코드 작성하기
_2.2 개발 환경 구성을 위한 필수 요소
__2.2.1 SDK 위치가 경로(PATH 환경 변수)에 있는지 확인하기
__2.2.2 안드로이드 가상 기기(AVD) 준비하기
_2.3 자주 사용하는 안드로이드 개발 키트 도구
_2.4 안드로이드 도구 및 코드 편집기 사용하기
__2.4.1 코드 편집기 선택하기
__2.4.2 안드로이드 개발 작업에 맞게 편집기 구성하기
_2.5 예제 안드로이드 프로젝트
_2.6 기본 안드로이드 프로젝트 만들기
__2.6.1 안드로이드 프로젝트 디렉터리 구조
_2.7 예제 앱 실행 준비
__2.7.1 디버깅 세션 시작하기
__2.7.2 기본 생성 코드 바꾸기
__2.7.3 프로젝트 예제 코드 빌드 및 설치
__2.7.4 DDMS에서 앱에 대한 로그 필터 만들기
_2.8 예제 앱 실행하기
__2.8.1 예제 앱이 하는 일
__2.8.2 주요 앱 파일 살펴보기
_2.9 안드로이드 코딩 하우투
__2.9.1 안드로이드 로그 API 사용하기
__2.9.2 앱 GUI 초기화 코드를 한곳에 모으기
__2.9.3 앱 액티비티 종료하기
__2.9.4 버튼(또는 다른 뷰) 활성화/비활성화
__2.9.5 (실행 중에 코드에서) 동적으로 컨트롤 생성하기
__2.9.6 안드로이드 토스트 만들기
__2.9.7 안드로이드 알림 대화상자 표시하기
__2.9.8 안드로이드 시스템 통지 생성 및 표시
__2.9.9 사설 앱 파일 사용하기
__2.9.10 메뉴 만들기
_2.10 이클립스/ADT로 예제 앱 옮기기
__2.10.1 프로젝트 사본 만들기
__2.10.2 ADT 플러그인이 설치된 이클립스에서 열기
__2.10.3 프로젝트 사본에서 새 안드로이드 프로젝트 생성하기
__2.10.4 프로젝트에서 새 실행 설정 만들기 및 테스트하기
__2.10.5 실제 기기에 배포하기
__2.10.6 서명된 예제 앱 APK 패키지 만들기
_2.11 정리

CHAPTER 3 나만의 안드로이드 스크립트 환경 만들기
_3.1 스크립트 환경 설계
__3.1.1 스크립트 시스템 컴포넌트
__3.1.2 스크립트 시스템에서 각 컴포넌트의 역할
__3.1.3 리소스가 한정된 시스템용 설계
__3.1.4 백그라운드 코드용 멀티쓰레드
_3.2 베이직으로 프로그램 짜기
__3.2.1 베이직 기초 지식
__3.2.2 코코아-자바용 베이직 인터프리터
_3.3 프로젝트 개요
_3.4 코코아-베이직 AWT 프로젝트
__3.4.1 코코아-베이직 AWT 앱의 구조 이해하기
__3.4.2 코코아-베이직 AWT 데스크탑 앱 실행하기
__3.4.3 코코아-베이직 AWT의 소스코드 살펴보기
_3.5 코코아드로이드 프로젝트
__3.5.1 사전 점검 목록
__3.5.2 코코아드로이드 앱 구조 이해하기
__3.5.3 코코아드로이드 앱 실행하기
_3.6 정리

CHAPTER 4 루아를 내장한 앱 만들기
_4.1 루아와 깔루아 2
__4.1.1 루아 참고자료
__4.1.2 깔루아 2 참고자료
_4.2 안드로이드 자바 앱에서 깔루아 2 사용하기
__4.2.1 개발 환경 구성하기
_4.3 깔루아 2 프로젝트
__4.3.1 깔루아 2 런타임 파일 프로젝트 구성하기
__4.3.2 콘솔에서 빌드하기
__4.3.3 IDE에서 빌드하기
__4.3.4 깔루아 2 런타임 라이브러리
_4.4 깔루아 2 안드로이드 인터프리터 프로젝트
__4.4.1 프로젝트 구성하기
__4.4.2 콘솔에서 빌드하기
__4.4.3 IDE에서 빌드하기
__4.4.4 깔루아 2 안드로이드 인터프리터 실행하기
__4.4.5 깔루아 2를 내장하기 위한 기초지식
_4.5 깔루아드로이드 프로젝트
__4.5.1 깔루아드로이드 실행하기
__4.5.2 메인 GUI 쓰레드 또는 별도 쓰레드에서 루아 코드 실행하기
__4.5.3 깔루아 2에 안드로이드 앱 메서드 공개하기
__4.5.4 루아 함수인 것처럼 앱의 메서드 호출하기
__4.5.5 앱 시작 스크립트 구현하기
_4.6 정리

CHAPTER 5 SL4A 소개: 안드로이드용 스크립트 계층
_5.1 안드로이드용 스크립트 계층이란?
__5.1.1 SL4A에 대해
__5.1.2 SL4A 라이선스
__5.1.3 SL4A 사용하기
__5.1.4 SL4A 참고자료
__5.1.5 SL4A 코드 저장소
_5.2 에뮬레이터에서 SL4A 실행하기
__5.2.1 개발 환경 구성
__5.2.2 SL4A APK 내려받기
__5.2.3 에뮬레이터에 SL4A APK 설치하기
__5.2.4 에뮬레이터에서 SL4A 실행하기
__5.2.5 SL4A 인터프리터 설치하기
_5.3 안드로이드용 스크립트 계층에 대한 이해
__5.3.1 JSON을 사용한 통신
__5.3.2 SL4A 아키텍처 요약
__5.3.3 로컬 프록시 구현 살펴보기
_5.4 SL4A 소스코드 가져오기
__5.4.1 SL4A 소스코드 복제
_5.5 SL4A의 Hello World 예제
_5.6 정리

CHAPTER 6 HTML/자바스크립트/AIR로 GUI 만들기
_6.1 웹 애플리케이션 프로젝트 설정
__6.1.1 안드로이드 프로젝트
__6.1.2 자바스크립트에서 안드로이드 메서드 호출하기
__6.1.3 자바스크립트 앱
__6.1.4 그래픽 및 애니메이션
__6.1.5 사용자 상호작용
__6.1.6 자바스크립트 요약
_6.2 AIR로 안드로이드용 플래시/플렉스 앱 사용하기
__6.2.1 안드로이드용 플렉스 애플리케이션 작성
__6.2.2 빌드 및 배포
__6.2.3 MXML로 플렉스 UI 생성하기
__6.2.4 액션스크립트 작성
_6.3 정리

CHAPTER 7 REST로 페이스북/트위터 사용하기
_7.1 REST에 대한 이해
__7.1.1 REST와 JSON
__7.1.2 안드로이드 앱에서 REST
__7.1.3 비동기 작업
_7.2 트위터
__7.2.1 코드 예제
__7.2.2 사용자 대신 트윗 보내기
__7.2.3 사용자에게 트윗할지 물어보기
_7.3 페이스북 API 이해하기
__7.3.1 페이스북과 인증
__7.3.2 페이스북의 소셜 그래프 API
_7.4 정리

CHAPTER 8 안드로이드에서 구글 앱엔진 사용하기
_8.1 구글 앱엔진 소개
__8.1.1 GAE 시작하기
__8.1.2 GAE를 이클립스와 함께 사용하기
__8.1.3 GAE 프로젝트 구조
__8.1.4 구글 앱엔진 서비스 요금
__8.1.5 구글 앱엔진 서비스
_8.2 예제 GAE 애플리케이션 살펴보기
__8.2.1 최고 점수 서비스 추가하기
__8.2.2 최고 점수 서비스 조회하기
_8.3 안드로이드에서 GAE 서비스 사용하기
__8.3.1 TopTen 액티비티 살펴보기
__8.3.2 게임 사용자 보기
__8.3.3 사용자 위치 보기(MapView)
_8.4 정리

CHAPTER 9 게임 개발: 그래픽스
_9.1 안드로이드 뷰 패키지 소개
__9.1.1 XML 레이아웃 이해하기
__9.1.2 코드에서 배치하기
__9.1.3 사용자 정의 컴포넌트
_9.2 Drawable 클래스에 대한 이해
__9.2.1 Drawable 클래스
__9.2.2 Drawable 하위 클래스
__9.2.3 NinePatchDrawable
_9.3 직접 그리기
_9.4 정리

CHAPTER 10 게임 개발: 애니메이션
_10.1 안드로이드 애니메이션
__10.1.1 뷰와 애니메이션 만들기
_10.2 프레임 단위 애니메이션
__10.2.1 Views와 SurfaceViews 함께 사용하기
_10.3 정리

CHAPTER 11 앱 인벤터(App Inventor)
_11.1 앱 인벤터 설치하기
_11.2 블록 사용하기
__11.1.1 블록의 유형
__11.2.2 블록 편집기로 앱 로직 만들기
_11.3 앱 인벤터의 한계
__11.3.1 제한적인 컴포넌트 집합
__11.3.2 블록 편집기의 제약
_11.4 정리
[교보문고에서 제공한 정보입니다.]