간편결제, 신용카드 청구할인
인터파크 롯데카드 5% (30,780원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (22,680원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (25,920원)
(최대할인 4만원 / 2만원 이상 결제)
Close

실무에 바로 적용하는 안드로이드 프로그래밍 [개정판]

원제 : Android Programming: The Big Nerd Ranch Guide
소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 67
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

36,000원

  • 32,400 (10%할인)

    1,800P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 출고완료 후 14일 이내 마이페이지에서 적립받기한 경우만 적립됩니다.
추가혜택
배송정보
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서(8)

  • 사은품(10)

출판사 서평

이 책은 빅 너드 랜치(Big Nerd Ranch)의 유명한 안드로이드 훈련 캠프 과정의 노하우를 기반으로 집필되었다. 따라서 안드로이드 프로그래밍에 필요한 지식이나 기법을 단순히 나열하고 알려주는 것이 아니라, 여러분이 직접 앱을 만들어가면서 관련 지식이나 기법들을 단계적으로 이해하고 배울 수 있도록 이끌어준다.

아마존 No. 1 안드로이드 서적!
8개의 앱을 직접 만들며 배우는 안드로이드 프로그맹!


이 책은 빅 너드 랜치(Big Nerd Ranch)의 유명한 안드로이드 훈련 캠프 과정의 노하우를 기반으로 집필되었다. 따라서 이 책을 통해서 최신 안드로이드의 핵심적인 개념을 배울 수 있고, API에 관한 명쾌한 설명과 더불어 직접 애플리케이션을 작성하면서 안드로이드 프로그래밍의 기초부터 고급 기법까지 배울 수 있다. 또한, 이 책에서는 안드로이드 애플리케이션 개발에 필요한 실제적인 기법을 가르치는 데 초점을 둔다. 안드로이드 스튜디오로 직접 코드를 작성하고 실행하여 이 책의 여러 애플리케이션을 만들어보자. 자신의 안드로이드 프로그래밍 능력이 부쩍 향상되는 것을 체감할 것이다. 각 장의 설명과 프로젝트는 안드로이드 애플리케이션 개발을 시작하는 데 필요한 지식과 경험을 제공하기 위해 설계되고 테스트되었다.

이 책의 구성
이 책에서는 8개의 안드로이드 앱을 작성한다. 어떤 것들은 매우 간단해서 한 장으로 끝나지만, 어떤 것들은 복잡해서 여러 장에 걸쳐 만들어진다. 그중 가장 복잡하고 긴 앱은 11개 장에 걸쳐 개발된다. 모든 앱은 저마다 중요한 개념과 기법을 가르치도록 설계되어 있어, 이 책을 읽으면서 앱을 작성하다 보면 어느새 여러분이 숙련된 안드로이드 프로그래머가 된 것을 느끼게 될 것이다.

제2판에서 달라진 것
베스트셀러였던 1판에 이어 이번 개정판에서는 안드로이드 스튜디오를 사용해서 안드로이드 앱을 개발하는 방법을 보여준다. 그리고 롤리팝에서 새로 소개된 툴바와 머티리얼(material) 디자인이 추가되었다. 또한, 지원 라이브러리의 새로운 도구인 RecyclerView와 구글 플레이 서비스의 설명 및 사용 코드도 추가되었다. 이외에도 표준 라이브러리의 SoundPool, 애니메이션(animation), 에셋(asset)에 관해서도 다룬다.

추천사

빅 너드 랜치에서는 수많은 개발자가 안드로이드 앱을 능숙하게 개발하는 데 필요한 교육 훈련을 제공하고 있다. 이 책은 그 교육의 진수를 모아놓은 것이며, 자신의 실력을 향상하고자 하는 누구에게나 큰 도움을 줄 것이다.
- 마이크 쉐이버(Mike Shaver) / 페이스북의 모바일 엔지니어링 담당 임원

안드로이드에 입문하려는 개발자는 물론이고 어느 정도 경험 있는 개발자도 꼭 읽어야 할 책이다. 나는 이 책의 명쾌함에 감명을 받았다. 안드로이드의 쉽고 어려운 주제 모두를 정말 이해하기 쉽게 설명하고 있다.
- 제임스 스틸(James Steele) / [Android Developer's Cookbook] 저자

목차

1장 처음 만드는 안드로이드 애플리케이션
앱 기본사항
안드로이드 프로젝트 생성하기
사용자 인터페이스 레이아웃 만들기
레이아웃 XML에서 뷰 객체로
위젯을 코드와 연결하기
토스트 만들기
에뮬레이터에서 실행하기
안드로이드 앱 빌드 절차

2장 안드로이드와 모델-뷰-컨트롤러
새로운 클래스 만들기
모델-뷰-컨트롤러와 안드로이드
뷰 계층 수정하기
컨트롤러 계층 수정하기
장치에서 실행하기
아이콘 추가하기
챌린지
챌린지- 리스너를 TextView에 추가하기
챌린지- 이전 버튼 추가하기
챌린지- Button을 ImageButton으로 변경하기

3장 액티비티 생명주기
액티비티 생명주기 로깅하기
장치 회전과 액티비티 생명주기
장치 회전 시 데이터 저장하기
액티비티 생명주기 다시 알아보기
onSaveInstanceState(Bundle) 테스트하기
로깅 레벨과 관련 메서드들

4장 안드로이드 앱의 디버깅
예외와 스택 기록
안드로이드 특유의 디버깅

5장 두 번째 액티비티 만들기
두 번째 액티비티 준비하기
액티비티 시작시키기
액티비티 간의 데이터 전달
안드로이드가 액티비티를 어떻게 알까?
챌린지

6장 안드로이드 SDK 버전과 호환성
안드로이드 SDK 버전
호환성과 안드로이드 프로그래밍
안드로이드 개발자 문서 사용하기
챌린지- 빌드 버전 보여주기

7장 UI 프래그먼트와 프래그먼트 매니저
UI 유연성의 필요
프래그먼트 개요
CriminalIntent 앱 개발 시작하기
UI 프래그먼트의 호스팅
UI 프래그먼트 생성하기
UI Fragment를 FragmentManager에 추가하기
프래그먼트 사용 시의 애플리케이션 아키텍처
지원 라이브러리의 프래그먼트가 좋은 이유
각 안드로이드 버전의 표준 라이브러리 사용

8장 레이아웃과 위젯으로 사용자 인터페이스 생성하기
Crime 업그레이드하기
레이아웃 변경하기
위젯을 코드와 연결하기
XML 레이아웃 속성 더 자세히 알아보기
그래픽 레이아웃 도구 사용하기
챌린지- 날짜의 형식 만들기

9장 RecyclerView로 리스트 보여주기
CriminalIntent의 모델 계층 변경하기
프래그먼트의 호스팅을 위한 추상 액티비티
RecyclerView, Adapter, ViewHolder
리스트 항목의 커스터마이징
리스트 항목 선택에 응답하기
ListView와 GridView
싱글톤

10장 프래그먼트 인자 사용하기
프래그먼트로부터 액티비티 시작시키기
프래그먼트 인자
리스트를 다시 로드하기
프래그먼트로부터 결과 받기
챌린지- 효율적으로 RecyclerView를 다시 로드하기
프래그먼트 인자를 사용하는 이유가 뭘까?

11장 ViewPager 사용하기
CrimePagerActivity 생성하기
FragmentStatePagerAdapter vs. FragmentPagerAdapter
ViewPager가 실제로 동작하는 방법
코드에서 뷰의 레이아웃 처리하기

12장 대화상자
AppCompat 라이브러리
DialogFragment 생성하기
두 프래그먼트 간에 데이터 전달하기
챌린지- 더 많은 대화상자 만들기
챌린지- 응답 가능한 DialogFragment

13장 툴바
AppCompat 라이브러리
메뉴
계층적 내비게이션 활성화하기
대체 액션 항목
툴바 vs 액션 바
챌린지- 범죄 데이터 삭제하기
챌린지- 복수형 문자열 리소스
챌린지- 텅 빈 RecyclerView

14장 SQLite 데이터베이스
스키마 정의하기
데이터베이스 생성하기
CrimeLab의 코드 삭제
데이터베이스에 데이터 쓰기
데이터베이스의 데이터 읽기
애플리케이션 컨텍스트
챌린지- 범죄(Crime) 데이터 삭제하기

15장 암시적 인텐트
버튼 추가하기
모델 계층에 용의자 추가하기
포맷 문자열 사용하기
암시적 인텐트 사용하기
챌린지- ShareCompat
챌린지- 또 다른 암시적 인텐트

16장 인텐트를 사용한 사진 찍기
사진을 위한 장소
외부 스토리지
카메라 인텐트 사용하기
비트맵 크기 조정과 보여주기
사용할 장치 기능 선언하기
Include 사용하기
챌린지- 큰 사진 보여주기
챌린지- 효율적으로 섬네일 이미지 로드하기

17장 다중 패널 마스터-디테일 인터페이스
레이아웃의 유연성 추가하기
프래그먼트의 보스인 액티비티
장치 크기 결정에 관해 추가로 알아보기

18장 에셋
리소스 형태가 아닌 에셋
BeatBox 생성하기
에셋 가져오기
에셋 알아내기
에셋 사용 코드 추가하기
에셋 파일 액세스하기
openNonAssetFd(...) 메서드

19장 SoundPool을 사용한 오디오 재생
SoundPool 생성하기
음원 로드하기
음원 재생하기
음원 클린업하기
장치의 방향 회전과 객체의 지속성
유보를 할 것인가 말 것인가
장치 회전 처리 시의 추가 고려 사항

20장 스타일과 테마
색상 리소스
스타일
테마
테마 색상 추가하기
테마 속성 오버라이드하기
버튼 속성 변경하기
스타일 상속을 추가로 알아보기
테마 속성 사용하기
챌린지- 적합한 기본 테마

21장 XML drawables
균일한 버튼 만들기
형태 drawable
상태 리스트 drawable
레이어 리스트 drawable
XML drawable을 사용해야 하는 이유
9-patch 이미지
Mipmap 이미지

22장 인텐트와 태스크
NerdLauncher 준비하기
암시적 인텐트 해결하기
런타임 시에 명시적 인텐트 생성하기
태스크와 Back 스택
NerdLauncher를 홈 화면으로 사용하기
챌린지- 앱 아이콘 사용하기
프로세스 vs. 태스크
동시 문서

23장 HTTP & 백그라운드 태스크
PhotoGallery 생성하기
네트워킹 기본
AsyncTask를 사용해서 백그라운드 스레드로 실행하기
Main 스레드
플리커에서 JSON 가져오기
AsyncTask로부터 main 스레드로 돌아오기
AsyncTask 클린업하기
AsyncTask에 관해 추가로 알아보기
AsyncTask의 대안
챌린지- Gson
챌린지- 페이징
챌린지- 열의 개수를 동적으로 조정하기

24장 Looper, Handler, HandlerThread
이미지를 보여주기 위해 RecyclerView 준비하기
다운로드 관련 고려 사항들
main 스레드와 소통하기
백그라운드 스레드 만들기
메시지와 메시지 핸들러
AsyncTask vs. Threads
챌린지- 프리로딩과 캐싱
이미지 다운로딩 관련 문제 해결하기

25장 검색
플리커 검색하기
SearchView 사용하기
공유 프레퍼런스를 사용한 간단한 데이터 보존
앱 다듬기
챌린지- 다듬기 한 번 더!

26장 백그라운드 서비스
IntentService 생성하기
서비스의 필요성
새로운 결과 찾기
AlarmManager를 사용한 지연 실행
알람 제어하기
통지(알림)
챌린지- 안드로이드 웨어의 통지
서비스 자세히 알아보기
JobScheduler와 JobServices
동기 어댑터
챌린지- JobService 사용하기

27장 브로드캐스트 인텐트
일반 인텐트 vs. 브로드캐스트 인텐트
장치 부팅 시 앱 깨우기
포그라운드 통지의 필터링
수신자와 오래 실행되는 태스크
로컬 이벤트
프래그먼트의 가시성 검출하기

28장 웹과 웹뷰의 브라우징
플리커 데이터에서 하나 더 알아둘 사항
쉬운 방법- 암시적 인텐트
더 어려운 방법- WebView
WebView에서의 올바른 방향 전환 처리
자바스크립트 객체 추가하기
킷캣의 WebView 기능 향상
챌린지- 브라우저 검색 기록에 Back 버튼 사용하기
챌린지- Non-HTTP 링크 지원하기

29장 커스텀 뷰와 터치 이벤트
DragAndDraw 프로젝트 설정하기
커스텀 뷰 생성하기
터치 이벤트 처리하기
onDraw(...) 내부에서 렌더링하기
챌린지- 상태 정보 저장하기
챌린지- 박스의 방향 회전

30장 속성 애니메이션
장면 생성하기
간단한 속성 애니메이션
여러 애니메이터를 함께 사용하기
다른 애니메이션 API
챌린지

31장 위치와 플레이 서비스
위치와 라이브러리
Locatr 프로젝트 생성하기
플레이 서비스와 위치 테스트를 위한 에뮬레이터 준비하기
Locatr 만들기
구글 플레이 서비스 설정하기
구글 플레이 서비스 사용하기
플리커 사이트 이미지의 지리 데이터 검색
위치 데이터 얻기
플리커 이미지를 찾아 보여주기
챌린지- 진척도 보여주기

32장 구글 맵
플레이 서비스 맵 라이브러리 import하기
안드로이드의 맵 사용
맵 API 설정하기
맵 설정하기
더 많은 위치 데이터 얻기
맵 사용하기

33장 머티리얼 디자인
머티리얼 서피스
애니메이션 도구
뷰 컴포넌트

34장 책을 마무리하며
마지막 챌린지
부담 없는 연락처
감사합니다

부록 A 에뮬레이터에서 한글 사용하기
한글 출력하기
한글 입력하기
애플리케이션에서 한글 입출력하기

찾아보기

본문중에서

안드로이드 애플리케이션을 실행하려면 스마트폰이나 태블릿 등과 같은 실제 장치나 안드로이드 가상 장치(Android Virtual Device, AVD) 중 하나가 필요하다. AVD는 안드로이드 SDK에 포함되어 함께 배포되며, 각 실제 장치와 동일한 런타임 환경으로 실행될 수 있도록 에뮬레이터로 생성되어야 한다. 즉, 에뮬레이터는 실제 장치에서 실행되는 안드로이드 운영체제와 거의 유사하며, 쉽게 말해 개발 컴퓨터에서 안드로이드 운영체제가 따로 실행된다고 보면 된다.
(/ p.29)

지금부터는 우리가 액티비티 사이를 이동할 때 안드로이드 운영체제에서 어떻게 하는지 살펴보자. 우선 GeoQuiz 앱을 실행하면 안드로이드 운영체제는 애플리케이션을 시작시키는 것이 아니라 애플리케이션의 액티비티를 시작시킨다. 조금 더 구체적으로 말하면, 애플리케이션의 론처(launcher) 액티비티를 시작시킨다. GeoQuiz의 경우에는 QuizActivity가 론처 액티비티다.
(/ p.130)

위젯 정의 시에 다른 위젯의 ID를 참조 사용할 때는 id 앞에 +를 넣지 않는다. + 기호는 레이아웃 파일에 처음 나타나는 ID를 생성하는 데 사용되며, android-id 속성에 넣는다. 그리고 필요하다면 다른 곳에서 ID를 생성하기 위해 +를 사용할 수 있다. 그러나 위젯의 android-id 속성에 ID를 포함시키는 것이 레이아웃 파일을 이해하기 쉽다.
(/ p.226)

안드로이드에서 암시적(implicit) 인텐트를 사용하면 장치의 다른 애플리케이션에 있는 액티비티를 시작시킬 수 있다. 명시적(explicit) 인텐트에서는 시작시킬 액티비티 클래스를 우리가 지정하면 안드로이드 운영체제가 그 액티비티를 시작시킨다. 암시적 인텐트에서는 우리가 필요한 작업을 알려주면 그 작업에 적합한 애플리케이션의 액티비티를 안드로이드 운영체제가 찾아서 시작시켜준다.
(/ p.331)

스타일은 멋지다. 속성들의 집합을 한 곳에서 정의한 후 우리가 원하는 어떤 위젯에도 적용할 수 있다. 그러나 스타일에도 단점이 있다. 적용하기를 원하는 각 위젯에 일일이 적용해야 한다. 만일 우리 앱이 더 복잡해서 많은 레이아웃에 버튼들도 많이 있다면? 이 경우 앞에서처럼 BeatBoxButton 스타일을 모든 버튼에 적용하려면 상당히 성가신 일이 될 것이다.
(/ p.430)

저자소개

빌 필립스(Bill Phillips) [저] 신작알림 SMS신청 작가DB보기
생년월일 -
출생지 -
출간도서 0종
판매수 0권

Big Nerd Ranch의 안드로이드 강사이면서 소프트웨어 엔지니어다. 그는 Big Nerd Ranch의 호평받는 안드로이드 교육 훈련 캠프의 교재를 개발하였다. 빌은 모든 것을 깊이 탐구하고 이해하는 열정을 갖고 있으며, 다른 사람들도 그렇게 하도록 도와준다. 한가한 시간에는 독서를 하거나 피아노 연주를 즐겨 한다.

브라이언 하디(Brian Hardy) [저] 신작알림 SMS신청 작가DB보기
생년월일 -
출생지 -
출간도서 0종
판매수 0권

소프트웨어 엔지니어이자 Big Nerd Ranch의 강사다. iOS와 Cocoa 애플리케이션 개발도 하고 있으며, 여가에는 친구나 가족과 함께 시간을 보낸다.

크리스 스튜어트(Chris Stewart) [저] 신작알림 SMS신청 작가DB보기
생년월일 -
출생지 -
출간도서 0종
판매수 0권

빅 너드 랜치의 안드로이드 팀을 맡고 있으며 강의도 한다. 여가에는 자전거 하이킹과 여행을 즐긴다.

크리스틴 마시캐노(Kristin Marsicano) [저] 신작알림 SMS신청 작가DB보기
생년월일 -
출생지 -
출간도서 0종
판매수 0권

빅 너드 랜치의 안드로이드 개발자이자 강사다. 그녀는 소프트웨어 개발과 교육을 접목하는 데 열정을 갖고 있다. 애플리케이션 개발이나 강의를 하지 않을 때는 요리와 요가 그리고 새로운 지식을 습득하거나 한다.

생년월일 -
출생지 -
출간도서 0종
판매수 0권

현재 프리랜서로, 데이터베이스/모바일 시스템 컨설팅과 강의를 하고 있다. 또한, 20년 넘게 데이터베이스와 객체지향 시스템 설계 및 개발 프로젝트와 건설/금융 분야 애플리케이션 개발 등에 참여했다. 새로운 테크놀로지와 다양한 프로그래밍 언어를 사용해서 실무에 활용하고 가르치는 것을 좋아한다. 저서로는 《핵심만 골라 배우는 코틀린 프로그래밍》이 있으며, 번역서로는 《핵심만 골라 배우는 안드로이드 스튜디오 3 & 프로그래밍》, 《실무에 적용하는 안드로이드 프로그래밍(제2판)》, 《Learn Android Studio》, 《SQLite 마스터북(제2판)》, 《프로 오브젝티브-C 디

펼쳐보기

이 상품의 시리즈

(총 37권 / 현재구매 가능도서 7권)

펼쳐보기

컴퓨터/인터넷 분야에서 많은 회원이 구매한 책

    리뷰

    0.0 (총 0건)

    구매 후 리뷰 작성 시, 북피니언 지수 최대 600점

    리뷰쓰기

    기대평

    작성시 유의사항

    평점
    0/200자
    등록하기

    기대평

    10.0

    교환/환불

    교환/환불 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

    교환/환불 가능 기간

    고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

    교환/환불 비용

    고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

    교환/환불 불가사유

    반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
    배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

    소비자 피해보상

    소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
    교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

    기타

    도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

    배송안내

    • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

    • 배송비

    도서(중고도서 포함) 구매

    2,000원 (1만원이상 구매 시 무료배송)

    음반/DVD/잡지/만화 구매

    2,000원 (2만원이상 구매 시 무료배송)

    도서와 음반/DVD/잡지/만화/
    중고직배송상품을 함께 구매

    2,000원 (1만원이상 구매 시 무료배송)

    업체직접배송상품 구매

    업체별 상이한 배송비 적용