서브메뉴

본문

안드로이드 with Kotlin 앱 프로그래밍 가이드 (안드로이드 9.0 파이, 자바+코틀린 APP 개발 필독서)
안드로이드 with Kotlin 앱 프로그래밍 가이드 (안드로이드 9.0 파이, 자바+코틀린 APP 개발 필독서)
저자 : 안귀정
출판사 : 아이콕스
출판년 : 2019
정가 : 40000, ISBN : 9791186886892

책소개


자바와 코틀린으로 직접 구현하며 익히는 실전형 앱 프로그래밍 완벽 가이드!
안드로이드 9.0 파이(Pie), Java+Kotlin, 안드로이드 스튜디오 3.2, 실전형 앱 프로젝트
로또번호생성기, 퀴즈잠금화면앱, 펀치력측정앱, 서울시화장실찾기앱, 익명SNS앱 등

“이런 앱이 있다면 좋지 않을까?”라는 가장 기본적인 아이디어로 시작되는 앱 개발!

하지만 알아야 할 자바(Java) 문법과 개념들로 인해 실제 출시까지의 앱 개발 과정은 생각보다 쉽지 않다. 더구나 보다 간결한 문법과 쉬운 기능 구현을 목표로 2011년 JetBrains社에서 발표된 코틀린(Kotlin)이 특유의 장점을 바탕으로 2017년 구글 안드로이드 공식 개발 언어로 채택되면서, 안드로이드 개발을 막 시작하려는 분들에게는 자칫 부담이 커질 수 있는 상황이다. 이에 본 책은 우선 기존의 자바와 코틀린을 비교 설명하고, 모든 실전형 앱 프로젝트들을 자바와 코틀린 각각으로 구현하는 과정을 통하여 보다 쉽고 효율적인 이해를 도울 수 있도록 구성하였다.

목차


머리말
도서 가이드
부록 다운로드
목차

CHAPTER .1 안드로이드 (Android) 소개
1.1 안드로이드란?
1.2 안드로이드의 특징
01 오픈 소스와 무료 라이선스
02 Java와 Kotlin
03 Android Studio
04 빠르고 지속적인 업데이트
1.3 안드로이드의 연혁

CHAPTER .2 개발 환경 구축
2.1 JDK(Java Development Kit) 설치
2.2 Android Studio 설치

CHAPTER .3 안드로이드 베이직 by "Hello World"
3.1 프로젝트(Project) 생성과 실행
3.2 프로젝트의 구조
3.3 프로그래밍의 기본
3.4 컴파일(Compile)과 빌드(Build)
3.5 주석(Comment)의 이해
3.6 시작점(Entry Point)과 매니페스트(Manifest) 파일
3.7 변수와 데이터 형식
3.8 제어와 분기방법(if, else if, else, for, while)
3.9 함수와 메소드(Method), 리소스(Resource)
3.10 객체 지향(OOP)과 클래스(Class), 인스턴스(Instance)
3.11 라이브러리(Library)와 프레임워크(Framework), 콜백(Callback)

CHAPTER .4 Kotlin 실전 프로그래밍
4.1 Kotlin에 대하여
01 Kotlin의 특징
02 학습 주안점
4.2 샘플 앱 제작
01 프로젝트 생성
02 코드 살펴보기
4.3 확장 플러그인(Plug-in)
01 기능과 활용
02 초기 화면 UI 구현
03 Java/Kotlin 공통 UI 구현
04 Java/Kotlin 개별 액티비티(Activity)
05 메인 액티비티 연결
06 Java용 BMI 계산 앱
07 Kotlin용 BMI 계산 앱
4.4 변수
01 변수 선언
02 변수 샘플용 연결 UI
03 공통 UI 구현
04 개별 액티비티
05 메인 액티비티 연결
06 Java 변수 샘플 앱
07 변수의 가변성과 불변성
08 Kotlin 변수 샘플 앱
09 변수의 타입 추론
4.5 프로그램 흐름 제어
01 공통 UI 구현
02 개별 액티비티
03 Java의 if, else, switch
04 Kotlin의 if, else, when
05 Kotlin의 반복문 활용
4.6 함수
01 함수 선언 방법
02 Java의 정적 유틸리티 클래스
03 Kotlin의 최상위 함수
04 Java에서 Kotlin 최상위 함수 사용
05 Java의 함수 디폴트 파라미터
06 Kotlin의 함수의 디폴트 파라미터
07 함수의 이름 붙인 인자
4.7 클래스(Class)
01 테스트 케이스
02 Java/Kotlin 개별 테스트 케이스
03 Getter, Setter 클래스
04 프로퍼티(Property)와 필드(Field)
05 클래스 상속
06 클래스 위임
07 프로퍼티 위임
08 Singleton 패턴 및 Object 클래스
09 Data 클래스
10 클래스의 가시성 변경자
11 내부 클래스와 중첩 클래스
4.8 람다(Lambda)
01 람다란?
02 람다 식의 문법
03 Collection의 함수형 API
4.9 확장 함수
01 확장 함수란?
02 확장 함수의 사용
03 Java의 확장 함수 호출
4.10 널 안전성(Null Safety)
01 Null, Null Pointer Exception(NPE)
02 Kotlin의 타입 시스템, Null 가능성
03 안전한 호출 연산자 ?. 엘비스 연산자 ?:

CHAPTER .5 로또 번호 생성기
5.1 로또 번호 생성 앱이란?
5.2 프로젝트 생성
01 프로젝트와 패키지 네임(Package Name)
02 타겟 플랫폼 및 최소 지원(Minimum SDK) 버전
03 액티비티 템플릿 선택
04 액티비티 생성 마무리
5.3 화면 설계와 액티비티
01 액티비티의 개념
02 화면 설계
03 실습용 액티비티 생성
5.4 인텐트(Intent) 및 화면 전환
01 인텐트의 개념
02 인텐트 실습용 TestActivity
03 다른 액티비티 간 화면 전환
04 인텐트 유형 및 구성 요소
5.5 뷰(View), 뷰 그룹(View Group), 레이아웃(Layout)
01 뷰의 속성
02 뷰 그룹과 레이아웃
5.6 Absolute 레이아웃과 멀티 해상도 지원
01 Absolute 레이아웃이란?
5.7 Linear 레이아웃으로 첫 화면 구현
01 Linear 레이아웃의 개념과 Orientation
02 gravity, layout_gravity 속성
03 Margin
04 Padding
05 weight 속성
06 레이아웃 중첩(nested)
07 메인 화면 UI 완성
5.8 Relative 레이아웃으로 별자리 입력 화면 구현
01 Relative 레이아웃의 개념
02 부모 뷰 기준 배치
03 RTL(Right To Left) 지원
04 형제 뷰 기준 배치
05 Relative 레이아웃으로 화면 완성
5.9 Constraint 레이아웃으로 이름 입력 화면 구현
01 Constraint 레이아웃의 tools:layout_editor 속성
02 Constraint 레이아웃과 제약 관계
03 다른 뷰와의 제약
04 Bias
05 Aspect Ratio
06 Circle 제약
07 가이드라인(Guideline)
08 체인(Chain)
09 Constraint 레이아웃으로 화면 완성
5.10 테마(Theme)와 UI
01 테마의 개념과 컬러 생성
02 테마 생성 및 사용 색 지정
03 액티비티에 테마 지정
5.11 Constraint 레이아웃과 인텐트 복습
01 가이드라인 배치
02 AppCompatTextView 생성
03 로또 공 이미지 배치
04 하단 고정 이미지 추가
05 인텐트 활용한 UI 연결
5.12 Random, Shuffle
01 난수란?
02 Random
03 Shuffle
5.13 Hash Code
01 해시코드의 개념
02 입력된 이름별 로또 번호 생성
03 매일 다른 로또 번호 생성
04 별자리별 로또 번호 생성
5.14 앱 아이콘, 이름, 동적 테마
01 앱의 이름 변경
02 문자열 리소스 및 다국어 지원
03 앱 아이콘 변경
5.15 정리

CHAPTER .6 구글 플레이스토어 개발자 등록 및 배포
6.1 구글 플레이 개발자 등록
01 구글 계정 생성
02 개발자 계정 등록
6.2 플레이스토어 배포
01 Signed APK 생성
02 스토어 등록정보 설정
03 앱 버전 준비
04 콘텐츠 등급 설정
05 가격 및 앱 배포 설정
6.3 정리

CHAPTER .7 퀴즈 잠금화면 앱
7.1 퀴즈 잠금화면 앱이란?
7.2 설정 화면과 앱 데이터 저장
01 프로젝트 생성 및 설정 화면 구현
02 안드로이드 앱 데이터 개요
7.3 파일로 앱 데이터 저장
01 내부 저장소의 앱 전용 디렉토리에 파일 저장
02 외부 저장소 사용 및 권한 요청
03 외부 저장소 앱 전용 디렉토리에 파일 저장
04 외부 저장소 임의 경로에 저장
7.4 SharedPreference
01 SharedPreference 테스트 UI 구현
02 SharedPreference로 앱 데이터 저장
03 PreferenceFragment
7.5 브로드캐스트(BroadcastReceiver)
01 브로드캐스트와 브로드캐스트 리시버(Receiver)
02 브로드캐스트 수신 제한
03 브로드캐스트 매니페스트 등록
04 런타임에 브로드캐스트 리시버 등록
7.6 서비스(Service)
01 서비스의 특징
02 LockScreenService 구현
7.7 퀴즈 잠금 설정화면
01 Preference XML 리소스 제작
02 PreferenceFragment로 환경 설정 UI 구현
7.8 퀴즈 잠금화면 UI
01 잠금화면용 액티비티 UI 구현
02 SeekBar 활용
03 9-Patch 이미지
7.9 퀴즈 잠금화면 앱 마무리
01 화면 꺼짐 후 퀴즈 화면 구현
02 퀴즈 데이터 생성 및 적용
03 SeekBar로 정/오답 체크
04 오답인 경우 진동 알림 구현
05 퀴즈별 정/오답 횟수 저장
06 재부팅 후 자동 실행 설정
7.10 정리 및 도전 과제
01 정리
02 도전 과제

CHAPTER .8 펀치력 측정 앱
8.1 펀치력 측정 앱이란?
8.2 프로젝트 생성과 첫 화면 UI 구현
01 첫 화면 UI 작성
02 결과 화면 UI 작성
8.3 가속도 센서
01 3방향 가속도 센서
02 가속도 센서의 사용법
8.4 구글 게임 서비스 리더보드 연동
01 결과 화면 구현
02 구글 게임 서비스 활성화
03 구글 게임 서비스 리더보드 연동 설정
04 구글 리더보드 코드 구현
05 에뮬레이터 가상 센서 활용
8.5 애니메이션 효과
01 뷰 애니메이션 Translate
02 뷰 애니메이션 Rotate
03 뷰 애니메이션 Scale, Alpha
04 뷰 애니메이션 Callback, Stop
05 속성 애니메이션 Translate, Rotate, Scale, Alpha
06 속성 애니메이션 Background Color Animation
8.6 정리 및 도전 과제
01 정리
02 도전 과제

CHAPTER .9 서울시 화장실 찾기 앱
9.1 서울시 화장실 찾기 앱이란?
9.2 프로젝트 생성
9.3 구글 맵 연동
01 구글 맵 사용 등록
02 프로젝트에 구글 맵 적용
03 구글 맵 포함된 레이아웃 생성
04 구글 맵 연동 코드 작성
9.4 서울 열린 데이터 광장 API 연동
01 회원 가입
02 공공 화장실 위치 API 신청
03 인터넷 사용 권한 요청
04 UI 쓰레드와 네트워크 작업
05 공공 화장실 API 연동 코드 작성
9.5 구글 맵 클러스터링
01 구글 맵 클러스터링이란?
02 ClusterItem 구현
03 ClusterRenderer 구현
04 구글 맵에 ClusterManager 연동
9.6 검색 기능 사용
01 Search Bar UI 제작
02 Search Bar 기능 구현
9.7 정리 및 연습 문제
01 정리
02 연습 문제

CHAPTER .10 Firebase 연동 익명 SNS
10.1 익명 소셜 서비스 앱이란?
10.2 프로젝트 생성 및 화면 설계
10.3 목록 화면 UI 작성
01 메인 화면 구현
02 메인 화면 카드 구성
03 테마 및 컬러 지정
10.4 Firebase 연동
01 Firebase 데이터베이스 소개
02 데이터베이스와 실시간 데이터베이스
03 Firebase 가입
04 Firebase 연동
05 Firebase 연동 테스트
10.5 게시글 작성 화면 및 기능 구현
01 Post, Comment 클래스 구현
02 게시글 작성 레이아웃 구현
03 배경 이미지 목록 카드 UI 작성
04 배경 화면 선택 목록용 RecyclerView 적용
05 Firebase에 게시글 업로드 기능 구현
10.6 게시글 목록 및 상세 보기 기능 구현
01 게시글 목록 보기 기능 구현
02 게시글 상세 보기 UI 구현
03 상세 보기 화면 연결
04 상세 보기 화면 구현
05 댓글 쓰기 기능 구현
10.7 정리 및 연습 문제
01 정리
02 연습 문제

Appendix 부록
▷ 추가 개발정보
11.1 안드로이드 기본 요소 샘플
01 NavigationView, Viewpager, Fragment 예제
02 AlertDialog, DialogFragment 예제
03 ProgressBar, GridView 예제
04 음성 및 동영상 재생/저장
05 SQLite
06 지문 인식
07 Parcelable
08 WebView
09 FCM 푸시
10 지자기, 자이로 센서
11.2 안드로이드 개발 툴 사용
01 ADB 환경 설정
02 자주 사용하는 유용한 ADB 명령어
03 Monkey 테스트
04 안드로이드 스튜디오 Debugger(디버거) 사용 방법
05 Memory Leak과 활용할 수 있는 도구들
11.3 안드로이드 최근 개발 트렌드
01 안드로이드 9(Pie) 변경 사항
02 Android Data Binding
03 Anko 라이브러리
11.4 앱 제작 가이드
01 앱 제작 공통 가이드
02 샘플 앱으로 보는 제작 방법
03 앱 제작을 위한 기능별 용어 정리
04 자주 발생하는 예외 및 에러와 해결 방법
▷ 찾아보기