커니의 코틀린: 차세대 안드로이드 개발자를 위한 (프로그래밍 인사이트)

커니의 코틀린: 차세대 안드로이드 개발자를 위한 (프로그래밍 인사이트)

$28.00
Description
실무에서 쓰는 라이브러리를 활용하여 프로젝트를 개선하는 법까지 한번에!
자바와 비교해 직관적으로 문법을 익힌 후 코틀린다운 코드를 만드는 노하우를 얻는다!
안드로이드 애플리케이션을 자바로 만들어야 하는 이상 어쩔 수 없이 감내해야 했던 많은 문제의 해결책이 이제 눈앞에 보입니다. 바로 코틀린을 활용하는 것입니다. 코틀린은 자바와 100% 호환이 가능하기 때문에 자바로 된 기존의 프로젝트에 필요한 부분만 코틀린을 적용해도 됩니다. 자바-코틀린 컨버터 기능을 이용하면 자바를 코틀린으로 변환하기도 쉽습니다.
이 책에서는 코틀린 문법을 자바와 비교하여 직관적으로 익힐 수 있게 했습니다. 자바로 애플리케이션을 만들 때 생기는 불편한 점이 코틀린을 사용하면 어떻게 해결되는지 보여 주고, 생산성을 높여 주는 코틀린의 다양한 기능을 소개합니다. 단순히 코틀린을 소개하는 것에서 끝나지 않습니다. 자바-코틀린 컨버터로 변환되어 모양만 코틀린인 코드를 ‘코틀린다운’코드로 변환하는 방법, 자바와 코틀린 혼용 시 유의할 점 등 저자가 실무에서 코틀린을 사용하면서 축적된 노하우도 함께 녹여 냈습니다. RxJava, 안드로이드 아키텍처 컴포넌트, 대거(Dagger) 라이브러리를 적용하는 과정도 함께 담아 프로젝트를 개선하는 방법까지 한번에 익힐 수 있습니다.
저자

김태호

저자김태호는구글에서애드몹기술지원을담당하고있습니다.안드로이드,코틀린,오픈소스프로젝트등에관심이많으며,한국개발자커뮤니티를지원하기위해여러활동을하고있습니다.안드로이드와코틀린을보다쉽게배울수있도록'커니의안드로이드이야기(kunny.github.io)'블로그에서개발팁과강좌를제공하고있습니다.

목차

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화
____기본매개변수가있는함수
____패키지단위함수/변수
____동반객체및싱글톤
____Checkedexception

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.1Anko소개
__9.1AnkoCommons
____토스트표시하기
____다이얼로그생성및표시하기
____인텐트생성및사용하기
____로그메시지기록하기
____단위변환하기
____기타
__9.2AnkoLayouts
____DSL로화면구성하기
____액티비티에서사용하기
____프래그먼트에서사용하기
____AnkoSupportPlugin

2부실무에바로적용할수있는안드로이드앱개발하기

10장SimpleGithub예제프로젝트소개
__10.1예제프로젝트의기능및사용하는라이브러리
__10.2예제프로젝트를실행하기위한준비
__10.3빌드스크립트및매니페스트구성살펴보기
__10.4UI표시부구성
__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데이터처리코드를모두코틀린으로변환하기
____모델클래스변환
____RESTAPI인터페이스변환
____GithubApiProvider변환
____AuthTokenProvider변환
__12.2코틀린안드로이드익스텐션적용하기
____액티비티에적용하기
____리사이클러뷰뷰홀더에적용하기
__12.3자바-코틀린코드컨버터로변환된코드를코틀린답게만들기
____GithubApiProvider다듬기
____SignInActivity다듬기
____SearchActivity다듬기
____SearchAdapter다듬기
____RepositoryActivity다듬기
__12.4AnkoCommons적용하기
____SignInActivity에적용하기
____MainActivity에적용하기
____SearchActivity에적용하기

13장프로젝트개선1단계:RxJava적용하기
__13.1RxJava알아보기
____RxJava소개
____옵서버블과옵서버
____연산자
____스케줄러
____디스포저블
__13.2Retrofit에서RxJava에맞게응답전달하기
____RxJava와RxAndroid를의존성에추가하기
____데이터처리부수정하기
____SignInActivity변경하기
____SearchActivity변경하기
____RepositoryActivity변경하기
____연산자오버로딩으로디스포저블을편리하게관리하기
__13.3RxBinding으로UI이벤트를간편하게처리하기
____RxBinding을의존성에추가하기
____SearchView에RxBinding적용하기
____RxBinding코틀린확장라이브러리적용하기

14장프로젝트개선2단계:안드로이드아키텍처컴포넌트적용하기
__14.1안드로이드아키텍처컴포넌트란?
__14.2생명주기에맞는동작구현하기:Lifecycle클래스
____Lifecycle의구성요소
____Lifecycle을의존성에추가하기
____생명주기에맞게디스포저블관리하기
____액티비티코드변경하기
__14.3SQLite데이터베이스쉽게사용하기:룸라이브러리
____룸라이브러리소개
____룸데이터베이스
____데이터접근객체
____엔티티
____룸라이브러리를의존성에추가하기
____룸데이터베이스구성요소및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작성하