본문내용 바로가기
MD의선택 무료배송 이벤트 사은품 소득공제

실무에 바로 적용하는 안드로이드 프로그래밍

제이펍의 모바일 시리즈 39 | 4판
클로버 리뷰쓰기
  • 정가 : 36,000원
    판매가 : 32,400 [10%↓ 3,600원 할인]
  • 혜택 :
    [기본적립] 1800원 적립 [5% 적립] [추가적립] 5만원 이상 구매 시 2,000원 추가적립 안내 [회원혜택] 회원 등급 별, 3만원 이상 구매 시 2~4% 추가적립 안내 [리뷰적립] 리뷰 작성 시 e교환권 최대 300원 추가적립 안내
  • 추가혜택 : 포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 개정정보 : 이 도서는 가장 최근에 출간된 개정판입니다. 2016년 06월 출간된 구판이 있습니다. 구판 보기
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    09월 23일 출고 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 매장에서 직접 수령 안내 바로드림 혜택
    휴일에는 바로드림 픽업으로 더 빨리 받아 보세요. 바로드림 혜택받고 이용하기

이 책의 이벤트

해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
  • 컴퓨터/IT분야 2만원 이상 구매 시 개발자 매거진 선택 가능
    2021.09.03 ~ 2021.10.03
  • IT 행사도서 포함 3만원 이상 구매시 개발자 책꽂이 사은품 선..
    2021.07.16 ~ 2021.09.30
  • 책을 통해 성장해나가는 개발자를 응원합니다.
    2017.06.22 ~ 2025.07.31
  • MANNING, O'REILLY, PACKT, WILE..
    2016.03.07 ~ 2022.12.31
상품상세정보
ISBN 9791190665827(1190665824)
쪽수 740쪽
크기 191 * 246 * 31 mm /1246g 판형알림
이 책의 원서/번역서 Android Programming / Bill Phillips

책소개

이 책이 속한 분야

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

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

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

상세이미지

안드로이드 프로그래밍(실무에 바로 적용하는)(4판)(제이펍의 모바일 시리즈 39) 도서 상세이미지

목차

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

책 속으로

안드로이드 앱은 고유한 패키지 이름을 가져야한다. 앱이 설치되거나 배포되는 각 장치나 구글 플레이 스토어(Google Play Store)에서 식별이 가능해야 하기 때문이다. 따라서 이름 충돌 가능성을 미연에 방지하기 위해 각자의 인터넷 도메인 이름을 뒤집어서 사용하는 것이 좋지만, 어떤 값을 입력하든 고유한 이름이면 된다. _5p

하지만 프로세스가 종료되면 ViewModel이 처리하지 못한다. 자신이 가진 모든 것이 프로세스와 함께 메모리에서 완전히 제거되기 때문이다. SIS가 주목받는 이유가 바로 이 때문이다. 그런데 S... 더보기

Klover 리뷰 (0)

북로그 리뷰 (0) 쓰러가기

북로그 리뷰는 본인 인증 후 작성 가능합니다.
책이나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 내용은 비공개 처리 될 수 있습니다.
※ 북로그 리뷰 리워드 제공 2021. 4. 1 종료

문장수집 (0) 문장수집 쓰기 나의 독서기록 보기
※구매 후 문장수집 작성 시, 리워드를 제공합니다. 안내

교환/반품/품절안내

※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
    또는 고객센터 (1544-1900)
반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
    해당되는 경우
(1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①서양도서-판매정가의 12%, ②일본도서-판매정가의 7%를 적용)
상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
    소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
    소비자 보호에 관한 법률에 따라 처리함

이 책의 원서/번역서

안내
바로가기
  • 우측 확장형 배너 2
  • 우측 확장형 배너 2
최근 본 상품