본문 바로가기

도서 소개

실무에 바로 적용하는 안드로이드 프로그래밍(제4판)

 

아마존 안드로이드 서적 베스트셀러!

7개의 앱을 직접 따라 만들면서 배우는 실전 안드로이드 프로그래밍!

책 한 권의 과정을 다 마치면 어느새 나도 안드로이드 개발자!

 

도서 구매 사이트(가나다순)

 [교보문고]  [도서11번가]  [반디앤루니스]  [알라딘]  [예스이십사]  [인터파크]  [쿠팡]  

전자책 구매 사이트(가나다순)

 [교보문고]  [구글북스]  [리디북스]  [알라딘]  [예스이십사]  [인터파크

 

출판사 제이펍

저작권사 Big Nerd Ranch Guides

원서명 Android Programming: The Big Nerd Ranch Guide, 4th Edition (ISBN 9780135245125)

저자명 크리스틴 마시캐노, 브라이언 가드너, 빌 필립스, 크리스 스튜어트

역자명 심재철

출판일 2021년 3월 25일

페이지 740쪽

시리즈 아이러브모바일 39(IMobile 39)

판  형 46배판변형(188*245*20)

제  본 무선(soft cover)

정  가 36,000원

ISBN 979-11-90665-82-7 (93000)

키워드 모바일 프로그래밍 / / 안드로이드 / 안드로이드 스튜디오 / android / android studio / 안드로이드 프로그래밍 / 코틀린

분야 모바일 프로그래밍 / 안드로이드

 

관련 사이트

■ 아마존 도서소개 페이지

 저작권사 도서소개 페이지

 

관련 포스트

2021/3/11 - [출간전 책소식] - 최고의 안드로이드 프로그래밍 번역서를 꿈꿉니다!

 

관련 시리즈

I♥Mobile 시리즈

 

관련 도서

빅 너드 랜치의 코틀린 프로그래밍

프로페셔널 안드로이드(제4판)

 

관련 파일 다운로드

 예제 코드 다운로드

 

교재 검토용 증정 안내

■ 학교 및 학원에서 교재 선정을 위해 책을 파일로 검토해보고자 하시는 분들은 다음의 페이지에서 신청 양식을 작성해주시기 바랍니다. 확인 후 연락을 드리도록 하겠습니다. http://goo.gl/vBtPo3

 

강의보조 자료(교재로 채택하신 분들은 메일(textbook@jpub.kr)을 보내주시면 다음의 자료를 보내드리겠습니다.)

■ 본문의 그림과 표

 

샘플 PDF(차례, 옮긴이 머리말, 머리말, 이 책에 대하여, 안드로이드 스튜디오 개발 환경 구성하기, 베타리더 후기, 1장 '처음 만드는 안드로이드 애플리케이션' 일부, 5장 '안드로이드 앱의 디버깅' 일부, 11장 '데이터베이스와 Room 라이브러리' 일부, 19장 '데이터 바인딩과 MVVM' 일부)

 

정오표 페이지

jpub.tistory.com/1144?category=209690

 

도서 구매 사이트(가나다순)

 [교보문고]  [도서11번가]  [반디앤루니스]  [알라딘]  [예스이십사]  [인터파크]  [쿠팡]  

 

전자책 구매 사이트(가나다순)

 [교보문고]  [구글북스]  [리디북스]  [알라딘]  [예스이십사]  [인터파크

 

도서 소개

아마존 안드로이드 서적 베스트셀러!
7개의 앱을 직접 따라 만들면서 배우는 실전 안드로이드 프로그래밍!
책 한 권의 과정을 다 마치면 어느새 나도 안드로이드 개발자!

이 책은 빅 너드 랜치(Big Nerd Ranch)에서 널리 활용하는 안드로이드 훈련 캠프 과정의 노하우를 기반으로 집필되었다. 이 책을 통해서 최신 안드로이드의 핵심적인 개념을 배울 수 있고, API에 관한 명쾌한 설명과 더불어 직접 애플리케이션을 작성하면서 안드로이드 프로그래밍의 기초부터 고급 기법까지 배울 수 있다. 또한 이 책은 코틀린을 사용해서 안드로이드 애플리케이션을 개발하는 데 필요한 실제적인 기법을 가르치는 것에 초점을 두었다.

안드로이드 스튜디오를 사용해서 이 책의 여러 애플리케이션을 만들어 가는 과정을 따라서 직접 코드를 작성하고 실행해 보자. 자신의 안드로이드 프로그래밍 능력이 절로 향상되는 것을 느낄 수 있을 것이다. 각 장의 내용 설명과 앱은 안드로이드 애플리케이션 개발을 시작하는 데 필요한 지식과 경험을 제공하기 위해 설계되었으며, 테스트도 모두 완료했다.

이 책의 대상 독자

  • 실무와 동일하게 프로젝트를 완성하면서 안드로이드 앱 개발을 위한 프로그래밍 기법을 배우고자 하는 입문자
  • 기본 안드로이드 앱 개발 지식은 있지만 실무에 적용할 수 있는 기법과 능력을 더 키우고 싶은 개발자
  • 안드로이드 고급 컴포넌트나 라이브러리(예: Jetpack)를 사용한 안드로이드 앱 개발 기법을 익히고자 하는 개발자

지은이 소개

크리스틴 마시캐노(Kristin Marsicano)
빅 너드 랜치의 수석 엔지니어링 매니저인 동시에 안드로이드 개발자이자 강사다. 그녀는 앱 개발과 교육을 접목하는 데 열정을 갖고 있다. 일을 하지 않을 때는 우쿨렐레를 연주하거나 아이들과 함께 레고를 조립한다.

브라이언 가드너(Brian Gardner)
빅 너드 랜치의 개발자이자 강사다. 항상 배울 것을 찾아 헤매며 최신 안드로이드 라이브러리를 탐구한다. 조지아텍의 머신러닝 석사 과정에 재학 중이다.

빌 필립스(Bill Phillips)
인스타그램의 소프트웨어 엔지니어이자 빅 너드 랜치의 안드로이드 강사였다. 그는 빅 너드 랜치의 안드로이드 교재를 개발하고 가르쳤으며, 이 책의 이전 판 저자이기도 하다. 균형 있는 삶을 추구하며, 일과 음악 작곡 및 오디오 하드웨어 프로젝트 모두를 훌륭히 수행해 내고 있다.

크리스 스튜어트(Chris Stewart)
빅 너드 랜치의 공학 기술 부사장이며, 이전에는 안드로이드 강사도 하였다. 그는 자신의 기술적 능력을 완벽하게 만들기 위해 끊임없이 노력하고 일한다. 컴퓨터 앞에 앉지 않을 때는 자전거 하이킹과 여행을 즐긴다.

 

옮긴이 소개

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

 

차례

Chapter 1 처음 만드는 안드로이드 애플리케이션 1
앱 기본사항 2
안드로이드 프로젝트 생성하기 3
안드로이드 스튜디오 둘러보기 6
UI 레이아웃 디자인하기 8
레이아웃 XML에서 뷰 객체로 18
위젯을 코드와 연결하기 21
토스트 만들기 25
에뮬레이터에서 실행하기 27
AVD 에뮬레이터 기능 살펴보기 35
궁금증 해소하기: 안드로이드 앱 빌드 절차 38
챌린지 40
챌린지: 토스트 커스터마이징 40
안드로이드와 모델-뷰-컨트롤러 41
새로운 클래스 만들기 42
모델-뷰-컨트롤러와 안드로이드 44

Chapter 2 안드로이드와 모델-뷰-컨트롤러 41
새로운 클래스 만들기 42
모델-뷰-컨트롤러와 안드로이드 44
뷰 계층 변경하기 46
컨트롤러 계층 변경하기 49
아이콘 추가하기 53
화면 픽셀 밀도 57
장치에서 실행하기 58
챌린지: TextView에 리스너 추가하기 60
챌린지: PREVIOUS 버튼 추가하기 60
챌린지: Button을 ImageButton으로 변경하기 61

 

더보기

Chapter 3 액티비티 생명주기 63 
GeoQuiz 화면 회전시키기 64 
액티비티 상태와 생명주기 콜백 64 
액티비티 생명주기 로깅하기 67 
로그 메시지 만들기 67 / LogCat 사용하기 70 
액티비티 생명주기가 사용자 액션에 어떻게 응답하는지 살펴보기 71 
일시적으로 액티비티 떠나기 71 / 액티비티 끝내기 74 / 액티비티 회전시키기 75 
장치 구성 변경과 액티비티 생명주기 76 
가로 방향 레이아웃 생성하기 76 
궁금증 해소하기: UI 변경과 다중 창 모드 80 
궁금증 해소하기: 로그 레벨 81 
챌린지: 정답 맞춘 문제를 건너뛰기 82 
챌린지: 점수 보여주기 82 

Chapter 4 UI 상태 유지하기 83 
ViewModel 의존성 추가하기 83 
ViewModel 추가하기 85 
프로세스 종료 시에 데이터 보존하기 95 
ViewModel vs SIS 101 
궁금증 해소하기: Jetpack, AndroidX, 그리고 아키텍처 컴포넌트 103 
궁금증 해소하기: 섣부른 해결책 피하기 105 

Chapter 5 안드로이드 앱의 디버깅 107 
예외와 스택 기록 108 
안드로이드 특유의 디버깅 117 
챌린지: 프로파일러 살펴보기 122 

Chapter 6 두 번째 액티비티 만들기 125 
두 번째 액티비티 준비하기 126 
액티비티 시작시키기 134 
액티비티 간의 데이터 전달 136 
안드로이드가 액티비티를 어떻게 알까? 146 
챌린지: GeoQuiz 허점 보완하기 149 
챌린지: 문제마다 커닝 여부 관리하기 149 

Chapter 7 안드로이드 SDK 버전과 호환성 151 
안드로이드 SDK 버전 151 
호환성과 안드로이드 프로그래밍 153 
안드로이드 개발자 문서 사용하기 160 
챌린지: 장치의 안드로이드 버전 보여주기 163 
챌린지: 커닝 횟수 제한하기 164 

Chapter 8 UI 프래그먼트와 프래그먼트 매니저 165 
UI 유연성의 필요 166 
프래그먼트 개요 167 
CriminalIntent 앱 개발 시작하기 168 
새로운 프로젝트 생성하기 171 
Crime 데이터 클래스 생성하기 172 
UI 프래그먼트 생성하기 173 
CrimeFragment의 레이아웃 정의하기 174 / CrimeFragment 클래스 생성하기 176 
UI 프래그먼트의 호스팅 184 
컨테이너 뷰 정의하기 185 / FragmentManager에 UI 프래그먼트 추가하기 187 
프래그먼트를 사용하는 애플리케이션 아키텍처 192 
프래그먼트 사용 여부 결정하기 193 

Chapter 9 RecyclerView로 리스트 보여주기 195 
새로운 프래그먼트 및 ViewModel 추가하기 197 
프래그먼트에 사용되는 ViewModel 생명주기 199 
RecyclerView 추가하기 201 
항목 뷰 레이아웃 생성하기 204 
ViewHolder 구현하기 206 
어댑터를 구현해 RecyclerView에 데이터 채우기 209 
RecyclerView의 어댑터 설정하기 212 
뷰의 재활용: RecyclerView 214 
리스트 항목의 바인딩 개선하기 214 
리스트 항목 선택에 응답하기 216 
궁금증 해소하기: ListView와 GridView 217 
챌린지: RecyclerView의 ViewType 218 

Chapter 10 레이아웃과 위젯으로 사용자 인터페이스 생성하기 219 
ConstraintLayout 개요 220 
레이아웃 편집기 개요 221 
ConstraintLayout 사용하기 225 
레이아웃 속성을 더 자세히 알아보기 239 
궁금증 해소하기: 마진 vs 패딩 242 
궁금증 해소하기: ConstraintLayout의 다른 기능 243 
챌린지: 날짜 형식 지정하기 244 

Chapter 11 데이터베이스와 Room 라이브러리 245 
Room 아키텍처 컴포넌트 라이브러리 246 
데이터베이스 생성하기 247 
DAO 정의하기 251 
리포지터리 패턴으로 데이터베이스 액세스하기 253 
쿼리 테스트하기 257 
애플리케이션의 스레드 259 
LiveData 사용하기 262 
궁금증 해소하기: 싱글톤 268 

Chapter 12 프래그먼트 간의 이동 269 
단일 액티비티: 프래그먼트의 우두머리 270 
프래그먼트 인자 276 
상세 내역 화면에 보여줄 Crime 객체를 LiveData 변환으로 얻기 280 
데이터베이스 변경하기 285 
궁금증 해소하기: 프래그먼트 인자를 사용하는 이유는 289 
챌린지: 효율적으로 RecyclerView를 다시 로드하기 290 

Chapter 13 대화상자 291 
DialogFragment 생성하기 292 
두 프래그먼트 간의 데이터 전달하기 296 
챌린지: 더 많은 대화상자 만들기 303 

Chapter 14 앱 바 305 
AppCompat의 기본 앱 바 306 
메뉴 308 
안드로이드 애셋 스튜디오 사용하기 316 
궁금증 해소하기: 앱 바 vs 액션 바 vs 툴바 320 
궁금증 해소하기: AppCompat 앱 바 사용하기 321 
챌린지: 텅 빈 뷰를 갖는 RecyclerView 322 

Chapter 15 암시적 인텐트 323 
버튼 추가하기 324 
모델 계층에 용의자 추가하기 326 
포맷 문자열 사용하기 328 
암시적 인텐트 사용하기 330 
챌린지: 또 다른 암시적 인텐트 343 

Chapter 16 인텐트를 사용한 사진 찍기 345 
사진을 위한 장소 345 
파일 스토리지 349 
카메라 인텐트 사용하기 354 
비트맵의 크기 조정과 보여주기 358 
사용하는 장치 기능 선언하기 363 
챌린지: 사진을 확대해서 보여주기 363 
챌린지: 섬네일 이미지 효율적으로 로드하기 364 

Chapter 17 지역화 365 
리소스 지역화하기 366 
구성 수식자 373 
대체 리소스 테스트하기 379 
궁금증 해소하기: 장치 크기 결정하기 380 
챌린지: 날짜를 지역화하기 380 

Chapter 18 접근성 381 
TalkBack 381 
텍스트가 없는 요소를 TalkBack이 읽을 수 있게 만들기 387 
대등한 사용자 경험 만들기 391 
궁금증 해소하기: 접근성 검사기 사용하기 393 
챌린지: 범죄 리스트 접근성 개선하기 396 

Chapter 19 데이터 바인딩과 MVVM 397 
다른 아키텍처가 왜 필요할까? 398 
MVVM 뷰모델 vs Jetpack ViewModel 398 
BeatBox 생성하기 399 
단순 데이터 바인딩 구현하기 400 
애셋 가져오기 405 
애셋 사용하기 407 
애셋 사용 코드 추가하기 409 
데이터 바인딩하기 412 
궁금증 해소하기: 데이터 바인딩 추가로 알아보기 420 
궁금증 해소하기: LiveData와 데이터 바인딩 423 

Chapter 20 단위 테스트와 오디오 재생 425 
SoundPool 생성하기 426 
애셋 사용하기 426 
음원 로드하기 427 
음원 재생하기 429 
테스트 라이브러리 의존성 추가하기 430 
테스트 클래스 생성하기 431 
테스트 설정하기 433 
테스트 작성하기 434 
데이터 바인딩 콜백 441 
음원 내리기 442 
궁금증 해소하기: 통합 테스트 444 
궁금증 해소하기: 모의 객체와 테스트 446 
챌린지: 재생 속도 제어하기 447 
챌린지: 장치 방향 전환 시에도 음원 재생하기 447 

Chapter 21 스타일과 테마 449
색상 리소스 450 
스타일 450 
테마 453 
앱 테마 색상 변경하기 456 
테마 속성 오버라이드하기 458 
버튼 속성 변경하기 462 
궁금증 해소하기: 테마 속성 사용하기 466 

Chapter 22 XML drawable 467 
균일한 버튼 만들기 467 
형태 drawable 469 
상태 리스트 drawable 470 
레이어 리스트 drawable 472 
궁금증 해소하기: XML drawable을 사용해야 하는 이유 474 
궁금증 해소하기: Mipmap 이미지 474 
궁금증 해소하기: 9-패치 이미지 476 
챌린지: 버튼 테마 482 

Chapter 23 인텐트와 태스크 483 
NerdLauncher 생성하기 484 
암시적 인텐트 해결하기 486 
런타임 시에 명시적 인텐트 생성하기 492 
태스크와 Back 스택 494 
NerdLauncher를 홈 화면으로 사용하기 499 
궁금증 해소하기: 프로세스 vs 태스크 501 
궁금증 해소하기: 동시 문서 504 
챌린지: 앱 아이콘 사용하기 506 

Chapter 24 HTTP와 백그라운드 태스크 507 
PhotoGallery 생성하기 508 
Retrofit을 사용한 네트워킹 513 
플리커에서 JSON 가져오기 525 
구성 변경 시의 네트워크 요청 535 
RecyclerView에 응답 결과 보여주기 539 
궁금증 해소하기: 다른 파서와 데이터 형식 540 
궁금증 해소하기: 요청 취소하기 541 
챌린지: 커스텀 Gson 역직렬화 클래스 구현하기 542 
챌린지: 페이징 543 
챌린지: 열의 개수를 동적으로 조정하기 544 

Chapter 25 Looper, Handler, HandlerThread 545 
이미지를 보여주기 위해 RecyclerView 준비하기 545 
URL로부터 이미지 내려받기 준비하기 548 
내려받기 관련 고려 사항 550 
백그라운드 스레드 만들기 551 
메시지와 메시지 핸들러 557 
뷰 생명주기 리스닝하기 570 
유보 프래그먼트 573 
궁금증 해소하기: 이미지 내려받기 문제 해결하기 577 
궁금증 해소하기: StrictMode 578 
챌린지: 프리로딩과 캐싱 579 

Chapter 26 SearchView와 공유 프리퍼런스 581 
플리커 검색하기 582 
SearchView 사용하기 587 
공유 프리퍼런스를 사용한 간단한 데이터 보존 592 
앱 다듬기 597 
챌린지: 한번 더 다듬기 598 

Chapter 27 WorkManager 599 
Worker 생성하기 600 
작업 스케줄링하기 601 
새로운 사진 확인하기 604 
사용자에게 알림 보여주기 608 
폴링의 사용자 제어 제공하기 613 

Chapter 28 브로드캐스트 인텐트 619 
일반 인텐트 vs 브로드캐스트 인텐트 619 
포그라운드 알림 차단하기 620 
수신자와 오래 실행되는 태스크 634 
궁금증 해소하기: 로컬 이벤트 634 
궁금증 해소하기: 브로드캐스트 수신자의 제약 637 

Chapter 29 웹과 WebView의 브라우징 639 
플리커 데이터에서 하나 더 알아둘 사항 640 
쉬운 방법: 암시적 인텐트 641 
더 어려운 방법: WebView 643 
WebView 사용 시의 장치 회전 처리 652 
궁금증 해소하기: 자바스크립트 객체 주입하기 654 
궁금증 해소하기: WebView 업데이트 655 
궁금증 해소하기: 크롬 커스텀 탭(또 다른 쉬운 방법) 655 
챌린지: 브라우저 검색 기록에 백 버튼 사용하기 658 

Chapter 30 커스텀 뷰와 터치 이벤트 659 
DragAndDraw 프로젝트 설정하기 660 
커스텀 뷰 생성하기 660 
터치 이벤트 처리하기 663 
onDraw(Canvas) 내부에서 렌더링하기 667 
궁금증 해소하기: GestureDetector 670 
챌린지: 상태 정보 저장하기 670 
챌린지: 박스의 방향 회전 671 

Chapter 31 속성 애니메이션 673 
장면 생성하기 673 
간단한 속성 애니메이션 676 
여러 애니메이터를 함께 사용하기 685 
궁금증 해소하기: 다른 애니메이션 API 686 
챌린지 687 

Chapter 32 책을 마무리하며 689 
마지막 챌린지 689 
부담 없는 연락처 690 
감사 인사 690 

제이펍 소식 더 보기(제이펍의 소통 채널에서 더욱 다양한 소식을 확인하세요!)

  네이버 책  포스트  유튜브  인스타그램  트위터  페이스북