안드로이드 개발 레벨업 교과서
도서명:안드로이드 개발 레벨업 교과서
저자/출판사:쯔쯔이,순스케,사토야마,나미토,마츠다,쇼이치,사사키도/위키북스
쪽수:524쪽
출판일:2017-06-08
ISBN:9791158390655
목차
▣ 01장: 안드로이드 스튜디오의 편리한 기능을 활용해 효율적으로 개발한다
1.1 안드로이드 스튜디오를 사용해보자
___1.1.1 안드로이드 스튜디오와 그 특징을 이해하자
___1.1.2 새 프로젝트를 만들자
___1.1.3 실제 디바이스에서 동작시켜 보자
___1.1.4 안드로이드 스튜디오의 폴더 구성을 살펴보자
1.2 개발을 빠르게 하는 기능을 활용하자
___1.2.1 안드로이드 스튜디오로 실용적인 개발 환경을 구축하자
___1.2.2 단축키를 이용해 코드를 빠르게 입력하자
___1.2.3 편리한 플러그인을 철저히 활용하자
___1.2.4 편리한 디버그 기능을 활용하자
1.3 안드로이드 스튜디오 2.0의 새로운 개발 환경
___1.3.1 인스턴트 런
___1.3.2 새로운 에뮬레이터를 시험해보자
1.4 정리
▣ 02장: 각 컴포넌트를 복습한다(1): 액티비티와 프래그먼트 기초
2.1 액티비티를 이해하자
___2.1.1 액티비티란?
___2.1.2 액티비티의 수명주기를 이해하자
___2.1.3 액티비티의 백스택을 이해하자
2.2 뷰와 레이아웃을 이해하자
___2.2.1 뷰를 이해하자
___2.2.2 레이아웃을 이해하자
___2.2.3 커스텀 뷰를 만들자
2.3 프래그먼트로 UI를 가진 컴포넌트를 통합하자
___2.3.1 프래그먼트를 이해하자
___2.3.2 프래그먼트 수명주기를 이해하자
___2.3.3 프래먼트를 동적으로 추가ㆍ삭제하자
___2.3.4 중첩 프래그먼트를 이용하자
___2.3.5 UI를 갖지 않는 프래그먼트를 이용하자
2.4 정리
▣ 03장: 각 컴포넌트를 복습한다(2): ContentProvider, Service, BroadcastReceiver 기초
3.1 ContentProvider로 데이터 읽기 쓰기를 구현해보자
___3.1.1 ContentProvider로부터 데이터를 읽어오자
___3.1.2 ContentProvider를 만들자
3.2 BroadcastReceiver로 브로드캐스트 이벤트를 수신하자
___3.2.1 BroadcastReceiver의 기본을 이해하자
___3.2.2 LocalBroadcastReceiver를 이해하자
___3.2.3 브로드캐스트를 수신해 처리할 때 주의할 점을 알아보자
3.3 Service로 백그라운드 처리를 구현하자
___3.3.1 Service의 종류와 수명주기를 이해하자
___3.3.2 상주 서비스를 만들자
___3.3.3 IntentService를 활용하자
▣ 04장: 개발에 도움을 주는 지원 라이브러리 활용법: RecyclerView, CardView, Pallete 활용
4.1 지원 라이브러리로 호환성을 유지하면서 개발을 진행합시다
___4.1.1 지원 라이브러리의 기본을 이해하자
___4.1.2 지원 라이브러리 종류와 특징을 이해하자
4.2 지원 라이브러리 예제를 실행한다
___4.2.1 사용자에게 통지하는 NotificationCompat을 이해하자
4.3 리스트를 표시하는 RecyclerView 위젯을 이용해보자
___4.3.1 RecyclerView의 특징을 이해하자
___4.3.2 RecyclerView로 리스트를 표시하자
___4.3.3 RecyclerView를 커스터마징하자
4.4 정리
▣ 05장: 변경에 강하게 설계한다: MVVM 설계 기법의 이해와 라이브러리 활용
5.1 다양한 설계 기법을 이해하자
___5.1.1 MVP를 이해하자
___5.1.2 MVVM을 이해하자
5.2 액티비티 클래스에 플랫하게 구현해보자
___5.2.1 어떤 앱을 만들지 생각하자
___5.2.2 앱에 사용할 화면과 기능을 이해하자
___5.2.3 구현 방법을 확인하자
___5.2.4 패키지 구분법을 확인하자
___5.2.5 리포지토리 화면을 이해하자
___5.2.6 고찰과 깨달음
5.3 MVP를 사용하자
___5.3.1 패키지가 나뉜 것을 확인하자
___5.3.2 MVP로 안드로이드 프로젝트를 구현하자
___5.3.3 고찰과 깨달음
5.4 MVVM을 사용하자
___5.4.1 데이터 바인딩을 사용해보자
___5.4.2 데이터 바인딩으로 MVVM을 사용해보자
___5.4.3 패키지 구조를 확인하자
___5.4.4 리포지토리 화면을 이해하자
___5.4.5 고찰과 깨달음
5.5 정리
▣ 06장: 빌드 시스템을 이해하고 커스터마이징한다: 그레이들의 이해
6.1 그레이들의 기본을 이해하자
___6.1.1 그레이들의 특징을 파악하자
___6.1.2 Android Gradle 플러그인 특징을 이해하자
___6.1.3 안드로이드의 빌드 파일을 살펴보자
___6.1.4 모듈의 build.gradle을 이해하자
___6.1.5 그레이들의 태스크를 이해하자
6.2 안드로이드 그레이들 플러그인을 활용해 개발 효율을 높이자
___6.2.1 안드로이드 그레이들 플러그인의 설정을 이해하자
___6.2.2 상황에 맞게 프로젝트를 커스터마이징하자
___6.2.3 빌드 변형을 이해하자
6.3 커맨드라인으로 실행하자
___6.3.1 커맨드라인에서 실행하는 장점
___6.3.2 빌드
___6.3.3 응용 조작을 마스터하자
6.4 정리
▣ 07장: 단위 테스트를 이해하자: 단위 테스트 작성
7.1 테스트의 의의와 종류를 이해하자
___7.1.1 테스트를 이해하자
___7.1.2 테스트의 종류를 정리하고 이해하자
7.2 단위 테스트를 작성해 보자
___7.2.1 단위 테스트의 사전준비를 하자
___7.2.2 테스트를 구현하자
7.3 테스트 도입 전략을 세우자
___7.3.1 테스트 도입을 향한 첫걸음
___7.3.2 메서드가 지나치게 길지만 테스트는 작성하고 싶다
___7.3.3 리팩터링 기능 활용
7.4 정리
▣ 08장: UI 테스트를 이해하고 실천한다: UI 테스트 작성
8.1 UI 테스트를 이해하자
___8.1.1 단위 테스트와의 차이를 이해하자
___8.1.2 UI 테스트의 실제
8.2 UI 테스트를 구현하자
___8.2.1 UI 테스트 프레임워크 에스프레소를 활용하자
___8.2.2 에스프레소 사용 환경을 준비하자
___8.2.3 에스프레소를 이해하자
8.3 테스트를 더 깊이 이해하고 활용하자
___8.3.1 다른 앱과의 연계와 홈 화면에서의 동작을 테스트하자
___8.3.2 테스트 운영 방침을 정하자
8.4 정리
▣ 09장: 자동화로 매우 빠른 개발 환경을 만든다: CI 기초
9.1 CI의 의미를 이해하자
___9.1.1 CI의 기초를 이해하자
___9.1.2 CI로 해야 할 일과 시점을 이해하자
___9.1.3 CI의 하루를 생각해 보자
9.2 안드로이드 앱 개발에 CI를 도입하자
___9.2.1 Jenkins와 Circle CI를 이해하자
___9.2.2 Jenkins를 동작시키자
___9.2.3 빌드를 자동화하자
___9.2.4 테스트를 자동화하자
___9.2.5 인스펙션을 자동화하자
___9.2.6 디플로이를 자동화하자
___9.2.7 Circle CI의 기본을 이해하자
9.3 정리
▣ 10장: 디자인을 이해하고 사용하기 쉬운 앱을 만든다: 엔지니어도 알 수 있는 디자인의 기초
10.1 디자인의 기본을 이해하자
___10.1.1 ‘색’과 ‘폰트’를 이해하자
___10.1.2 콘텐츠를 위한 레이아웃을 이해하자
___10.1.3 사진 사용법에 주의하자
10.2 디자인 진행 방법을 전략적으로 생각하자
___10.2.1 디자인의 경쟁자 조사를 하자
___10.2.2 콘셉트 테스트를 실시하자
10.3 앱 제작을 성공으로 이끌자
___10.3.1 행동과 목표를 명확히 하자
___10.3.2 3단계 프로토타이핑을 알자
10.4 정리
▣ 11장: 머티리얼 디자인을 이해한다: 머티리얼 디자인 가이드라인의 이해
11.1 머티리얼 디자인을 파악하자
___11.1.1 지금까지의 소프트웨어 UI와의 차이를 이해하자
___11.1.2 머티리얼 디자인을 활용하자
11.2 대표적인 컴포넌트를 이해하자
___11.2.1 리스트와 그리드 리스트, 카드의 특징을 이해하자
___11.2.2 버튼과 피드백을 이해하자
___11.2.3 인터랙션을 분석하자
11.3 정리
▣ 12장: 머티리얼 디자인을 구현한다: 안드로이드 디자인 지원 라이브러리의 활용
12.1 적용할 준비를 하자
___12.1.1 OS 버전별로 이용할 머티리얼 디자인의 요소를 결정하자
___12.1.2 머티리얼 디자인 테마를 적용하자
12.2 부분 적용할 수 있는 디자인 요소를 이해하자
___12.2.1 리플 이펙트(물결 효과)를 구현하자
___12.2.2 Elevation과 Shadow를 이해하자
___12.2.3 컬러 팔레트를 정의하자
12.3 머티리얼 디자인의 UI 요소를 구현하자
___12.3.1 Android Design Support Library를 도입하자
___12.3.2 NavigationView를 구현하자
___12.3.3 TabLayout으로 탭을 구현하자
___12.3.4 AppBar의 동작을 제어하자
___12.3.5 FloatingActionButton과 SnackBar를 적용하자
12.4 정리
▣ 13장: 안전한 앱을 만든다: 보****검사
13.1 안드로이드 보****모델을 이해하자
___13.1.1 안드로이드 소프트웨어 스택과 보****
___13.1.2 리눅스의 보****모델을 이해하자
___13.1.3 Permission에 관해 이해하자
___13.1.4 Runtime Permission에 관해 이해하자
___13.1.5 앱 간의 Permission을 이해하자
13.2 보안에 강한 앱을 만들자
___13.2.1 서명 검증을 구현하자
___13.2.2 외부로부터의 입력 데이터를 검증하자
___13.2.3 디딤돌 공격을 받지 않기 위해
___13.2.4 데이터를 저장하자
___13.2.5 난독화하자
___13.2.6 동적 코드 로딩을 이해하자
___13.2.7 HTTPS 통신을 이해하자
13.3 과거 사례로부터 배워 안전성이 높은 앱을 만들자
___13.3.1 비공개 데이터를 앱에 공개해 버린 사례에서 배우자
___13.3.2 WebView의 과거 사례에서 배우자
___13.3.3 OS의 취약성을 이해하자
___13.3.4 안전성이 높은 앱으로 완성하자
13.4 정리
▣ 14장: 척척 움직이는 경쾌한 앱으로 완성한다: 병목 개선
14.1 앱을 척척 움직이게 하는 달성 기준을 알자
___14.1.1 척척 움직이는 앱이란 어떤 것일까
___14.1.2 척척 동작하는 앱을 만드는 데 필요한 지식을 정리하자
14.2 병목을 발견하자
___14.2.1 StrictMode로 확인하자
___14.2.2 프로파일러를 활용하자
14.3 레이아웃을 최적화해 성능을 높이자
___14.3.1 lint로 다양한 문제를 검사하자
___14.3.2 GPU Overdraw로 불필요한 그리기의 중복을 없애자
___14.3.3 Hierarchy Viewer로 레이아웃 구조를 파악하자
14.4 메모리를 의식하고 개발하자
___14.4.1 다양한 메모리 상황을 확인하자
___14.4.2 LeakCanary를 활용해 메모리 누수를 방지하자
14.5 그밖의 최적화 방법을 이해하자
14.6 정리
▣ 15장: 모네타이즈를 실현한다: 인앱 결제 구현
15.1 모네타이즈를 이해하자
___15.1.1 모네타이즈의 기본을 이해하자
___15.1.2 광고 모델을 이해하자
___15.1.3 과금 모델을 이해하자
___15.1.4 모네타이즈 모델을 조합하자
15.2 인앱 결제를 구현하자
___15.2.1 In-App Billing(IAB)의 기본을 이해하자
___15.2.2 인앱 상품 관리를 이해하자
___15.2.3 결제 처리 구현 환경을 준비하자
___15.2.4 IInAppBillingService.aidl로 IAB를 구현하자
___15.2.5 매번 과금을 구현하자
15.3 IAB를 테스트하자
___15.3.1 테스트 전략을 세우자
___15.3.2 정적 응답으로 단위 테스트를 하자
___15.3.3 테스트 계정으로 결합 테스트를 하자
___15.3.4 실제 결제로 운영 테스트를 하자
15.4 정리
▣ 16장: 지문인증 API를 활용한다: 지문인증 구현
16.1 지문인증을 이해하자
___16.1.1 지문인증 관련 API를 이해하자
___16.1.2 지문인증을 앱에 내장하자
___16.1.3 디바이스의 잠금화면을 앱에서 이용하자
___16.1.4 지원 단말을 확인하자
16.2 지문인증 관련 API를 구현하자
___16.2.1 구글의 예제 코드를 확인하자
___16.2.2 Fingerprint Authentication을 구현하자
___16.2.3 Confirm Credential을 구현하자
16.3 정리
▣ 17장: 앱의 장점을 전하자: 앱 공개
17.1 개발자 콘솔을 활용해 한발 앞서가는 릴리스를 구현하자
___17.1.1 알파 버전/베타 버전을 활용하자
___17.1.2 apk를 나누어 릴리스하자
17.2 사용자 설치 수를 자세히 이해하자
___17.2.1 A/B 테스트로 페이지 전환율을 높이자
___17.2.2 설치에 관한 데이터를 이해하자
17.3 사용자에게 적절히 앱을 전달하자
___17.3.1 앱이 문제없이 동작하는지 파악하자
___17.3.2 사용자의 리뷰를 확인하고 응답하자
___17.3.3 릴리스 빈도와 방법을 최적화하자
17.4 정리
▣ 18장: 공개한 앱을 성장시키자: 그로스 핵
18.1 설치 수를 늘리자
___18.1.1 유입 채널을 점검하자
___18.1.2 자연 유입과 ASO를 이해하자
___18.1.3 채널별로 효과가 높은 유도에 힘을 쏟자
___18.1.4 프로모션과 광고를 정리하자
18.2 일상에서 많이 사용되는 앱을 목표로 하자
___18.2.1 지표를 모두 찾아내 개선점을 파악하자
___18.2.2 개선책을 실시하자
___18.2.3 처음 시작할 때 효과적으로 앱을 소개하자
___18.2.4 앱을 널리 퍼뜨리자
18.3 정리
▣ 19장: 푸시를 활용해 실시간으로 정보를 전달한다: GCM의 이해
19.1 푸시 알림의 장점과 이용법을 이해하자
___19.1.1 푸시 알림의 기본을 이해하자
___19.1.2 로컬 푸시와 리모트 푸시의 차이를 알자
___19.1.3 푸시 알림을 효과적으로 사용하자
19.2 리모트 푸시를 구현하자
___19.2.1 GCM과 아키텍처를 이해하자
___19.2.2 구글의 예제 코드를 실행해 보자
___19.2.3 GCM을 구현하자(클라이언트)
___19.2.4 서버에서 푸시를 구현하자
19.3 GCM을 활용하자 ~ GCM 주제 메시징 ~
___19.3.1 구독한 사람에게만 푸시하자
19.4 정리