핵심만 골라 배우는 젯팩 컴포즈
땅끝
2023-11-12 08:33
237
0
본문
핵심만 골라 배우는 젯팩 컴포즈
도서명 : 핵심만 골라 배우는 젯팩 컴포즈
저자/출판사 : 닐,스미스,저자,글,김모세,번역, 제이펍
쪽수 : 592쪽
출판일 : 2022-12-16
ISBN : 9791192469553
정가 : 32000
옮긴이 머리말 xxiv
베타리더 후기 xxv
CHAPTER 1 들어가며 1
1.1 코틀린 개발자에게 2
1.2 코틀린을 처음 접하는 개발자에게 2
1.3 샘플 코드 다운로드 2
CHAPTER 2 안드로이드 스튜디오 개발 환경 설정 3
2.1 시스템 요구사항 3
2.2 안드로이드 스튜디오 패키지 다운로드 4
2.3 안드로이드 스튜디오 설치 4
2.4 안드로이드 스튜디오 설치 마법사 6
2.5 추가 안드로이드 SDK 패키지 설치하기 8
2.6 커맨드라인에서 안드로이드 SDK 도구에 접근할 수 있도록 설정하기 10
2.7 안드로이드 스튜디오 메모리 관리 13
2.8 안드로이드 스튜디오 및 SDK 업데이트 14
2.9 정리 14
CHAPTER 3 컴포즈 프로젝트 개요 15
3.1 프로젝트 개요 15
3.2 프로젝트 만들기 16
3.3 액티비티 만들기 16
3.4 프로젝트 및 SDK 설정 정의하기 17
3.5 예제 프로젝트 미리 보기 19
3.6 메인 액티비티 살펴보기 21
3.7 미리 보기 업데이트 25
3.8 정리 26
CHAPTER 4 컴포즈 예제 프로젝트 27
4.1 시작하기 27
4.2 템플릿 코드 삭제하기 27
4.3 컴포저블의 계층 구조 28
4.4 DemoText 컴포저블 추가하기 29
4.5 DemoText 컴포저블 미리 보기 30
4.6 DemoSlider 컴포저블 추가하기 31
4.7 DemoScreen 컴포저블 추가하기 32
4.8 DemoScreen 컴포저블 미리 보기 34
4.9 대화형 모드에서 테스트하기 35
4.10 프로젝트 완료하기 36
4.11 정리 36
CHAPTER 5 안드로이드 스튜디오에서 AVD 만들기 37
5.1 안드로이드 가상 기기 개요 37
5.2 에뮬레이터 시작하기 39
5.3 AVD에서 애플리케이션 실행하기 40
5.4 여러 기기에서 실행하기 42
5.5 애플리케이션 실행 중지하기 43
5.6 다크 테마 지원하기 43
5.7 별도의 창에서 에뮬레이터 실행하기 44
5.8 기기 프레임 활성화하기 46
5.9 정리 46
CHAPTER 6 안드로이드 스튜디오 에뮬레이터 이용 및 설정하기 47
6.1 에뮬레이터 환경 47
6.2 에뮬레이터 툴바 옵션 48
6.3 줌 모드 다루기 49
6.4 에뮬레이터 창 크기 조정하기 49
6.5 확장 제어 옵션 49
6.6 스냅샷 다루기 52
6.7 지문 에뮬레이션 설정하기 53
6.8 도구 창 모드의 에뮬레이터 55
6.9 정리 55
CHAPTER 7 안드로이드 스튜디오 사용자 인터페이스 살펴보기 56
7.1 시작 화면 56
7.2 기본 창 57
7.3 도구 창 59
7.4 안드로이드 스튜디오 키보드 단축키 62
7.5 스위처 및 최근 파일 탐색 63
7.6 안드로이드 스튜디오 테마 변경하기 64
7.7 정리 65
CHAPTER 8 물리적 안드로이드 기기에서 안드로이드 스튜디오 앱 테스트하기 66
8.1 ADB 개요 66
8.2 안드로이드 기기에서 USB 디버깅 ADB 활성화하기 67
8.3 USB 연결 문제 해결하기 70
8.4 안드로이드 기기의 무선 디버깅 활성화하기 71
8.5 adb 연결 테스트하기 73
8.6 정리 73
CHAPTER 9 안드로이드 스튜디오 코드 편집기 기본 74
9.1 안드로이드 스튜디오 편집기 74
9.2 코드 모드 78
9.3 편집기 창 분리하기 78
9.4 코드 자동 완성 79
9.5 스테이트먼트 자동 완성 80
9.6 파라미터 정보 81
9.7 파라미터 이름 힌트 81
9.8 코드 생성 81
9.9 코드 접기 83
9.10 빠른 문서 탐색 84
9.11 코드 형식 재지정 85
9.12 샘플 코드 찾기 86
9.13 실시간 템플릿 86
9.14 정리 87
CHAPTER 10 안드로이드 아키텍처 개요 88
10.1 안드로이드 소프트웨어 스택 88
10.2 리눅스 커널 89
10.3 안드로이드 런타임(ART) 89
10.4 안드로이드 라이브러리 89
10.5 애플리케이션 프레임워크 90
10.6 애플리케이션 91
10.7 정리 91
CHAPTER 11 코틀린 개요 92
11.1 코틀린이란 무엇인가? 92
11.2 코틀린과 자바 93
11.3 자바에서 코틀린으로 변환하기 93
11.4 코틀린과 안드로이드 스튜디오 93
11.5 코틀린을 이용해 실험하기 94
11.6 코틀린에서의 세미콜론 95
11.7 정리 95
CHAPTER 12 코틀린 데이터 타입, 변수, 널 허용 96
12.1 코틀린 데이터 타입 96
12.2 뮤터블 변수 100
12.3 이뮤터블 변수 100
12.4 뮤터블/이뮤터블 변수 선언하기 100
12.5 데이터 타입은 객체다 101
12.6 타입 애너테이션과 타입 추론 102
12.7 널 허용 타입 103
12.8 안전 호출 연산자 104
12.9 not-null 어서션 105
12.10 널 허용 타입과 let 함수 105
12.11 초기화 지연 107
12.12 엘비스 연산자 108
12.13 타입 캐스팅 및 타입 확인 108
12.14 정리 109
CHAPTER 13 코틀린 연산자와 표현식 110
13.1 코틀린의 표현식 구문 110
13.2 기본 할당 연산자 110
13.3 코틀린 산술 연산자 111
13.4 증강 할당 연산자 111
13.5 증가/감소 연산자 112
13.6 등치 연산자 113
13.7 부울 논리 연산자 114
13.8 범위 연산자 114
13.9 비트와이즈 연산자 115
13.10 정리 118
CHAPTER 14 코틀린
제어 흐름 119
14.1 반복 제어 흐름 119
14.2 조건부 제어 흐름 124
14.3 정리 127
CHAPTER 15 코틀린 함수와 람다 128
15.1 함수란 무엇인가? 128
15.2 코틀린에서의 함수 선언 128
15.3 코틀린 함수 호출하기 129
15.4 단일 표현식 함수 130
15.5 로컬 함수 130
15.6 반환값 다루기 131
15.7 기본 함수 파라미터 선언하기 131
15.8 가변 길이 함수 파라미터 132
15.9 람다 표현식 132
15.10 고차 함수 134
15.11 정리 135
CHAPTER 16 코틀린 객체 지향 프로그래밍 기초 136
16.1 객체란 무엇인가? 136
16.2 클래스란 무엇인가? 136
16.3 코틀린 클래스 정의하기 136
16.4 클래스에 프로퍼티 추가하기 137
16.5 메서드 정의하기 138
16.6 클래스 인스턴스 선언 및 초기화하기 138
16.7 기본 및 보조 생성자 138
16.8 초기화 블록 141
16.9 메서드 호출과 프로퍼티 접근 141
16.10 커스텀 접근자 142
16.11 중첩된 내부 클래스 143
16.12 컴패니언 객체 144
16.13 정리 146
CHAPTER 17 상속과 서브클래싱 147
17.1 상속, 클래스, 서브클래스 147
17.2 서브클래싱 구문 147
17.3 코틀린 상속 예시 149
17.4 서브클래스 기능 확장하기 150
17.5 상속된 메서드 오버라이드하기 150
17.6 커스텀 보조 생성자 추가하기 152
17.7 SavingsAccount 클래스 이용하기 153
17.8 정리 153
CHAPTER 18 컴포즈 개요 154
18.1 컴포즈 이전의 개발 154
18.2 컴포즈의 선언적 구문 155
18.3 컴포즈는 데이터 주도적이다 156
18.4 정리 156
CHAPTER 19 컴포저블 함수 개요 157
19.1 컴포저블 함수란 무엇인가? 157
19.2 상태 컴포저블과 비상태 컴포저블 158
19.3 컴포저블 함수 구문 158
19.4 파운데이션 컴포저블과 머티리얼 컴포저블 161
19.5 정리 162
CHAPTER 20 컴포즈 상태와 재구성 163
20.1 상태 163
20.2 재구성 163
20.3 StateExample 프로젝트 만들기 164
20.4 컴포저블에서 상태 선언하기 164
20.5 단방향 데이터 흐름 168
20.6 상태 호이스팅 170
20.7 환경 설정 변경을 통한 상태 저장하기 173
20.8 정리 174
CHAPTER 21 CompositionLocal 175
21.1 CompositionLocal 이해하기 175
21.2 CompositionLocal 이용하기 176
21.3 CompLocalDemo 프로젝트 만들기 177
21.4 레이아웃 디자인하기 178
21.5 CompositionLocal 상태 추가하기 179
21.6 CompositionLocal 상태에 접근하기 180
21.7 디자인 테스트하기 180
21.8 정리 182
CHAPTER 22 컴포즈 Slot API 183
22.1 Slot API 이해하기 183
22.2 Slot API 선언하기 184
22.3 Slot API 컴포저블 호출하기 185
22.4 정리 186
CHAPTER 23 컴포즈 Slot API 튜토리얼 187
23.1 프로젝트 개요 187
23.2 SlotApiDemo 프로젝트 만들기 187
23.3 MainActivity 클래스 파일 준비하기 187
23.4 MainScreen 컴포저블 만들기 188
23.5 ScreenContent 컴포저블 추가하기 189
23.6 Checkbox 컴포저블 만들기 190
23.7 ScreenContent Slot API 구현하기 192
23.8 이미지 drawable 리소스 추가하기 193
23.9 TitleImage 컴포저블 만들기 195
23.10 MainScreen 컴포저블 완료하기 195
23.11 프로젝트 미리 보기 197
23.12 정리 198
CHAPTER 24 모디파이어 이용하기 199
24.1 모디파이어 199
24.2 ModifierDemo 프로젝트 만들기 200
24.3 모디파이어 만들기 201
24.4 모디파이어 연결 순서 202
24.5 컴포저블에 모디파이어 지원 추가하기 203
24.6 공통 내장 모디파이어 207
24.7 모디파이어 조합하기 208
24.8 정리 209
CHAPTER 25 Row/Column을 이용해 레이아웃 구성하기 210
25.1 RowColDemo 프로젝트 만들기 210
25.2 Row 컴포저블 211
25.3 Column 컴포저블 212
25.4 Row�� Colum 컴포저블 조합하기 212
25.5 레이아웃 정렬 214
25.6 레이아웃 배열 위치 조정하기 216
25.7 레이아웃 배열 간격 조정하기 218
25.8 Row�� Colum 스코프 모디파이어 219
25.9 스코프 모디파이어 가중치 224
25.10 정리 225
CHAPTER 26 Box 레이아웃 226
26.1 Box 컴포저블 226
26.2 BoxLayout 프로젝트 만들기 226
26.3 TextCell 컴포저블 추가하기 227
26.4 Box 레이아웃 추가하기 227
26.5 Box 정렬 229
26.6 BoxScope 모디파이어 230
26.7 clip() 모디파이어 이용하기 231
26.8 정리 233
CHAPTER 27 커스텀 레이아웃 모디파이어 234
27.1 컴포즈 레이아웃 기본 234
27.2 커스텀 레이아웃 235
27.3 LayoutModifier 프로젝트 만들기 235
27.4 ColorBox 컴포저블 추가하기 235
27.5 커스텀 레이아웃 모디파이어 만들기 236
27.6 기본 위치 237
27.7 레이아웃 모디파이어 완성하기 237
27.8 커스텀 모디파이어 이용하기 239
27.9 정렬 선 다루기 239
27.10 베이스라인 다루기 242
27.11 정리 243
CHAPTER 28 커스텀 레이아웃 구현하기 244
28.1 커스텀 레이아웃 개요 244
28.2 커스텀 레이아웃 구문 244
28.3 커스텀 레이아웃 이용하기 246
28.4 CustomLayout 프로젝트 만들기 246
28.5 CascadeLayout 컴포저블 만들기 247
28.6 CascadeLayout 컴포저블 이용하기 249
28.7 정리 250
CHAPTER 29 ConstraintLayout 251
29.1 ConstraintLayout 소개 251
29.2 ConstraintLayout 동작 원리 251
29.3 크기 설정하기 255
29.4 가이드라인 헬퍼 256
29.5 배리어 헬퍼 256
29.6 정리 258
CHAPTER 30 ConstraintLayout 다루기 259
30.1 ConstraintLayout 호출하기 259
30.2 참조 만들기 259
30.3 참조를 컴포저블에 할당하기 260
30.4 제약 추가하기 260
30.5 ConstraintLayout 프로젝트 만들기 261
30.6 ConstraintLayout 라이브러리 추가하기 262
30.7 커스텀 버튼 컴포저블 추가하기 262
30.8 기본 제약 263
30.9 반대 제약 264
30.10 제약 편향 266
30.11 제약 마진 267
30.12 반대 제약과 편향의 중요성 268
30.13 체인 만들기 271
30.14 가이드라인 이용하기 272
30.15 배리어 이용하기 273
30.16 제약 집합을 이용해 제약 연결 끊기 277
30.17 정리 279
CHAPTER 31 IntrinsicSize 다루기 280
31.1 내재적 측정값 280
31.2 내재적 최대 및 최소 크기 측정값 281
31.3 예시 프로젝트 개요 282
31.4 IntrinsicSizeDemo 프로젝트 만들기 282
31.5 커스텀 텍스트 필드 만들기 282
31.6 Text, Box 컴포넌트 추가하기 283
31.7 최상위 Column 추가하기 284
31.8 프로젝트 테스트하기 285
31.9 IntrinsicSize��Ma 측정값 적용하기 285
31.10 IntrinsicSize��Mi 측정값 적용하기 286
31.11 정리 286
CHAPTER 32 코루틴과 LaunchedEffect 287
32.1 코루틴이란? 287
32.2 스레드와 코루틴 288
32.3 코루틴 스코프 288
32.4 일시 중단 함수 289
32.5 코루틴 디스패처 289
32.6 코루틴 빌더 290
32.7 잡 291
32.8 코루틴: 중지 및 재시작 291
32.9 코루틴 채널 커뮤니케이션 293
32.10 부작용 이해하기 293
32.11 정리 295
CHAPTER 33 리스트와 그리드 296
33.1 표준 리스트와 지연 리스트 296
33.2 Column�� Ro 리스트 다루기 297
33.3 지연 리스트 만들기 297
33.4 ScrollState를 이용해 스크롤 활성화하기 298
33.5 프로그래밍적 스크롤 299
33.6 스티키 헤더 301
33.7 스크롤 위치에 반응하기 303
33.8 지연 그리드 만들기 303
33.9 정리 306
CHAPTER 34 컴포즈 Row/Column 리스트 튜토리얼 307
34.1 ListDemo 프로젝트 만들기 307
34.2 Column 기반 리스트 만들기 307
34.3 리스트 스크롤 활성화하기 309
34.4 수동 스크롤 310
34.5 Row 리스트 예시 312
34.6 정리 313
CHAPTER 35 지연 리스트 튜토리얼 314
35.1 LazyListDemo 프로젝트 만들기 314
35.2 프로젝트에 리스트 데이터 추가하기 315
35.3 XML 데이터 읽기 316
35.4 이미지 로딩 처리하기 317
35.5 리스트 아이템 컴포저블 디자인하기 320
35.6 지연 리스트 만들기 321
35.7 프로젝트 테스트하기 322
35.8 리스트 아이템 클릭하기 322
35.9 정리 324
CHAPTER 36 지연 리스트가 제공하는 스티키 헤더와 스크롤 식별 325
36.1 리스트 아이템 데이터 그룹핑하기 325
36.2 헤더와 아이템 표시하기 325
36.3 스티키 헤더 추가하기 326
36.4 스크롤 위치에 반응하기 328
36.5 스크롤 버튼 추가하기 329
36.6 완성한 앱 테스트하기 331
36.7 정리 331
CHAPTER 37 시각적 애니메이션 332
37.1 AnimateVisibility 프로젝트 만들기 332
37.2 시각적 애니메이션 적용하기 333
37.3 진입/이탈 애니메이션 정의하기 336
37.4 애니메이션 스펙과 애니메이션 이징 337
37.5 애니메이션 반복하기 339
37.6 자식별로 각각 애니메이션 적용하기 339
37.7 애니메이션 자동 시작하기 341
37.8 교차 페이딩 구현하기 342
37.9 정리 343
CHAPTER 38 상태 주도 애니메이션 344
38.1 상태 주도 애니메이션 이해하기 344
38.2 상태 함수로서의 애니메이션 344
38.3 AnimateState 프로젝트 만들기 345
38.4 animateFloatAsState를 이용한 회전 애니메이션 346
38.5 animateColorAsState를 이용한 색상 변경 애니메이션 처리 349
38.6 animateDpAsState를 이용한 움직임 애니메이션 처리하기 352
38.7 스프링 효과 추가하기 354
38.8 키프레임 다루기 356
38.9 여러 애니메이션 조합하기 357
38.10 Animation Inspector 이용하기 359
38.11 정리 361
CHAPTER 39 캔버스 그래픽 그리기 362
39.1 Canvas 컴포넌트 소개 362
39.2 CanvasDemo 프로젝트 만들기 362
39.3 선 그리기와 캔버스 크기 얻기 363
39.4 점선 그리기 364
39.5 사각형 그리기 365
39.6 회전시키기 369
39.7 원과 타원 그리기 370
39.8 그레이디언트 그리기 371
39.9 부채꼴 그리기 374
39.10 경로 그리기 375
39.11 점 그리기 376
39.12 이미지 그리기 378
39.13 정리 380
CHAPTER 40 ViewModel 다루기 381
40.1 안드로이드 젯팩이란 무엇인가? 381
40.2 ‘구식’ 아키텍처 381
40.3 모던 안드로이드 아키텍처 382
40.4 ViewModel 컴포넌트 382
40.5 상태 기반의 ViewModel 구현 383
40.6 ViewModel 상태와 액티비티 연결하기 384
40.7 LiveData를 이용한 ViewModel 구현 385
40.8 액티비티 안에서 ViewModel의 LiveData 관찰하기 386
40.9 정리 387
CHAPTER 41 ViewModel 튜토리얼 388
41.1 프로젝트 개요 388
41.2 ViewModelDemo 프로젝트 만들기 389
41.3 ViewModel 추가하기 389
41.4 MainActivity에서 DemoViewModel에 접근하기 391
41.5 온도 입력 컴포저블 디자인하기 392
41.6 온도 입력 컴포저블 구현하기 393
41.7 사용자 인터페이스 디자인 완료하기 396
41.8 앱 테스트하기 398
41.9 정리 398
CHAPTER 42 안드로이드 SQLite 데이터베이스 개요 399
42.1 데이터베이스 테이블 이해하기 399
42.2 데이터베이스 스키마 소개 400
42.3 열과 데이터 타입 400
42.4 데이터베이스의 행 400
42.5 기본 키 400
42.6 SQLite 401
42.7 구조화된 쿼리 언어(SQL) 401
42.8 AVD에서 SQLite 이용하기 402
42.9 안드로이드 Room 퍼시스턴스 라이브러리 405
42.10 정리 405
CHAPTER 43 Room 데이터베이스와 컴포즈 406
43.1 모던 앱 아키텍처 다시보기 406
43.2 Room 데이터베이스 퍼시스턴스의 핵심 요소 407
43.3 엔티티 이해하기 408
43.4 데이터 접근 객체 411
43.5 Room 데이터베이스 413
43.6 저장소 414
43.7 인메모리 데이터베이스 415
43.8 Database Inspector 416
43.9 정리 416
CHAPTER 44 Room 데이터베이스 및 저장소 튜토리얼 417
44.1 RoomDemo 프로젝트 개요 417
44.2 RoomDemo 프로젝트 만들기 418
44.3 빌드 환경 설정 수정하기 418
44.4 엔티티 구축하기 419
44.5 데이터 접근 객체 만들기 420
44.6 Room 데이터베이스 추가하기 422
44.7 저장소 추가하기 423
44.8 ViewModel 추가하기 425
44.9 사용자 인터페이스 디자인하기 427
44.10 ViewModelProvider Factory 클래스 작성하기 429
44.11 MainScreen 함수 완료하기 431
44.12 RoomDemo 앱 테스트하기 434
44.13 Database Inspector 이용하기 434
44.14 정리 435
CHAPTER 45 내비게이션 436
45.1 내비게이션 이해하기 436
45.2 내비게이션 컨트롤러 선언하기 438
45.3 내비게이션 호스트 선언하기 439
45.4 내비게이션 그래프에 목적지 추가하기 439
45.5 목적지로 이동하기 441
45.6 목적지에 인수 전달하기 442
45.7 하단 내비게이션 바 다루기 444
45.8 정리 446
CHAPTER 46 컴포즈 내비게이션 튜토리얼 447
46.1 NavigationDemo 프로젝트 만들기 447
46.2 NavigationDemo 프로젝트 소개 448
46.3 내비게이션 경로 선언하기 448
46.4 홈 화면 추가하기 448
46.5 웰컴 화면 추가하기 450
46.6 프로필 화면 추가하기 451
46.7 내비게이션 컨트롤러와 호스트 만들기 451
46.8 화면 내비게이션 구현하기 452
46.9 사용자 이름 인수 전달하기 453
46.10 프로젝트 테스트하기 454
46.11 정리 455
CHAPTER 47 하단 내비게이션 바 튜토리얼 456
47.1 BottomBarDemo 프로젝트 만들기 456
47.2 내비게이션 경로 추가하기 457
47.3 바 아이템 디자인하기 457
47.4 바 아이템 리스트 만들기 457
47.5 목적지 화면 추가하기 458
47.6 내비게이션 컨트롤러와 호스트 만들기 460
47.7 내비게이션 바 디자인하기 461
47.8 Scaffold 컴포넌트 다루기 463
47.9 프로젝트 테스트하기 463
47.10 정리 464
CHAPTER 48 제스처 감지하기 465
48.1 컴포즈 제스처 식별 465
48.2 GestureDemo 프로젝트 만들기 465
48.3 클릭 제스처 감지하기 466
48.4 PointerInputScope를 이용해 탭 감지하기 467
48.5 드래그 제스처 감지하기 469
48.6 PointerInputScope를 이용해 드래그 제스처 감지하기 471
48.7 scrollable 모디파이어를 이용해 스크롤하기 472
48.8 스크롤 모디파이어를 이용해 스크롤하기 473
48.9 꼬집기(확대/축소) 제스처 감지하기 475
48.10 회전 제스처 감지하기 477
48.11 변환 제스처 감지하기 478
48.12 정리 479
CHAPTER 49 스와이프 제스처 감지하기 480
49.1 스와이프 제스처와 앵커 480
49.2 스와이프 제스처 감지하기 480
49.3 앵커 맵 선언하기 481
49.4 임계점 선언하기 482
49.5 스와이프를 따라 컴포넌트 이동하기 482
49.6 SwipeDemo 프로젝트 소개 483
49.7 SwipeDemo 프로젝트 만들기 483
49.8 swipeable 상태 및 앵커 설정하기 483
49.9 부모 박스 디자인하기 484
49.10 프로젝트 테스트하기 487
49.11 정리 487
CHAPTER 50 코틀린 플로 488
50.1 플로 이해하기 488
50.2 FlowDemo 프로젝트 만들기 489
50.3 프로젝트에 뷰 모델 추가하기 490
50.4 플로 선언하기 490
50.5 플로 데이터 방출하기 491
50.6 데이터를 상태로 수집하기 492
50.7 중재자를 사용해 데이터 변환하기 493
50.8 플로 데이터 수집하기 495
50.9 플로 버퍼 추가하기 497
50.10 종단 플로 연산자 498
50.11 플로 평탄화 499
50.12 여러 플로 조합하기 501
50.13 핫/콜드 플로 502
50.14 스테이트플로 503
50.15 셰어드플로 504
50.16 콜드 플로를 핫 플로로 전환하기 506
50.17 정리 507
CHAPTER 51 젯팩 컴포즈 셰어드플로 튜토리얼 508
51.1 프로젝트 소개 508
51.2 SharedFlowDemo 프로젝트 만들기 508
51.3 프로젝트에 뷰 모델 추가하기 509
51.4 세어드플로 선언하기 510
51.5 플로값 수집하기 511
51.6 SharedFlowDemo 앱 테스트하기 512
51.7 백그라운드에서 플로 다루기 513
51.8 정리 515
CHAPTER 52 컴포즈 테마 적용 다루기 516
52.1 머티리얼 디자인 2와 머티리얼 디자인 3 516
52.2 머티리얼 디자인 2 테마 적용 517
52.3 머티리얼 디자인 3 테마 적용 520
52.4 커스텀 테마 구현하기 522
52.5 정리 523
CHAPTER 53 머티리얼 디자인 3 테마 적용 튜토리얼 524
53.1 ThemeDemo 프로젝트 만들기 524
53.2 머티리얼 디자인 3 라이브러리 추가하기 524
53.3 사용자 인터페이스 디자인하기 525
53.4 새로운 테마 만들기 527
53.5 프로젝트에 테마 추가하기 528
53.6 동적 색상 활성화하기 529
53.7 정리 530
CHAPTER 54 안드로이드 앱 번들 생성, 테스트, 업로드 531
54.1 릴리스 준비 프로세스 531
54.2 안드로이드 앱 번들 531
54.3 구글 플레이 개발자 콘솔 계정 등록하기 532
54.4 콘솔에서 앱 설정하기 533
54.5 구글 플레이 앱 서명 활성화하기 534
54.6 키스토어 파일 만들기 535
54.7 안드로이드 앱 번들 만들기 537
54.8 테스트 APK 파일 만들기 538
54.9 구글 플레이 개발자 콘솔에 앱 번들 업로드하기 540
54.10 앱 번들 살펴보기 541
54.11 테스터 관리하기 543
54.12 테스트용 앱 배포하기 543
54.13 새 앱 번들 버전 업로드하기 544
54.14 앱 번들 파일 분석하기 545
54.15 정리 546
CHAPTER 55 안드로이드 스튜디오의 그레이들 개요 547
55.1 그레이들 개요 547
55.2 그레이들과 안드로이드 스튜디오 548
55.2.1 합리적인 기본값 548 / 55.2.2 디펜던시 548
55.2.3 빌드 변형 548 / 55.2.4 매니페스트 항목 549
55.2.5 APK 서명 549 / 55.2.6 프로가드 지원 549
55.3 속성 및 설정 그레이들 빌드 파일 549
55.4 최상위 수준 그레이들 빌드 파일 550
55.5 모듈 수준 그레이들 빌드 파일 551
55.6 빌드 파일에서 서명 설정하기 554
55.7 커맨드라인에서 그레이들 태스크 실행하기 555
55.8 정리 556
찾아보기 558
도서명 : 핵심만 골라 배우는 젯팩 컴포즈
저자/출판사 : 닐,스미스,저자,글,김모세,번역, 제이펍
쪽수 : 592쪽
출판일 : 2022-12-16
ISBN : 9791192469553
정가 : 32000
옮긴이 머리말 xxiv
베타리더 후기 xxv
CHAPTER 1 들어가며 1
1.1 코틀린 개발자에게 2
1.2 코틀린을 처음 접하는 개발자에게 2
1.3 샘플 코드 다운로드 2
CHAPTER 2 안드로이드 스튜디오 개발 환경 설정 3
2.1 시스템 요구사항 3
2.2 안드로이드 스튜디오 패키지 다운로드 4
2.3 안드로이드 스튜디오 설치 4
2.4 안드로이드 스튜디오 설치 마법사 6
2.5 추가 안드로이드 SDK 패키지 설치하기 8
2.6 커맨드라인에서 안드로이드 SDK 도구에 접근할 수 있도록 설정하기 10
2.7 안드로이드 스튜디오 메모리 관리 13
2.8 안드로이드 스튜디오 및 SDK 업데이트 14
2.9 정리 14
CHAPTER 3 컴포즈 프로젝트 개요 15
3.1 프로젝트 개요 15
3.2 프로젝트 만들기 16
3.3 액티비티 만들기 16
3.4 프로젝트 및 SDK 설정 정의하기 17
3.5 예제 프로젝트 미리 보기 19
3.6 메인 액티비티 살펴보기 21
3.7 미리 보기 업데이트 25
3.8 정리 26
CHAPTER 4 컴포즈 예제 프로젝트 27
4.1 시작하기 27
4.2 템플릿 코드 삭제하기 27
4.3 컴포저블의 계층 구조 28
4.4 DemoText 컴포저블 추가하기 29
4.5 DemoText 컴포저블 미리 보기 30
4.6 DemoSlider 컴포저블 추가하기 31
4.7 DemoScreen 컴포저블 추가하기 32
4.8 DemoScreen 컴포저블 미리 보기 34
4.9 대화형 모드에서 테스트하기 35
4.10 프로젝트 완료하기 36
4.11 정리 36
CHAPTER 5 안드로이드 스튜디오에서 AVD 만들기 37
5.1 안드로이드 가상 기기 개요 37
5.2 에뮬레이터 시작하기 39
5.3 AVD에서 애플리케이션 실행하기 40
5.4 여러 기기에서 실행하기 42
5.5 애플리케이션 실행 중지하기 43
5.6 다크 테마 지원하기 43
5.7 별도의 창에서 에뮬레이터 실행하기 44
5.8 기기 프레임 활성화하기 46
5.9 정리 46
CHAPTER 6 안드로이드 스튜디오 에뮬레이터 이용 및 설정하기 47
6.1 에뮬레이터 환경 47
6.2 에뮬레이터 툴바 옵션 48
6.3 줌 모드 다루기 49
6.4 에뮬레이터 창 크기 조정하기 49
6.5 확장 제어 옵션 49
6.6 스냅샷 다루기 52
6.7 지문 에뮬레이션 설정하기 53
6.8 도구 창 모드의 에뮬레이터 55
6.9 정리 55
CHAPTER 7 안드로이드 스튜디오 사용자 인터페이스 살펴보기 56
7.1 시작 화면 56
7.2 기본 창 57
7.3 도구 창 59
7.4 안드로이드 스튜디오 키보드 단축키 62
7.5 스위처 및 최근 파일 탐색 63
7.6 안드로이드 스튜디오 테마 변경하기 64
7.7 정리 65
CHAPTER 8 물리적 안드로이드 기기에서 안드로이드 스튜디오 앱 테스트하기 66
8.1 ADB 개요 66
8.2 안드로이드 기기에서 USB 디버깅 ADB 활성화하기 67
8.3 USB 연결 문제 해결하기 70
8.4 안드로이드 기기의 무선 디버깅 활성화하기 71
8.5 adb 연결 테스트하기 73
8.6 정리 73
CHAPTER 9 안드로이드 스튜디오 코드 편집기 기본 74
9.1 안드로이드 스튜디오 편집기 74
9.2 코드 모드 78
9.3 편집기 창 분리하기 78
9.4 코드 자동 완성 79
9.5 스테이트먼트 자동 완성 80
9.6 파라미터 정보 81
9.7 파라미터 이름 힌트 81
9.8 코드 생성 81
9.9 코드 접기 83
9.10 빠른 문서 탐색 84
9.11 코드 형식 재지정 85
9.12 샘플 코드 찾기 86
9.13 실시간 템플릿 86
9.14 정리 87
CHAPTER 10 안드로이드 아키텍처 개요 88
10.1 안드로이드 소프트웨어 스택 88
10.2 리눅스 커널 89
10.3 안드로이드 런타임(ART) 89
10.4 안드로이드 라이브러리 89
10.5 애플리케이션 프레임워크 90
10.6 애플리케이션 91
10.7 정리 91
CHAPTER 11 코틀린 개요 92
11.1 코틀린이란 무엇인가? 92
11.2 코틀린과 자바 93
11.3 자바에서 코틀린으로 변환하기 93
11.4 코틀린과 안드로이드 스튜디오 93
11.5 코틀린을 이용해 실험하기 94
11.6 코틀린에서의 세미콜론 95
11.7 정리 95
CHAPTER 12 코틀린 데이터 타입, 변수, 널 허용 96
12.1 코틀린 데이터 타입 96
12.2 뮤터블 변수 100
12.3 이뮤터블 변수 100
12.4 뮤터블/이뮤터블 변수 선언하기 100
12.5 데이터 타입은 객체다 101
12.6 타입 애너테이션과 타입 추론 102
12.7 널 허용 타입 103
12.8 안전 호출 연산자 104
12.9 not-null 어서션 105
12.10 널 허용 타입과 let 함수 105
12.11 초기화 지연 107
12.12 엘비스 연산자 108
12.13 타입 캐스팅 및 타입 확인 108
12.14 정리 109
CHAPTER 13 코틀린 연산자와 표현식 110
13.1 코틀린의 표현식 구문 110
13.2 기본 할당 연산자 110
13.3 코틀린 산술 연산자 111
13.4 증강 할당 연산자 111
13.5 증가/감소 연산자 112
13.6 등치 연산자 113
13.7 부울 논리 연산자 114
13.8 범위 연산자 114
13.9 비트와이즈 연산자 115
13.10 정리 118
CHAPTER 14 코틀린
제어 흐름 119
14.1 반복 제어 흐름 119
14.2 조건부 제어 흐름 124
14.3 정리 127
CHAPTER 15 코틀린 함수와 람다 128
15.1 함수란 무엇인가? 128
15.2 코틀린에서의 함수 선언 128
15.3 코틀린 함수 호출하기 129
15.4 단일 표현식 함수 130
15.5 로컬 함수 130
15.6 반환값 다루기 131
15.7 기본 함수 파라미터 선언하기 131
15.8 가변 길이 함수 파라미터 132
15.9 람다 표현식 132
15.10 고차 함수 134
15.11 정리 135
CHAPTER 16 코틀린 객체 지향 프로그래밍 기초 136
16.1 객체란 무엇인가? 136
16.2 클래스란 무엇인가? 136
16.3 코틀린 클래스 정의하기 136
16.4 클래스에 프로퍼티 추가하기 137
16.5 메서드 정의하기 138
16.6 클래스 인스턴스 선언 및 초기화하기 138
16.7 기본 및 보조 생성자 138
16.8 초기화 블록 141
16.9 메서드 호출과 프로퍼티 접근 141
16.10 커스텀 접근자 142
16.11 중첩된 내부 클래스 143
16.12 컴패니언 객체 144
16.13 정리 146
CHAPTER 17 상속과 서브클래싱 147
17.1 상속, 클래스, 서브클래스 147
17.2 서브클래싱 구문 147
17.3 코틀린 상속 예시 149
17.4 서브클래스 기능 확장하기 150
17.5 상속된 메서드 오버라이드하기 150
17.6 커스텀 보조 생성자 추가하기 152
17.7 SavingsAccount 클래스 이용하기 153
17.8 정리 153
CHAPTER 18 컴포즈 개요 154
18.1 컴포즈 이전의 개발 154
18.2 컴포즈의 선언적 구문 155
18.3 컴포즈는 데이터 주도적이다 156
18.4 정리 156
CHAPTER 19 컴포저블 함수 개요 157
19.1 컴포저블 함수란 무엇인가? 157
19.2 상태 컴포저블과 비상태 컴포저블 158
19.3 컴포저블 함수 구문 158
19.4 파운데이션 컴포저블과 머티리얼 컴포저블 161
19.5 정리 162
CHAPTER 20 컴포즈 상태와 재구성 163
20.1 상태 163
20.2 재구성 163
20.3 StateExample 프로젝트 만들기 164
20.4 컴포저블에서 상태 선언하기 164
20.5 단방향 데이터 흐름 168
20.6 상태 호이스팅 170
20.7 환경 설정 변경을 통한 상태 저장하기 173
20.8 정리 174
CHAPTER 21 CompositionLocal 175
21.1 CompositionLocal 이해하기 175
21.2 CompositionLocal 이용하기 176
21.3 CompLocalDemo 프로젝트 만들기 177
21.4 레이아웃 디자인하기 178
21.5 CompositionLocal 상태 추가하기 179
21.6 CompositionLocal 상태에 접근하기 180
21.7 디자인 테스트하기 180
21.8 정리 182
CHAPTER 22 컴포즈 Slot API 183
22.1 Slot API 이해하기 183
22.2 Slot API 선언하기 184
22.3 Slot API 컴포저블 호출하기 185
22.4 정리 186
CHAPTER 23 컴포즈 Slot API 튜토리얼 187
23.1 프로젝트 개요 187
23.2 SlotApiDemo 프로젝트 만들기 187
23.3 MainActivity 클래스 파일 준비하기 187
23.4 MainScreen 컴포저블 만들기 188
23.5 ScreenContent 컴포저블 추가하기 189
23.6 Checkbox 컴포저블 만들기 190
23.7 ScreenContent Slot API 구현하기 192
23.8 이미지 drawable 리소스 추가하기 193
23.9 TitleImage 컴포저블 만들기 195
23.10 MainScreen 컴포저블 완료하기 195
23.11 프로젝트 미리 보기 197
23.12 정리 198
CHAPTER 24 모디파이어 이용하기 199
24.1 모디파이어 199
24.2 ModifierDemo 프로젝트 만들기 200
24.3 모디파이어 만들기 201
24.4 모디파이어 연결 순서 202
24.5 컴포저블에 모디파이어 지원 추가하기 203
24.6 공통 내장 모디파이어 207
24.7 모디파이어 조합하기 208
24.8 정리 209
CHAPTER 25 Row/Column을 이용해 레이아웃 구성하기 210
25.1 RowColDemo 프로젝트 만들기 210
25.2 Row 컴포저블 211
25.3 Column 컴포저블 212
25.4 Row�� Colum 컴포저블 조합하기 212
25.5 레이아웃 정렬 214
25.6 레이아웃 배열 위치 조정하기 216
25.7 레이아웃 배열 간격 조정하기 218
25.8 Row�� Colum 스코프 모디파이어 219
25.9 스코프 모디파이어 가중치 224
25.10 정리 225
CHAPTER 26 Box 레이아웃 226
26.1 Box 컴포저블 226
26.2 BoxLayout 프로젝트 만들기 226
26.3 TextCell 컴포저블 추가하기 227
26.4 Box 레이아웃 추가하기 227
26.5 Box 정렬 229
26.6 BoxScope 모디파이어 230
26.7 clip() 모디파이어 이용하기 231
26.8 정리 233
CHAPTER 27 커스텀 레이아웃 모디파이어 234
27.1 컴포즈 레이아웃 기본 234
27.2 커스텀 레이아웃 235
27.3 LayoutModifier 프로젝트 만들기 235
27.4 ColorBox 컴포저블 추가하기 235
27.5 커스텀 레이아웃 모디파이어 만들기 236
27.6 기본 위치 237
27.7 레이아웃 모디파이어 완성하기 237
27.8 커스텀 모디파이어 이용하기 239
27.9 정렬 선 다루기 239
27.10 베이스라인 다루기 242
27.11 정리 243
CHAPTER 28 커스텀 레이아웃 구현하기 244
28.1 커스텀 레이아웃 개요 244
28.2 커스텀 레이아웃 구문 244
28.3 커스텀 레이아웃 이용하기 246
28.4 CustomLayout 프로젝트 만들기 246
28.5 CascadeLayout 컴포저블 만들기 247
28.6 CascadeLayout 컴포저블 이용하기 249
28.7 정리 250
CHAPTER 29 ConstraintLayout 251
29.1 ConstraintLayout 소개 251
29.2 ConstraintLayout 동작 원리 251
29.3 크기 설정하기 255
29.4 가이드라인 헬퍼 256
29.5 배리어 헬퍼 256
29.6 정리 258
CHAPTER 30 ConstraintLayout 다루기 259
30.1 ConstraintLayout 호출하기 259
30.2 참조 만들기 259
30.3 참조를 컴포저블에 할당하기 260
30.4 제약 추가하기 260
30.5 ConstraintLayout 프로젝트 만들기 261
30.6 ConstraintLayout 라이브러리 추가하기 262
30.7 커스텀 버튼 컴포저블 추가하기 262
30.8 기본 제약 263
30.9 반대 제약 264
30.10 제약 편향 266
30.11 제약 마진 267
30.12 반대 제약과 편향의 중요성 268
30.13 체인 만들기 271
30.14 가이드라인 이용하기 272
30.15 배리어 이용하기 273
30.16 제약 집합을 이용해 제약 연결 끊기 277
30.17 정리 279
CHAPTER 31 IntrinsicSize 다루기 280
31.1 내재적 측정값 280
31.2 내재적 최대 및 최소 크기 측정값 281
31.3 예시 프로젝트 개요 282
31.4 IntrinsicSizeDemo 프로젝트 만들기 282
31.5 커스텀 텍스트 필드 만들기 282
31.6 Text, Box 컴포넌트 추가하기 283
31.7 최상위 Column 추가하기 284
31.8 프로젝트 테스트하기 285
31.9 IntrinsicSize��Ma 측정값 적용하기 285
31.10 IntrinsicSize��Mi 측정값 적용하기 286
31.11 정리 286
CHAPTER 32 코루틴과 LaunchedEffect 287
32.1 코루틴이란? 287
32.2 스레드와 코루틴 288
32.3 코루틴 스코프 288
32.4 일시 중단 함수 289
32.5 코루틴 디스패처 289
32.6 코루틴 빌더 290
32.7 잡 291
32.8 코루틴: 중지 및 재시작 291
32.9 코루틴 채널 커뮤니케이션 293
32.10 부작용 이해하기 293
32.11 정리 295
CHAPTER 33 리스트와 그리드 296
33.1 표준 리스트와 지연 리스트 296
33.2 Column�� Ro 리스트 다루기 297
33.3 지연 리스트 만들기 297
33.4 ScrollState를 이용해 스크롤 활성화하기 298
33.5 프로그래밍적 스크롤 299
33.6 스티키 헤더 301
33.7 스크롤 위치에 반응하기 303
33.8 지연 그리드 만들기 303
33.9 정리 306
CHAPTER 34 컴포즈 Row/Column 리스트 튜토리얼 307
34.1 ListDemo 프로젝트 만들기 307
34.2 Column 기반 리스트 만들기 307
34.3 리스트 스크롤 활성화하기 309
34.4 수동 스크롤 310
34.5 Row 리스트 예시 312
34.6 정리 313
CHAPTER 35 지연 리스트 튜토리얼 314
35.1 LazyListDemo 프로젝트 만들기 314
35.2 프로젝트에 리스트 데이터 추가하기 315
35.3 XML 데이터 읽기 316
35.4 이미지 로딩 처리하기 317
35.5 리스트 아이템 컴포저블 디자인하기 320
35.6 지연 리스트 만들기 321
35.7 프로젝트 테스트하기 322
35.8 리스트 아이템 클릭하기 322
35.9 정리 324
CHAPTER 36 지연 리스트가 제공하는 스티키 헤더와 스크롤 식별 325
36.1 리스트 아이템 데이터 그룹핑하기 325
36.2 헤더와 아이템 표시하기 325
36.3 스티키 헤더 추가하기 326
36.4 스크롤 위치에 반응하기 328
36.5 스크롤 버튼 추가하기 329
36.6 완성한 앱 테스트하기 331
36.7 정리 331
CHAPTER 37 시각적 애니메이션 332
37.1 AnimateVisibility 프로젝트 만들기 332
37.2 시각적 애니메이션 적용하기 333
37.3 진입/이탈 애니메이션 정의하기 336
37.4 애니메이션 스펙과 애니메이션 이징 337
37.5 애니메이션 반복하기 339
37.6 자식별로 각각 애니메이션 적용하기 339
37.7 애니메이션 자동 시작하기 341
37.8 교차 페이딩 구현하기 342
37.9 정리 343
CHAPTER 38 상태 주도 애니메이션 344
38.1 상태 주도 애니메이션 이해하기 344
38.2 상태 함수로서의 애니메이션 344
38.3 AnimateState 프로젝트 만들기 345
38.4 animateFloatAsState를 이용한 회전 애니메이션 346
38.5 animateColorAsState를 이용한 색상 변경 애니메이션 처리 349
38.6 animateDpAsState를 이용한 움직임 애니메이션 처리하기 352
38.7 스프링 효과 추가하기 354
38.8 키프레임 다루기 356
38.9 여러 애니메이션 조합하기 357
38.10 Animation Inspector 이용하기 359
38.11 정리 361
CHAPTER 39 캔버스 그래픽 그리기 362
39.1 Canvas 컴포넌트 소개 362
39.2 CanvasDemo 프로젝트 만들기 362
39.3 선 그리기와 캔버스 크기 얻기 363
39.4 점선 그리기 364
39.5 사각형 그리기 365
39.6 회전시키기 369
39.7 원과 타원 그리기 370
39.8 그레이디언트 그리기 371
39.9 부채꼴 그리기 374
39.10 경로 그리기 375
39.11 점 그리기 376
39.12 이미지 그리기 378
39.13 정리 380
CHAPTER 40 ViewModel 다루기 381
40.1 안드로이드 젯팩이란 무엇인가? 381
40.2 ‘구식’ 아키텍처 381
40.3 모던 안드로이드 아키텍처 382
40.4 ViewModel 컴포넌트 382
40.5 상태 기반의 ViewModel 구현 383
40.6 ViewModel 상태와 액티비티 연결하기 384
40.7 LiveData를 이용한 ViewModel 구현 385
40.8 액티비티 안에서 ViewModel의 LiveData 관찰하기 386
40.9 정리 387
CHAPTER 41 ViewModel 튜토리얼 388
41.1 프로젝트 개요 388
41.2 ViewModelDemo 프로젝트 만들기 389
41.3 ViewModel 추가하기 389
41.4 MainActivity에서 DemoViewModel에 접근하기 391
41.5 온도 입력 컴포저블 디자인하기 392
41.6 온도 입력 컴포저블 구현하기 393
41.7 사용자 인터페이스 디자인 완료하기 396
41.8 앱 테스트하기 398
41.9 정리 398
CHAPTER 42 안드로이드 SQLite 데이터베이스 개요 399
42.1 데이터베이스 테이블 이해하기 399
42.2 데이터베이스 스키마 소개 400
42.3 열과 데이터 타입 400
42.4 데이터베이스의 행 400
42.5 기본 키 400
42.6 SQLite 401
42.7 구조화된 쿼리 언어(SQL) 401
42.8 AVD에서 SQLite 이용하기 402
42.9 안드로이드 Room 퍼시스턴스 라이브러리 405
42.10 정리 405
CHAPTER 43 Room 데이터베이스와 컴포즈 406
43.1 모던 앱 아키텍처 다시보기 406
43.2 Room 데이터베이스 퍼시스턴스의 핵심 요소 407
43.3 엔티티 이해하기 408
43.4 데이터 접근 객체 411
43.5 Room 데이터베이스 413
43.6 저장소 414
43.7 인메모리 데이터베이스 415
43.8 Database Inspector 416
43.9 정리 416
CHAPTER 44 Room 데이터베이스 및 저장소 튜토리얼 417
44.1 RoomDemo 프로젝트 개요 417
44.2 RoomDemo 프로젝트 만들기 418
44.3 빌드 환경 설정 수정하기 418
44.4 엔티티 구축하기 419
44.5 데이터 접근 객체 만들기 420
44.6 Room 데이터베이스 추가하기 422
44.7 저장소 추가하기 423
44.8 ViewModel 추가하기 425
44.9 사용자 인터페이스 디자인하기 427
44.10 ViewModelProvider Factory 클래스 작성하기 429
44.11 MainScreen 함수 완료하기 431
44.12 RoomDemo 앱 테스트하기 434
44.13 Database Inspector 이용하기 434
44.14 정리 435
CHAPTER 45 내비게이션 436
45.1 내비게이션 이해하기 436
45.2 내비게이션 컨트롤러 선언하기 438
45.3 내비게이션 호스트 선언하기 439
45.4 내비게이션 그래프에 목적지 추가하기 439
45.5 목적지로 이동하기 441
45.6 목적지에 인수 전달하기 442
45.7 하단 내비게이션 바 다루기 444
45.8 정리 446
CHAPTER 46 컴포즈 내비게이션 튜토리얼 447
46.1 NavigationDemo 프로젝트 만들기 447
46.2 NavigationDemo 프로젝트 소개 448
46.3 내비게이션 경로 선언하기 448
46.4 홈 화면 추가하기 448
46.5 웰컴 화면 추가하기 450
46.6 프로필 화면 추가하기 451
46.7 내비게이션 컨트롤러와 호스트 만들기 451
46.8 화면 내비게이션 구현하기 452
46.9 사용자 이름 인수 전달하기 453
46.10 프로젝트 테스트하기 454
46.11 정리 455
CHAPTER 47 하단 내비게이션 바 튜토리얼 456
47.1 BottomBarDemo 프로젝트 만들기 456
47.2 내비게이션 경로 추가하기 457
47.3 바 아이템 디자인하기 457
47.4 바 아이템 리스트 만들기 457
47.5 목적지 화면 추가하기 458
47.6 내비게이션 컨트롤러와 호스트 만들기 460
47.7 내비게이션 바 디자인하기 461
47.8 Scaffold 컴포넌트 다루기 463
47.9 프로젝트 테스트하기 463
47.10 정리 464
CHAPTER 48 제스처 감지하기 465
48.1 컴포즈 제스처 식별 465
48.2 GestureDemo 프로젝트 만들기 465
48.3 클릭 제스처 감지하기 466
48.4 PointerInputScope를 이용해 탭 감지하기 467
48.5 드래그 제스처 감지하기 469
48.6 PointerInputScope를 이용해 드래그 제스처 감지하기 471
48.7 scrollable 모디파이어를 이용해 스크롤하기 472
48.8 스크롤 모디파이어를 이용해 스크롤하기 473
48.9 꼬집기(확대/축소) 제스처 감지하기 475
48.10 회전 제스처 감지하기 477
48.11 변환 제스처 감지하기 478
48.12 정리 479
CHAPTER 49 스와이프 제스처 감지하기 480
49.1 스와이프 제스처와 앵커 480
49.2 스와이프 제스처 감지하기 480
49.3 앵커 맵 선언하기 481
49.4 임계점 선언하기 482
49.5 스와이프를 따라 컴포넌트 이동하기 482
49.6 SwipeDemo 프로젝트 소개 483
49.7 SwipeDemo 프로젝트 만들기 483
49.8 swipeable 상태 및 앵커 설정하기 483
49.9 부모 박스 디자인하기 484
49.10 프로젝트 테스트하기 487
49.11 정리 487
CHAPTER 50 코틀린 플로 488
50.1 플로 이해하기 488
50.2 FlowDemo 프로젝트 만들기 489
50.3 프로젝트에 뷰 모델 추가하기 490
50.4 플로 선언하기 490
50.5 플로 데이터 방출하기 491
50.6 데이터를 상태로 수집하기 492
50.7 중재자를 사용해 데이터 변환하기 493
50.8 플로 데이터 수집하기 495
50.9 플로 버퍼 추가하기 497
50.10 종단 플로 연산자 498
50.11 플로 평탄화 499
50.12 여러 플로 조합하기 501
50.13 핫/콜드 플로 502
50.14 스테이트플로 503
50.15 셰어드플로 504
50.16 콜드 플로를 핫 플로로 전환하기 506
50.17 정리 507
CHAPTER 51 젯팩 컴포즈 셰어드플로 튜토리얼 508
51.1 프로젝트 소개 508
51.2 SharedFlowDemo 프로젝트 만들기 508
51.3 프로젝트에 뷰 모델 추가하기 509
51.4 세어드플로 선언하기 510
51.5 플로값 수집하기 511
51.6 SharedFlowDemo 앱 테스트하기 512
51.7 백그라운드에서 플로 다루기 513
51.8 정리 515
CHAPTER 52 컴포즈 테마 적용 다루기 516
52.1 머티리얼 디자인 2와 머티리얼 디자인 3 516
52.2 머티리얼 디자인 2 테마 적용 517
52.3 머티리얼 디자인 3 테마 적용 520
52.4 커스텀 테마 구현하기 522
52.5 정리 523
CHAPTER 53 머티리얼 디자인 3 테마 적용 튜토리얼 524
53.1 ThemeDemo 프로젝트 만들기 524
53.2 머티리얼 디자인 3 라이브러리 추가하기 524
53.3 사용자 인터페이스 디자인하기 525
53.4 새로운 테마 만들기 527
53.5 프로젝트에 테마 추가하기 528
53.6 동적 색상 활성화하기 529
53.7 정리 530
CHAPTER 54 안드로이드 앱 번들 생성, 테스트, 업로드 531
54.1 릴리스 준비 프로세스 531
54.2 안드로이드 앱 번들 531
54.3 구글 플레이 개발자 콘솔 계정 등록하기 532
54.4 콘솔에서 앱 설정하기 533
54.5 구글 플레이 앱 서명 활성화하기 534
54.6 키스토어 파일 만들기 535
54.7 안드로이드 앱 번들 만들기 537
54.8 테스트 APK 파일 만들기 538
54.9 구글 플레이 개발자 콘솔에 앱 번들 업로드하기 540
54.10 앱 번들 살펴보기 541
54.11 테스터 관리하기 543
54.12 테스트용 앱 배포하기 543
54.13 새 앱 번들 버전 업로드하기 544
54.14 앱 번들 파일 분석하기 545
54.15 정리 546
CHAPTER 55 안드로이드 스튜디오의 그레이들 개요 547
55.1 그레이들 개요 547
55.2 그레이들과 안드로이드 스튜디오 548
55.2.1 합리적인 기본값 548 / 55.2.2 디펜던시 548
55.2.3 빌드 변형 548 / 55.2.4 매니페스트 항목 549
55.2.5 APK 서명 549 / 55.2.6 프로가드 지원 549
55.3 속성 및 설정 그레이들 빌드 파일 549
55.4 최상위 수준 그레이들 빌드 파일 550
55.5 모듈 수준 그레이들 빌드 파일 551
55.6 빌드 파일에서 서명 설정하기 554
55.7 커맨드라인에서 그레이들 태스크 실행하기 555
55.8 정리 556
찾아보기 558
댓글목록0