코틀린으로 배우는 안드로이드 앱 개발 실전 노하우 2/e

$51.03
SKU
9791161759630
+ Wish
[Free shipping over $100]

Standard Shipping estimated by Wed 03/12 - Tue 03/18 (주문일로부 10-14 영업일)

Express Shipping estimated by Fri 03/7 - Tue 03/11 (주문일로부 7-9 영업일)

* 안내되는 배송 완료 예상일은 유통사/배송사의 상황에 따라 예고 없이 변동될 수 있습니다.
Publication Date 2025/02/20
Pages/Weight/Size 188*235*41mm
ISBN 9791161759630
Categories IT 모바일 > 모바일 프로그래밍
Description
이 책은 안드로이드 스튜디오와 코틀린을 활용해 앱을 만드는 기초부터 시작해, 사용자 친화적인 화면 설계, 백그라운드 작업, 데이터 관리, 앱 내비게이션 등 앱 개발의 핵심 기술을 익힐 수 있도록 돕는다. Retrofit, Glide와 같은 필수 라이브러리와 코루틴, 플로우를 사용한 비동기 처리, 의존성 주입과 아키텍처 구성 요소 등 실무에서 꼭 필요한 기술도 자세히 다룬다. 또한, 젯팩 컴포즈를 통해 효율적으로 UI를 개발하고, 앱 테스트 및 구글 플레이 스토어 배포 과정까지 실습을 통해 배우게 된다. 퀴즈 앱, 뉴스 리더, 날씨 앱 등 다양한 프로젝트를 따라 하다 보면 안드로이드 앱 개발의 전반적인 과정을 완벽히 익히고 자신만의 창의적인 앱을 만들 준비가 될 것이다.
Contents
1부 - 안드로이드 기초

01장 첫 번째 앱 만들기


__기술적 요구 사항
__안드로이드 스튜디오를 사용한 안드로이드 프로젝트 생성
____실습 1.01: 앱을 위한 안드로이드 스튜디오 프로젝트 생성
__가상 기기 설정 및 앱 실행
____실습 1.02: 에뮬레이터 설정 및 에뮬레이터에서 앱 실행
__안드로이드 매니페스트
____실습 1.03: 안드로이드 매니페스트 인터넷 권한 설정
__그래들을 사용한 앱 빌드, 구성 및 종속성 관리
____프로젝트 수준의 build.gradle 파일
____앱 수준의 build.gradle 파일
____실습 1.04: 앱에 테마를 적용하기 위해 머티리얼 디자인을 사용하는 방법
__안드로이드 앱 구조
____실습 1.05: 커스텀 인사말 표시를 위한 대화형 UI 요소 추가
____레이아웃 파일에서 뷰에 접근
____추가적인 입력 유효성 검사
____과제 1.01: RGB 색상을 생성하는 앱 제작
__요약

02장 사용자 화면 흐름 생성

__기술적 요구 사항
__액티비티 생명주기
____실습 2.01: 액티비티 콜백 로깅
__액티비티 상태 저장 및 복원
____실습 2.02: 레이아웃에서 상태 저장 및 복원
____실습 2.03: 콜백을 사용해 상태 저장 및 복원
__인텐트를 통한 액티비티 간 상호작용
____실습 2.04: 인텐트 소개
____실습 2.05: 액티비티에서 결과 받기
__인텐트, 태스크 및 실행 모드
____실습 2.06: 액티비티 실행 모드 설정
____과제 2.01: 로그인 양식 만들기
__요약

03장 프래그먼트를 사용한 UI 개발

__기술적 요구 사항
__프래그먼트 생명주기
____onAttach
____onCreate
____onCreateView
____onViewCreated
____onActivityCreated
____onStart
____onResume
____onPause
____onStop
____onDestroyView
____onDestroy
____onDetach
____실습 3.01: 기본 프래그먼트 추가 및 프래그먼트 생명주기
____실습 3.02: 액티비티에 정적 프래그먼트 추가
__정적 프래그먼트와 듀얼 패인 레이아웃
____실습 3.03: 정적 프래그먼트를 사용한 듀얼 패인 레이아웃
__동적 프래그먼트
____실습 3.04: 액티비티에 동적 프래그먼트 추가
__젯팩 Navigation
____실습 3.05: 젯팩 Navigation 그래프 추가
____과제 3.01: 행성 퀴즈 만들기
__요약

04장 앱 내비게이션

__기술적 요구 사항
__내비게이션 개요
__내비게이션 드로어
____실습 4.01: 내비게이션 드로어를 포함한 앱 개발
__바텀 내비게이션
____실습 4.02: 앱에 바텀 내비게이션 추가
__탭 내비게이션
____실습 4.03: 앱 내비게이션을 위한 탭 사용
____과제 4.01: 기본 및 보조 내비게이션 구성
__요약

2부 - 네트워크 호출 표시

05장 필수 라이브러리: Retrofit, Moshi, Glide


__기술적 요구 사항
__REST, API, JSON, XML 소개
__네트워크 엔드포인트에서 데이터 가져오기
____실습 5.01: API에서 데이터 읽기
__JSON 응답 파싱
____실습 5.02: API 응답에서 이미지 URL 추출
__원격 URL에서 이미지 로드
____실습 5.03: 획득한 URL에서 이미지 로드
____과제 5.01: 현재 날씨 표시
__요약

06장 RecyclerView 생성 및 상호작용

__기술적 요구 사항
__레이아웃에 RecyclerView 추가
____실습 6.01: 기본 액티비티에 RecyclerView 추가
__RecyclerView 채우기
____실습 6.02: RecyclerView 채우기
__RecyclerView 클릭 응답
____실습 6.03: 클릭에 대한 응답
__다양한 아이템 유형 지원
____실습 6.04: RecyclerView에 제목 추가
__스와이프를 통한 아이템 제거
____실습 6.05: 스와이프 삭제 기능 추가
__인터랙티브하게 아이템 추가
____실습 6.06: 고양이 추가 버튼 구현
____과제 6.01: 목록 관리
__요약

07장 안드로이드 권한 및 구글 맵스

__기술적 요구 사항
__사용자 권한 요청
____실습 7.01: 위치 권한 요청
__사용자 위치 지도 표시
____실습 7.02: 사용자의 현재 위치 얻기
__지도 클릭과 커스텀 마커
____실습 7.03: 클릭한 위치에 사용자 지정 마커 추가
____과제 7.01: 자동차의 주차 위치를 찾는 앱 만들기
__요약

08장 서비스, WorkManager, 알림

__기술적 요구 사항
__WorkManager를 사용한 백그라운드 작업 시작
____실습 8.01: WorkManager 클래스로 백그라운드 작업 실행
__사용자가 인지할 수 있는 백그라운드 작업: 포어그라운드 서비스
____실습 8.02: 포어그라운드 서비스로 고양이 비밀 요원 작업 현황 파악
____과제 8.01: 물 마시기 알림
__요약

09장 젯팩 컴포즈를 사용한 사용자 인터페이스 구현

__기술적 요구 사항
__젯팩 컴포즈란?
____실습 9.1: 첫 컴포즈 화면
__사용자 액션 처리
____실습 9.02: 사용자 입력 처리
__컴포즈 테마 설정
____실습 9.03: 테마 적용
____기존 프로젝트에 컴포즈 적용
____과제 9.01: 첫 컴포즈 앱
__요약

3부 - 테스트 및 코드 구조

10장 JUnit, Mockito, Espresso를 사용한 단위 테스트와 통합 테스트


__기술적 요구 사항
__테스트 유형
__JUnit
__안드로이드 스튜디오 테스팅 팁
__Mockito
____실습 10.01: 숫자의 합 테스트
__통합 테스트
____Robolectric
____Espresso
____실습 10.02: 이중 통합
__UI 테스트
____젯팩 컴포즈 테스트
____실습 10.03: 랜덤 대기 시간
__TDD
____실습 10.04: TDD를 사용한 숫자 합 계산
____과제 10.01: TDD로 개발하기
__요약

11장 안드로이드 아키텍처 구성 요소

__기술적 요구 사항
__안드로이드 컴포넌트 개요
__ViewModel
____실습 11.1: 공유 ViewModel
__데이터 스트림
____LiveData
____실습 11.02: 라이브 데이터로 관찰
____추가 데이터 스트림
__룸
____엔티티
____DAO
____데이터베이스 설정
____서드파티 프레임워크
____실습 11.03: 간단한 룸 데이터베이스 만들기
____과제 11.01: 쇼핑 메모 앱
__요약

12장 데이터 저장

__기술적 요구 사항
__프리퍼런스와 데이터 스토어
____SharedPreferences
____실습 12.01: SharedPreferences 래핑
____DataStore
____실습 12.02: 프리퍼런스 DataStore
__파일
____내부 저장소
____외부 저장소
____FileProvider
____저장소 액세스 프레임워크(SAF)
____에셋 파일
____실습 12.03: 파일 복사
__범위 지정 저장소
____카메라, 미디어 저장소
____실습 12.04: 사진 촬영
____과제 12.01: 강아지 다운로더
__요약

13장 Dagger, Hilt, Koin을 사용한 의존성 주입

__기술적 요구 사항
__의존성 주입의 필요성
__수동 DI
____실습 13.01: 수동 주입
__Dagger 2
____컨슈머
____프로바이더
____커넥터
____한정자
____스코프
____서브컴포넌트
____실습 13.02: Dagger 주입
__Hilt
____실습 13.03: Hilt 주입
__Koin
____실습 13.04: Koin 주입
____과제 13.01: 주입된 리포지토리
__요약

4부 - 앱 다듬고 배포하기

14장 코루틴 및 플로우


__기술적 요구 사항
__안드로이드에서 코루틴 사용
____코루틴 생성
____프로젝트에 코루틴 추가
____실습 14.01: 안드로이드 앱에서 코루틴 사용
__LiveData 변환
____실습 14.02: LiveData 변환
__안드로이드에서 플로우 사용
____안드로이드에서 플로우 수집
____플로우 빌더로 플로우 생성
____플로우와 연산자 사용
____실습 14.03: 안드로이드 앱에서 플로우 사용
____과제 14.01: TV 가이드 앱 만들기
__요약

15장 아키텍처 패턴

__기술적 요구 사항
__MVVM으로 시작하기
____안드로이드에서 데이터 바인딩 사용
____실습 15.01: 안드로이드 프로젝트에서 데이터 바인딩 사용
__Retrofit과 Moshi 사용
____리포지토리 패턴 구현
____실습 15.02: 안드로이드 프로젝트에서 룸과 함께 리포지토리 사용
__WorkManager 사용
____실습 15.03: 안드로이드 프로젝트에 WorkManager 추가
____과제 15.01: TV 가이드 앱 업데이트
__요약

16장 CoordinatorLayout과 MotionLayout을 사용한 애니메이션 및 전환

__기술적 요구 사항
__액티비티 전환
____XML로 액티비티 전환 추가
____코드로 액티비티 전환 추가
____액티비티 전환을 적용한 액티비티 실행
____실습 16.01: 액티비티 전환 생성
____공유 요소 전환 추가
____공유 요소 전환을 적용한 액티비티 실행
____실습 16.02: 구성 요소 전환 생성
__CoordinatorLayout을 사용한 애니메이션
__MotionLayout을 사용한 애니메이션
____MotionLayout 추가
____MotionLayout으로 애니메이션 생성
____실습 16.03: MotionLayout으로 애니메이션 추가
____모션 에디터
____MotionLayout 디버깅
____MotionLayout 경로 수정
____실습 16.04: 키프레임을 사용한 애니메이션 경로 수정
____과제 16.01: 비밀번호 생성기
__요약

17장 구글 플레이에 앱 출시하기

__출시를 위한 앱 준비
____앱 버저닝
____키스토어 생성
____실습 17.01: 안드로이드 스튜디오에서 키스토어 생성
____키스토어와 비밀번호 저장
____릴리스용 앱 서명
____실습 17.02: 서명된 APK 생성
____안드로이드 앱 번들
____실습 17.03: 서명된 앱 번들 생성
____구글 플레이 앱 서명
__개발자 계정 생성
__구글 플레이에 앱 업로드
____스토어 등록 정보 생성
____출시 준비
____배포
__앱 출시 관리
____릴리스 트랙
____단계적 출시
____관리 게시
____과제 17.01: 앱 게시
__요약
Author
알렉스 포레스터,에란 부즈나,알렉산드루 덤브라반,조마르 티그칼,김윤지,임태규
모바일 및 웹 개발, 콘텐츠 관리 시스템 분야에서 20년 이상 일해 온 경험 많은 소프트웨어 개발자다. 2010년부터 안드로이드를 다뤘고, 스카이(Sky), 자동차 협회(The Automobile Association), HSBC, 디스커버리 채널(Discovery Channel) 및 O2와 같은 대기업을 대상으로 다양한 산업에서 주요 앱을 개발했다. 아내, 딸과 함께 하트퍼드셔에 거주하고 있다. 개발 작업 이외에는 칠턴 힐스에서 럭비와 러닝을 즐긴다.
모바일 및 웹 개발, 콘텐츠 관리 시스템 분야에서 20년 이상 일해 온 경험 많은 소프트웨어 개발자다. 2010년부터 안드로이드를 다뤘고, 스카이(Sky), 자동차 협회(The Automobile Association), HSBC, 디스커버리 채널(Discovery Channel) 및 O2와 같은 대기업을 대상으로 다양한 산업에서 주요 앱을 개발했다. 아내, 딸과 함께 하트퍼드셔에 거주하고 있다. 개발 작업 이외에는 칠턴 힐스에서 럭비와 러닝을 즐긴다.