커니의 코틀린: 차세대 안드로이드 개발자를 위한
프로그래밍 인사이트
Regular price
$31.46
Sale price
Regular price
✈️
Estimated delivery date 예상 배송일
Standard Shipping
불러오는 중...
주문일로부터 8-12 영업일
Express Shipping
불러오는 중...
주문일로부터 6-8 영업일
실무에서 쓰는 라이브러리를 활용하여 프로젝트를 개선하는 법까지 한번에!
자바와 비교해 직관적으로 문법을 익힌 후 코틀린다운 코드를 만드는 노하우를 얻는다!
안드로이드 애플리케이션을 자바로 만들어야 하는 이상 어쩔 수 없이 감내해야 했던 많은 문제의 해결책이 이제 눈앞에 보입니다. 바로 코틀린을 활용하는 것입니다. 코틀린은 자바와 100% 호환이 가능하기 때문에 자바로 된 기존의 프로젝트에 필요한 부분만 코틀린을 적용해도 됩니다. 자바-코틀린 컨버터 기능을 이용하면 자바를 코틀린으로 변환하기도 쉽습니다.
이 책에서는 코틀린 문법을 자바와 비교하여 직관적으로 익힐 수 있게 했습니다. 자바로 애플리케이션을 만들 때 생기는 불편한 점이 코틀린을 사용하면 어떻게 해결되는지 보여 주고, 생산성을 높여 주는 코틀린의 다양한 기능을 소개합니다. 단순히 코틀린을 소개하는 것에서 끝나지 않습니다. 자바-코틀린 컨버터로 변환되어 모양만 코틀린인 코드를 ‘코틀린다운’코드로 변환하는 방법, 자바와 코틀린 혼용 시 유의할 점 등 저자가 실무에서 코틀린을 사용하면서 축적된 노하우도 함께 녹여 냈습니다. RxJava, 안드로이드 아키텍처 컴포넌트, 대거(Dagger) 라이브러리를 적용하는 과정도 함께 담아 프로젝트를 개선하는 방법까지 한번에 익힐 수 있습니다.
자바와 비교해 직관적으로 문법을 익힌 후 코틀린다운 코드를 만드는 노하우를 얻는다!
안드로이드 애플리케이션을 자바로 만들어야 하는 이상 어쩔 수 없이 감내해야 했던 많은 문제의 해결책이 이제 눈앞에 보입니다. 바로 코틀린을 활용하는 것입니다. 코틀린은 자바와 100% 호환이 가능하기 때문에 자바로 된 기존의 프로젝트에 필요한 부분만 코틀린을 적용해도 됩니다. 자바-코틀린 컨버터 기능을 이용하면 자바를 코틀린으로 변환하기도 쉽습니다.
이 책에서는 코틀린 문법을 자바와 비교하여 직관적으로 익힐 수 있게 했습니다. 자바로 애플리케이션을 만들 때 생기는 불편한 점이 코틀린을 사용하면 어떻게 해결되는지 보여 주고, 생산성을 높여 주는 코틀린의 다양한 기능을 소개합니다. 단순히 코틀린을 소개하는 것에서 끝나지 않습니다. 자바-코틀린 컨버터로 변환되어 모양만 코틀린인 코드를 ‘코틀린다운’코드로 변환하는 방법, 자바와 코틀린 혼용 시 유의할 점 등 저자가 실무에서 코틀린을 사용하면서 축적된 노하우도 함께 녹여 냈습니다. RxJava, 안드로이드 아키텍처 컴포넌트, 대거(Dagger) 라이브러리를 적용하는 과정도 함께 담아 프로젝트를 개선하는 방법까지 한번에 익힐 수 있습니다.
Couldn't load pickup availability
출판사 리뷰
출판사 리뷰
목차
목차
1부 코틀린과 친해지기
1장 코틀린이란?
__1.1 코틀린 소개
__1.2 코틀린의 특징
____간결한 문법
____널 안전성
____가변/불변 구분
____람다 표현식 지원
____스트림 API 지원
____완벽한 자바 호환성
__1.3 코틀린의 주요 문법
____값 및 변수 선언
____함수 선언
____클래스 및 인터페이스 선언
____조건문
____반복문
2장 자바와 비교해 보는 코틀린
__2.1 기본 자료형
____숫자
____문자
____논리
____문자열
____배열
__2.2 컬렉션
__2.3 클래스 및 인터페이스
____클래스와 인터페이스의 선언 및 인스턴스 생성
____프로퍼티
____접근 제한자
____생성자
____함수
____상속 및 인터페이스 구현
____this
____정적 필드 및 메서드
____싱글톤
____enum 클래스
____어노테이션 클래스
____중첩 클래스
__2.4 자료/자료형의 확인 및 변환
____자료의 동일성 확인: ==, === 연산자
____자료형 확인: is 연산자
____자료형 변환: as 연산자
____스마트 캐스트
__2.5 흐름 제어
____if-else 문
____when 문
____while 문
____for 문
____범위
__2.6 제네릭
____제네릭 클래스의 인스턴스 생성 및 사용
____제네릭 클래스/인터페이스 정의
____제네릭을 인자로 받는 함수
__2.7 예외
__2.8 널 안전성
____널 허용 여부 표기
____널 값을 대신하는 방법: 엘비스(?:) 연산자
____널 값 확인과 처리를 한번에: 안전한 호출(?.) 연산자
____안전한 자료형 변환: as? 연산자
____널 값이 아님을 명시하기: 비(非) 널 값 보증(!!)
____나중에 초기화되는 변수를 위해: lateinit 키워드
____자바로 작성된 클래스의 널 처리
3장 자바와는 다른 코틀린의 특징
__3.1 클래스
____데이터 클래스
____한정 클래스
____프로퍼티의 사용자 지정 Getter/Setter
__3.2 함수
____명명된 인자
____기본 매개변수
____단일 표현식 표기
____확장 함수
____연산자 오버로딩
____중위 표기법 지원
__3.3 람다 표현식
____자바와 코틀린의 람다 표현식
____코틀린 람다 표현식의 유용한 기능
____인라인 함수
__3.4 코틀린의 여타 특징
____타입 별칭
____분해 선언
4장 코틀린 표준 라이브러리
__4.1 조건 확인 함수
____특정 값의 일치 여부 확인: check, require
____명시적으로 실행 중단하기: error, TODO
__4.2 컬렉션 생성 함수
____배열
____리스트
____맵
____집합
__4.3 스트림 함수
____변환
____필터
____조합 및 합계
____기타
__4.4 범위 지정 함수
____let( ) 함수
____apply( ) 함수
____with( ) 함수
____run( ) 함수
5장 자바와 함께 사용하기
__5.1 코틀린에서 자바 코드 사용하기
____Getter/Setter의 프로퍼티화
____가변 인자를 받는 메서드
____Object 클래스 내 메서드
____SAM 변환
__5.2 자바에서 코틀린 코드 사용하기
____프로퍼티의 Getter/Setter화
____기본 매개변수가 있는 함수
____패키지 단위 함수/변수
____동반 객체 및 싱글톤
____Checked exception
6장 코틀린 개발환경 설정
__6.1 안드로이드 스튜디오 및 코틀린 IDE 플러그인 설정
__6.2 코틀린을 지원하는 프로젝트 구조 설정
____새 프로젝트 생성하기
____기존 프로젝트에 코틀린 지원 추가하기
____자바 코드와 코틀린 코드 분리하기
7장 코틀린 IDE 플러그인 소개
__7.1 자바-코틀린 코드 컨버터
____자바 파일을 코틀린으로 변환하기
____자바로 작성된 코드 블록을 코틀린으로 변환하기
__7.2 코틀린 코드 디컴파일러
__7.3 코틀린 REPL
8장 코틀린 안드로이드 익스텐션
__8.1 코틀린 안드로이드 익스텐션 소개
__8.2 코틀린 안드로이드 익스텐션 설정
__8.3 액티비티에서 사용하기
__8.4 프래그먼트에서 사용하기
__8.5 리사이클러뷰에서 사용하기
9장 Anko
__9.1 Anko 소개
__9.1 Anko Commons
____토스트 표시하기
____다이얼로그 생성 및 표시하기
____인텐트 생성 및 사용하기
____로그 메시지 기록하기
____단위 변환하기
____기타
__9.2 Anko Layouts
____DSL로 화면 구성하기
____액티비티에서 사용하기
____프래그먼트에서 사용하기
____Anko Support Plugin
2부 실무에 바로 적용할 수 있는 안드로이드 앱 개발하기
10장 Simple Github 예제 프로젝트 소개
__10.1 예제 프로젝트의 기능 및 사용하는 라이브러리
__10.2 예제 프로젝트를 실행하기 위한 준비
__10.3 빌드스크립트 및 매니페스트 구성 살펴보기
__10.4 UI 표시부 구성
__10.5 데이터 처리부 구성
__10.6 이어지는 장의 독자 수준별 권장 학습 방법 안내
____11장, 12장
____13장
____14장
____15장
11장 코틀린 변환 1단계: 컨버터로 자바 코드를 코틀린 코드로 변환하기
__11.1 빌드스크립트 수정하기
__11.2 자바-코틀린 코드 컨버터로 UI 코드 변환하기
____SimpleGithubGlideModule 변환
____SignInActivity 변환
____MainActivity 변환
____SearchActivity 변환
____SearchAdapter 변환
____RepositoryActivity 변환
__11.3 자바와 코틀린 코드의 혼용 확인하기
12장 코틀린 변환 2단계: 코틀린다운 코드로 다듬기
__12.1 데이터 처리 코드를 모두 코틀린으로 변환하기
____모델 클래스 변환
____REST API 인터페이스 변환
____GithubApiProvider 변환
____AuthTokenProvider 변환
__12.2 코틀린 안드로이드 익스텐션 적용하기
____액티비티에 적용하기
____리사이클러뷰 뷰홀더에 적용하기
__12.3 자바-코틀린 코드 컨버터로 변환된 코드를 코틀린답게 만들기
____GithubApiProvider 다듬기
____SignInActivity 다듬기
____SearchActivity 다듬기
____SearchAdapter 다듬기
____RepositoryActivity 다듬기
__12.4 Anko Commons 적용하기
____SignInActivity에 적용하기
____MainActivity에 적용하기
____SearchActivity에 적용하기
13장 프로젝트 개선 1단계: RxJava 적용하기
__13.1 RxJava 알아보기
____RxJava 소개
____옵서버블과 옵서버
____연산자
____스케줄러
____디스포저블
__13.2 Retrofit에서 RxJava에 맞게 응답 전달하기
____RxJava와 RxAndroid를 의존성에 추가하기
____데이터 처리부 수정하기
____SignInActivity 변경하기
____SearchActivity 변경하기
____RepositoryActivity 변경하기
____연산자 오버로딩으로 디스포저블을 편리하게 관리하기
__13.3 RxBinding으로 UI 이벤트를 간편하게 처리하기
____RxBinding을 의존성에 추가하기
____SearchView에 RxBinding 적용하기
____RxBinding 코틀린 확장 라이브러리 적용하기
14장 프로젝트 개선 2단계: 안드로이드 아키텍처 컴포넌트 적용하기
__14.1 안드로이드 아키텍처 컴포넌트란?
__14.2 생명주기에 맞는 동작 구현하기: Lifecycle 클래스
____Lifecycle의 구성 요소
____Lifecycle을 의존성에 추가하기
____생명주기에 맞게 디스포저블 관리하기
____액티비티 코드 변경하기
__14.3 SQLite 데이터베이스 쉽게 사용하기: 룸 라이브러리
____룸 라이브러리 소개
____룸 데이터베이스
____데이터 접근 객체
____엔티티
____룸 라이브러리를 의존성에 추가하기
____룸 데이터베이스 구성요소 및 DatabaseProvider 작성하기
____SearchActivity 변경하기
____MainActivity 변경하기
__14.4 생명주기에 맞서 UI 상태 지켜내기: ViewModel 클래스
____ViewModel 소개
____ViewModel을 의존성에 추가하기
____SupportOptional 클래스 작성하기
____SignInActivity에 SignInViewModel 적용하기
____MainActivity에 MainViewModel 적용하기
____SearchActivity에 SearchViewModel 적용하기
____RepositoryActivity에 RepositoryViewModel 적용하기
15장 프로젝트 개선 3단계: 대거 라이브러리로 필요한 객체 제공하기
__15.1 의존성 주입과 대거 라이브러리
____의존성 주입
____대거 라이브러리
____모듈
____컴포넌트
__15.2 데이터 처리 객체 주입하기
____대거 라이브러리를 의존성에 추가하기
____API 호출에 필요한 객체를 제공하는 모듈 작성하기
____로컬 저장소 데이터 접근에 필요한 객체를 제공하는 모듈 작성하기
____액티비티를 객체 그래프에 추가할 수 있도록 설정하기
____애플리케이션 모듈 작성하기
____애플리케이션 컴포넌트로 모듈 묶어주기
____액티비티에서 데이터 처리 객체 주입받기
__15.3 뷰모델 팩토리와 어댑터 객체 주입하기
____SignInModule 작성하기
____MainModule 작성하기
____SearchModule 작성하기
____RepositoryModule 작성하기
1장 코틀린이란?
__1.1 코틀린 소개
__1.2 코틀린의 특징
____간결한 문법
____널 안전성
____가변/불변 구분
____람다 표현식 지원
____스트림 API 지원
____완벽한 자바 호환성
__1.3 코틀린의 주요 문법
____값 및 변수 선언
____함수 선언
____클래스 및 인터페이스 선언
____조건문
____반복문
2장 자바와 비교해 보는 코틀린
__2.1 기본 자료형
____숫자
____문자
____논리
____문자열
____배열
__2.2 컬렉션
__2.3 클래스 및 인터페이스
____클래스와 인터페이스의 선언 및 인스턴스 생성
____프로퍼티
____접근 제한자
____생성자
____함수
____상속 및 인터페이스 구현
____this
____정적 필드 및 메서드
____싱글톤
____enum 클래스
____어노테이션 클래스
____중첩 클래스
__2.4 자료/자료형의 확인 및 변환
____자료의 동일성 확인: ==, === 연산자
____자료형 확인: is 연산자
____자료형 변환: as 연산자
____스마트 캐스트
__2.5 흐름 제어
____if-else 문
____when 문
____while 문
____for 문
____범위
__2.6 제네릭
____제네릭 클래스의 인스턴스 생성 및 사용
____제네릭 클래스/인터페이스 정의
____제네릭을 인자로 받는 함수
__2.7 예외
__2.8 널 안전성
____널 허용 여부 표기
____널 값을 대신하는 방법: 엘비스(?:) 연산자
____널 값 확인과 처리를 한번에: 안전한 호출(?.) 연산자
____안전한 자료형 변환: as? 연산자
____널 값이 아님을 명시하기: 비(非) 널 값 보증(!!)
____나중에 초기화되는 변수를 위해: lateinit 키워드
____자바로 작성된 클래스의 널 처리
3장 자바와는 다른 코틀린의 특징
__3.1 클래스
____데이터 클래스
____한정 클래스
____프로퍼티의 사용자 지정 Getter/Setter
__3.2 함수
____명명된 인자
____기본 매개변수
____단일 표현식 표기
____확장 함수
____연산자 오버로딩
____중위 표기법 지원
__3.3 람다 표현식
____자바와 코틀린의 람다 표현식
____코틀린 람다 표현식의 유용한 기능
____인라인 함수
__3.4 코틀린의 여타 특징
____타입 별칭
____분해 선언
4장 코틀린 표준 라이브러리
__4.1 조건 확인 함수
____특정 값의 일치 여부 확인: check, require
____명시적으로 실행 중단하기: error, TODO
__4.2 컬렉션 생성 함수
____배열
____리스트
____맵
____집합
__4.3 스트림 함수
____변환
____필터
____조합 및 합계
____기타
__4.4 범위 지정 함수
____let( ) 함수
____apply( ) 함수
____with( ) 함수
____run( ) 함수
5장 자바와 함께 사용하기
__5.1 코틀린에서 자바 코드 사용하기
____Getter/Setter의 프로퍼티화
____가변 인자를 받는 메서드
____Object 클래스 내 메서드
____SAM 변환
__5.2 자바에서 코틀린 코드 사용하기
____프로퍼티의 Getter/Setter화
____기본 매개변수가 있는 함수
____패키지 단위 함수/변수
____동반 객체 및 싱글톤
____Checked exception
6장 코틀린 개발환경 설정
__6.1 안드로이드 스튜디오 및 코틀린 IDE 플러그인 설정
__6.2 코틀린을 지원하는 프로젝트 구조 설정
____새 프로젝트 생성하기
____기존 프로젝트에 코틀린 지원 추가하기
____자바 코드와 코틀린 코드 분리하기
7장 코틀린 IDE 플러그인 소개
__7.1 자바-코틀린 코드 컨버터
____자바 파일을 코틀린으로 변환하기
____자바로 작성된 코드 블록을 코틀린으로 변환하기
__7.2 코틀린 코드 디컴파일러
__7.3 코틀린 REPL
8장 코틀린 안드로이드 익스텐션
__8.1 코틀린 안드로이드 익스텐션 소개
__8.2 코틀린 안드로이드 익스텐션 설정
__8.3 액티비티에서 사용하기
__8.4 프래그먼트에서 사용하기
__8.5 리사이클러뷰에서 사용하기
9장 Anko
__9.1 Anko 소개
__9.1 Anko Commons
____토스트 표시하기
____다이얼로그 생성 및 표시하기
____인텐트 생성 및 사용하기
____로그 메시지 기록하기
____단위 변환하기
____기타
__9.2 Anko Layouts
____DSL로 화면 구성하기
____액티비티에서 사용하기
____프래그먼트에서 사용하기
____Anko Support Plugin
2부 실무에 바로 적용할 수 있는 안드로이드 앱 개발하기
10장 Simple Github 예제 프로젝트 소개
__10.1 예제 프로젝트의 기능 및 사용하는 라이브러리
__10.2 예제 프로젝트를 실행하기 위한 준비
__10.3 빌드스크립트 및 매니페스트 구성 살펴보기
__10.4 UI 표시부 구성
__10.5 데이터 처리부 구성
__10.6 이어지는 장의 독자 수준별 권장 학습 방법 안내
____11장, 12장
____13장
____14장
____15장
11장 코틀린 변환 1단계: 컨버터로 자바 코드를 코틀린 코드로 변환하기
__11.1 빌드스크립트 수정하기
__11.2 자바-코틀린 코드 컨버터로 UI 코드 변환하기
____SimpleGithubGlideModule 변환
____SignInActivity 변환
____MainActivity 변환
____SearchActivity 변환
____SearchAdapter 변환
____RepositoryActivity 변환
__11.3 자바와 코틀린 코드의 혼용 확인하기
12장 코틀린 변환 2단계: 코틀린다운 코드로 다듬기
__12.1 데이터 처리 코드를 모두 코틀린으로 변환하기
____모델 클래스 변환
____REST API 인터페이스 변환
____GithubApiProvider 변환
____AuthTokenProvider 변환
__12.2 코틀린 안드로이드 익스텐션 적용하기
____액티비티에 적용하기
____리사이클러뷰 뷰홀더에 적용하기
__12.3 자바-코틀린 코드 컨버터로 변환된 코드를 코틀린답게 만들기
____GithubApiProvider 다듬기
____SignInActivity 다듬기
____SearchActivity 다듬기
____SearchAdapter 다듬기
____RepositoryActivity 다듬기
__12.4 Anko Commons 적용하기
____SignInActivity에 적용하기
____MainActivity에 적용하기
____SearchActivity에 적용하기
13장 프로젝트 개선 1단계: RxJava 적용하기
__13.1 RxJava 알아보기
____RxJava 소개
____옵서버블과 옵서버
____연산자
____스케줄러
____디스포저블
__13.2 Retrofit에서 RxJava에 맞게 응답 전달하기
____RxJava와 RxAndroid를 의존성에 추가하기
____데이터 처리부 수정하기
____SignInActivity 변경하기
____SearchActivity 변경하기
____RepositoryActivity 변경하기
____연산자 오버로딩으로 디스포저블을 편리하게 관리하기
__13.3 RxBinding으로 UI 이벤트를 간편하게 처리하기
____RxBinding을 의존성에 추가하기
____SearchView에 RxBinding 적용하기
____RxBinding 코틀린 확장 라이브러리 적용하기
14장 프로젝트 개선 2단계: 안드로이드 아키텍처 컴포넌트 적용하기
__14.1 안드로이드 아키텍처 컴포넌트란?
__14.2 생명주기에 맞는 동작 구현하기: Lifecycle 클래스
____Lifecycle의 구성 요소
____Lifecycle을 의존성에 추가하기
____생명주기에 맞게 디스포저블 관리하기
____액티비티 코드 변경하기
__14.3 SQLite 데이터베이스 쉽게 사용하기: 룸 라이브러리
____룸 라이브러리 소개
____룸 데이터베이스
____데이터 접근 객체
____엔티티
____룸 라이브러리를 의존성에 추가하기
____룸 데이터베이스 구성요소 및 DatabaseProvider 작성하기
____SearchActivity 변경하기
____MainActivity 변경하기
__14.4 생명주기에 맞서 UI 상태 지켜내기: ViewModel 클래스
____ViewModel 소개
____ViewModel을 의존성에 추가하기
____SupportOptional 클래스 작성하기
____SignInActivity에 SignInViewModel 적용하기
____MainActivity에 MainViewModel 적용하기
____SearchActivity에 SearchViewModel 적용하기
____RepositoryActivity에 RepositoryViewModel 적용하기
15장 프로젝트 개선 3단계: 대거 라이브러리로 필요한 객체 제공하기
__15.1 의존성 주입과 대거 라이브러리
____의존성 주입
____대거 라이브러리
____모듈
____컴포넌트
__15.2 데이터 처리 객체 주입하기
____대거 라이브러리를 의존성에 추가하기
____API 호출에 필요한 객체를 제공하는 모듈 작성하기
____로컬 저장소 데이터 접근에 필요한 객체를 제공하는 모듈 작성하기
____액티비티를 객체 그래프에 추가할 수 있도록 설정하기
____애플리케이션 모듈 작성하기
____애플리케이션 컴포넌트로 모듈 묶어주기
____액티비티에서 데이터 처리 객체 주입받기
__15.3 뷰모델 팩토리와 어댑터 객체 주입하기
____SignInModule 작성하기
____MainModule 작성하기
____SearchModule 작성하기
____RepositoryModule 작성하기
저자
저자
김태호
저자 김태호는 구글에서 애드몹 기술 지원을 담당하고 있습니다. 안드로이드, 코틀린, 오픈소스 프로젝트 등에 관심이 많으며, 한국 개발자 커뮤니티를 지원하기 위해 여러 활동을 하고 있습니다. 안드로이드와 코틀린을 보다 쉽게 배울 수 있도록 '커니의 안드로이드 이야기(kunny.github.io)' 블로그에서 개발 팁과 강좌를 제공하고 있습니다.
Payment & Security
Payment methods
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.
$99 이상 무료 배송
3% 리워드 크레딧 적립
Secure Payment

