• 안드로이드 레시피
  • 빠르게 활용하는 안드로이드 문제 해법서

  • 데이브 스미스, 제프 프리즌 지음
  • 유윤선 옮김

  • 임베디드 & 모바일 시리즈 _ 022
  • ISBN: 9788992939690
  • 30,000원 | 2012년 04월 25일 발행 | 600쪽



★ 안드로이드 세계의 문제를 해결해 줄 친절한 해법서

이 책에서는 안드로이드 세계에서 발생할 수 있는 문제점들을 하나씩 살펴보고 다양한 해결책을 최소 API 레벨에서 제공한다. 이 책은 안드로이드 개발자가 손쉽게 참고해 문제를 해결할 수 있도록 문제를 명확히 규정한 후, 재사용 가능한 코드 조각을 통해 가장 효과적으로 문제를 해결하는 법을 제공한다. 독자들은 주제별로 분류된 이 책의 레시피를 통해 예제 코드를 실제 프로젝트에 바로 적용하고, 다양한 문제를 동시에 해결할 수 있다.

이 책은 거의 모든 경우 최소 API 레벨(대부분 API 레벨 1)을 사용해 문제를 해결하므로 이 책의 코드는 안드로이드 플랫폼 버전과 상관없이 모든 플랫폼에 안심하고 적용할 수 있다. 또 이 책에서는 개발자들이 놓치기 쉬운 파편화 이슈를 꼼꼼히 지적하며 가장 효과적이고 안정적으로 안드로이드 개발을 할 때 자주 접하는 문제점(UI 이슈, 네트워크 활용, 시스템 연동, 하드웨어와 미디어 활용 등)을 빠짐 없이 다룬다.

이 책에서는 세부적인 API 사용법을 모르더라도 예제를 충분히 활용할 수 있도록 기반 설명을 제공하고 바로 실전 예제 코드를 설명한다. 이 책의 예제 코드를 활용하면 손쉽게 시스템 연동(시스템 서비스 연동, 외부 애플리케이션으로 애플리케이션 노출 등)을 할 수 있다. 이 책의 각 레시피에 수록된 예제 코드는 대부분의 경우 외부 의존성이 거의 없는 독립적인 코드로 작성돼 있으므로 이 책은 안드로이드 개발을 할 때 항상 참조할 수 있는 레퍼런스이자 쿡북이다.

『안드로이드 레시피』에서 제공하는 실전 예제 코드는 모바일 OS 플랫폼을 이끌어가는 안드로이드 플랫폼용 고품질 앱을 개발하는 데 필요한 시간과 스트레스를 없애준다. 새 프로젝트를 시작하고 책의 코드와 설정 파일을 복사해 붙여넣으면 구미에 맞게 안드로이드 앱을 만들 수 있다.

『안드로이드 레시피』는 완전한 예제와 테스트를 통과한 코드를 활용해 다양한 실전 문제에 대한 해결책을 제시한다. 각 장은 장별로 학습할 수도 있고 이 책에서 소개하는 80여 개의 해결책으로 들어가 문제를 바로 해결하는 법을 배울 수도 있다.

『안드로이드 레시피』에서는 구글의 안드로이드 SDK를 명령행과 이클립스 IDE 환경에서 활용해 앱을 개발하는 법을 알려준다. 그런 다음 사용자 인터페이스, 클라우드 커뮤니케이션, 기기 하드웨어, 데이터 영속성, 앱 사이의 통신, 안드로이드 시스템과의 연동을 마스터하는 법을 빠르게 살펴본다.

★ 이 책에서 다루는 내용 ★

  • 안드로이드 아키텍처와 다양한 안드로이드 API
  • 명령행/안드로이드 SDK와 이클립스/안드로이드 SDK 환경에서 단위 변환 애플리케이션을 개발하는 방법
  • 사용자 인터페이스와 관련한 다양한 과제를 해결하는 법
  • 외부 라이브러리를 활용해 개발 시간과 노력을 단축하는 법
  • 안드로이드용 스크립팅 레이어 툴을 활용해 앱을 빠르게 개발하는 법
  • 안드로이드 NDK를 활용한 앱 성능 향상법
  • 안드로이드 마켓 필터 및 빠르게 반응하고 부드럽게 연동되는 앱 설계에 대한 가이드라인

저자의 혜안이 담긴 설명과 실질적인 예제를 통해 안드로이드 레시피는 현재 가장 큰 인기를 얻고 있는 안드로이드 플랫폼에 독자들이 멋진 앱을 개발해 배포할 수 있도록 도움을 주는 가이드가 돼 줄 것이다.

데이브 스미스(Dave Smith)

데이브 스미스는 콜로라도 광업 대학에서 2006년에 전기 공학과 컴퓨터 사인언스 학위를 받은 후로 임베디드 플랫폼용 하드웨어와 소프트웨어를 개발하고 있다. 현재 데이브는 덴버에서 컨설턴트로 일하면서 모바일 개발에 전념하고 있다. 데이브는 2009년부터 SDK를 사용해 사용자 애플리케이션을 개발하는 것부터 안드로이드 소스 코드를 커스터마이징하는 데 이르기까지 안드로이드 플랫폼과 관련한 모든 개발 작업을 진행 중이다. 데이브는 커스텀 하드웨어와 연동한 안드로이드 프로젝트나 커스텀 임베디드 플랫폼용으로 안드로이드를 빌드하는 프로젝트를 제일 좋아한다. 데이브는 개발 블로그(blog.wiresareobsolete.com)와 트위터 스트림(@devunwired)을 통해 사람들과 소통하고 있다.

제프 프리즌(Jeff Friesen)

제프 프리즌은 자바(및 현재는 안드로이드)를 전문으로 하는 프리랜서 강사이자 소프트웨어 개발자다. 제프는 이 책 외에 자바와 다른 기술에 대해 JavaWorld (www.javaworld.com), informIT (www.informit.com), java.net, and DevSource (www.devsource.com)에 다양한 기사를 기고했다. 제프에게 연락하려면 그의 웹사이트(tutortutor.ca)를 찾아가면 된다.

유윤선

인디 개발자이자 프리랜서 번역가로 활동 중이다. 이따금 http://joshy21.com/weblog에 번역과 상관없는 글을 올리고 있다. 역서로는 『시작하세요! Unity 3D 게임 프로그래밍 (위키북스)』, 『시작하세요! 안드로이드 게임 프로그래밍(위키북스)』, 『시작하세요! 아이폰 4 프로그래밍(위키북스)』, 『플래시 빌더 4 & 플렉스 4 바이블(위키북스)』, 『쉽고 빠르게 익히는 CSS3(위키북스)』, 『스프링 시큐리티 3(위키북스)』, 『시작하세요! 아이패드 프로그래밍(위키북스)』, 『플래시 게임 마스터(에이콘출판사)』, 『Adobe AIR 인 액션(위키북스)』, 『스프링 3 레시피(위키북스, 공역)』, 『액션스크립트 3.0 완벽가이드(인사이트, 공역)』 등이 있다.

  • 01장_안드로이드 시작하기
    • 안드로이드란?
    • 안드로이드의 역사
    • 안드로이드 아키텍처
    • 앱 아키텍처
      • 컴포넌트
      • 인텐트
      • 매니페스트
      • 앱 패키지
    • 액티비티 자세히 살펴보기
    • 서비스 자세히 살펴보기
    • 브로드캐스트 리시버 자세히 살펴보기
    • 콘텐츠 프로바이더 자세히 살펴보기
    • 1–1. 안드로이드 SDK 설치
      • 문제; 해결책; 문제 풀이
    • 1-2. 안드로이드 플랫폼의 설치
      • 문제; 해결책; 문제 풀이
    • 1–3. 안드로이드 가상 기기의 생성
      • 문제; 해결책; 문제 풀이
    • 1–4. AVD 시작하기
      • 문제; 해결책; 문제 풀이
    • 1–5. UC 앱에 대한 소개
      • 문제; 해결책; 문제 풀이
    • 1–6. UC 액티비티 만들기
      • 문제; 해결책; 문제 풀이
    • 1–7. UC의 설치와 실행
      • 문제; 해결책; 문제 풀이
    • 1–8. UC 앱의 배포 준비
      • 문제; 해결책; 문제 풀이
    • 1–9. 이클립스에서 작업하기
      • 문제; 해결책; 문제 풀이
    • 1–10. 이클립스를 활용한 UC 앱 개발
      • 문제; 해결책; 문제 풀이
    • 정리
    •  
  • 02장_사용자 인터페이스 레시피
    • 2–1. 창 커스터마이징
      • 문제; 해결책; 문제 풀이
    • 2–2. 뷰의 생성과 표시
      • 문제; 해결책; 문제 풀이
    • 2–3. 클릭 액션의 감지
      • 문제; 해결책; 문제 풀이
    • 2–4. 해상도 독립적인 에셋
      • 문제; 해결책; 문제 풀이
    • 2–5. 액티비티 화면 고정
      • 문제; 해결책; 문제 풀이
    • 2–6. 동적인 방향 고정
      • 문제; 해결책; 문제 풀이
    • 2–7. 직접적인 회전 처리
      • 문제; 해결책; 문제 풀이
    • 2–8. 팝업 메뉴 액션의 생성
      • 문제; 해결책; 문제 풀이
    • 2–9. 옵션 메뉴 커스터마이징
      • 문제; 해결책; 문제 풀이
    • 2–10. 뒤로가기 버튼의 커스터마이징
      • 문제; 해결책; 문제 풀이
    • 2–11. 홈 버튼 흉내내기
      • 문제; 해결책; 문제 풀이
    • 2–12. TextView의 변화 감지
      • 문제; 해결책; 문제 풀이
    • 2–13. TextView 티커 스크롤
      • 문제; 해결책; 문제 풀이
    • 2–14. 뷰 애니메이션
      • 문제; 해결책; 문제 풀이
    • 2–15. 배경 드로어블의 생성
      • 문제; 해결책; 문제 풀이
    • 2–16. 커스텀 상태 드로어블의 생성
      • 문제; 해결책; 문제 풀이
    • 2–17. 이미지에 마스크 적용
      • 문제; 해결책; 문제 풀이
    • 2–18. 상태 유지 대화상자의 생성
      • 문제; 해결책; 문제 풀이
    • 2–19. 상황 관련 레이아웃의 구현
      • 문제; 해결책; 문제 풀이
    • 2–20. 키보드 동작의 커스터마이징
      • 문제; 해결책; 문제 풀이
    • 2–21. 소프트 키보드 사라지게 하기
      • 문제; 해결책; 문제 풀이
    • 2–22. AdapterView의 비어 있는 뷰 처리
      • 문제; 해결책; 문제 풀이
    • 2–23. ListView 행 커스터마이징
      • 문제; 해결책; 문제 풀이
    • 2–24. ListView 섹션 헤더 만들기
      • 문제; 해결책; 문제 풀이
    • 2–25. 복합 컨트롤의 생성
      • 문제; 해결책; 문제 풀이
    • 알아두면 좋은 툴 - DroidDraw
      • DroidDraw의 설치와 실행_198;
      • DroidDraw UI 살펴보기_199;
      • 간단한 화면 개발_201
    • 정리
    •  
  • 03장_통신과 네트워크
    • 3–1. 웹 정보 보여주기
      • 문제; 해결책; 문제 풀이
    • 3–2. 웹뷰 이벤트 가로채기
      • 문제; 해결책; 문제 풀이
    • 3–3. 자바스크립트를 통한 웹뷰 접근
      • 문제; 해결책; 문제 풀이
    • 3–4. 이미지 파일 내려받기
      • 문제; 해결책; 문제 풀이
    • 3–5. 백그라운드를 통한 완전한 다운로드
      • 문제; 해결책; 문제 풀이
    • 3–6. REST API 접근
      • 문제; 해결책; 문제 풀이
    • 3–7. JSON 파싱
      • 문제; 해결책; 문제 풀이
    • 3–8. XML 파싱
      • 문제; 해결책; 문제 풀이
    • 3–8. SMS 수신
      • 문제; 해결책; 문제 풀이
    • 3–9. SMS 메시지 전송
      • 문제; 해결책; 문제 풀이
    • 3–10. 블루투스 통신
      • 문제; 해결책; 문제 풀이
    • 3–11. 네트워크 연결 상태 조회
      • 문제; 해결책; 문제 풀이
    • 정리
    •  
  • 04장_기기 하드웨어 및 미디어 활용
    • 4–1. 기기 위치 연동
      • 문제; 해결책; 문제 풀이
    • 4–2. 위치 매핑
      • 문제; 해결책; 문제 풀이
    • 4–3. 지도에 표시 남기기
      • 문제; 해결책; 문제 풀이
    • 4–4. 사진과 동영상 캡처
      • 문제; 해결책; 문제 풀이
    • 4–5. 커스텀 카메라 오버레이 만들기
      • 문제; 해결책; 문제 풀이
    • 4–6. 오디오 녹음
      • 문제; 해결책; 문제 풀이
    • 4–7. 음성 인식 기능의 추가
      • 문제; 해결책; 문제 풀이
    • 4–8. 오디오/동영상의 재생
      • 문제; 해결책; 문제 풀이
    • 4–9. 가속도계 모니터링
      • 문제; 해결책; 문제 풀이
    • 4–10. 나침반 방향 모니터링
      • 문제; 해결책; 문제 풀이
    • 알아두면 유용한 툴 - 센서 시뮬레이터
      • 센서 시뮬레이터 내려받기
      • 센서 시뮬레이터 설정과 센서 시뮬레이터의 실행
      • 앱에서 센서 시뮬레이터 접근하기
    • 정리
    •  
  • 05장_데이터 영속화
    • 5–1. 환경설정 화면 만들기
      • 문제; 해결책; 문제 풀이
    • 5–2. 단순 데이터의 영속화
      • 문제; 해결책; 문제 풀이
    • 5–3. 파일 읽고 쓰기
      • 문제; 해결책; 문제 풀이
    • 5–4. 파일을 리소스로 활용
      • 문제; 해결책; 문제 풀이
    • 5–5. 데이터베이스 관리하기
      • 문제; 해결책; 문제 풀이
    • 5–6. 데이터베이스 조회
      • 문제; 해결책; 문제 풀이
    • 5–7. 데이터 백업
      • 문제; 해결책; 문제 풀이
    • 5–8. 데이터베이스의 공유
      • 문제; 해결책; 문제 풀이
    • 5–9. 기타 데이터의 공유
      • 문제; 해결책; 문제 풀이
    • 알아두면 유용한 툴 - SQLite3
      • SQLite3와 UC
    • 정리
    •  
  • 06장_시스템 연동
    • 6–1. 백그라운드로 알림 보내기
      • 문제; 해결책; 문제 풀이
    • 6–2. 예약 작업과 주기적인 작업의 생성
      • 문제; 해결책; 문제 풀이
    • 6–3. 주기적인 작업의 예약
      • 문제; 해결책; 문제 풀이
    • 6–4. 끝까지 완료되는 작업의 생성
      • 문제; 해결책; 문제 풀이
    • 6–5. 지속적인 백그라운드 작업의 실행
      • 문제; 해결책; 문제 풀이
    • 6–6. 다른 애플리케이션의 실행
      • 문제; 해결책; 문제 풀이
    • 6–7. 시스템 애플리케이션의 실행
      • 문제; 해결책; 문제 풀이
    • 6–8. 외부 애플리케이션에서 애플리케이션 실행 가능하게 하기
      • 문제; 해결책; 문제 풀이
    • 6–9. 주소록 활용
      • 문제; 해결책; 문제 풀이
    • 6–10. 기기 미디어 선택하기
      • 문제; 해결책; 문제 풀이
    • 6–11. MediaStore에 저장하기
      • 문제; 해결책; 문제 풀이
    • 정리
    •  
  • 07장_라이브러리 활용
    • 7–1. 자바 JAR 라이브러리 만들기
      • 문제; 해결책; 문제 풀이
    • 7–2. 자바 JAR 라이브러리의 활용
      • 문제; 해결책; 문제 풀이
    • 7–3. 안드로이드 라이브러리 프로젝트의 생성
      • 문제; 해결책; 문제 풀이
    • 7–4. 안드로이드 라이브러리 프로젝트의 활용
      • 문제; 해결책; 문제 풀이
    • 7–5. 차트
      • 문제; 해결책; 문제 풀이
    • 7–6. 현실적인 푸시 메시지
      • 문제; 해결책; 문제 풀이
    • 정리
    •  
  • 부록A_안드로이드 스크립팅 레이어
    • SL4A의 설치
    • SL4A 살펴보기
      • 셸 스크립트 추가
      • 리눅스 셸 접근
    • 파이썬 인터프리터 설치
    • 파이썬을 활용한 스크립팅
    •  
  • 부록B_안드로이드 NDK
    • NDK 설치
    • NDK 살펴보기
    • NDK에서 온 안부 인사
      • 안드로이드 SDK를 활용한 NDKGreetings의 빌드와 실행
      • 이클립스를 활용한 NDKGreetings 빌드와 실행
    • NDK 예제
    •  
  • 부록C_앱 설계 가이드라인
    • C–1. 앱 필터링 설계
      • 문제; 해결책; 문제 풀이
    • C–2. 고성능 앱 설계하기
      • 문제; 해결책; 문제 풀이
    • C–3. 빠르게 반응하는 앱의 설계
      • 문제; 해결책; 문제 풀이
    • C–4. 다른 앱과 잘 호환되는 앱의 설계
      • 문제; 해결책; 문제 풀이

예제코드 관련 GitHub 페이지

도서 소개자료

관련 글


엮인 글

엮인 글 주소: http://wikibook.co.kr/android-recipe/trackback/