차세대 안드로이드 개발자를 위한 커니의 코틀린

고객평점
저자김태호
출판사항인사이트, 발행일:2017/12/08
형태사항p.383 B5판:24
매장위치컴퓨터부(B2) , 재고문의 : 051-816-9500
ISBN9788966262137 [소득공제]
판매가격 28,000원   25,200원  (인터넷할인가:10%)
포인트 1,260점
배송비결제주문시 결제
  • 주문수량 

총 금액 : 0원

책 소개

실무에서 쓰는 라이브러리를 활용하여 프로젝트를 개선하는 법까지 한번에!
자바와 비교해 직관적으로 문법을 익힌 후 코틀린다운 코드를 만드는 노하우를 얻는다!
안드로이드 애플리케이션을 자바로 만들어야 하는 이상 어쩔 수 없이 감내해야 했던 많은 문제의 해결책이 이제 눈앞에 보입니다. 바로 코틀린을 활용하는 것입니다. 코틀린은 자바와 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화
____기본 매개변수가 있는 함수
____패키지 단위 함수/변수
____동반 객체 및 싱글톤
____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 작성하기

역자 소개

01. 반품기한
  • 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
  • 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
02. 반품 배송비
반품 배송비
반품사유 반품 배송비 부담자
단순변심 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다.
상품의 불량 또는 오배송 고객 부담이 아닙니다.
03. 배송상태에 따른 환불안내
환불안내
진행 상태 결제완료 상품준비중 배송지시/배송중/배송완료
어떤 상태 주문 내역 확인 전 상품 발송 준비 중 상품이 택배사로 이미 발송 됨
환불 즉시환불 구매취소 의사전달 → 발송중지 → 환불 반품회수 → 반품상품 확인 → 환불
04. 취소방법
  • 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
  • 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
05. 환불시점
환불시점
결제수단 환불시점 환불방법
신용카드 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) 신용카드 승인취소
계좌이체 실시간 계좌이체 또는 무통장입금
취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준)
계좌입금
휴대폰 결제 당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소
전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준)
당일취소 : 휴대폰 결제 승인취소
익월취소 : 계좌입금
포인트 취소 완료 후, 당일 포인트 적립 환불 포인트 적립
06. 취소반품 불가 사유
  • 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
  • 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
  • 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
  • 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
  • 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
  • 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.

환불불가
상품군 취소/반품 불가사유
의류/잡화/수입명품 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우
계절상품/식품/화장품 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우
가전/설치상품 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.)
자동차용품 상품을 개봉하여 장착한 이후 단순변심의 경우
CD/DVD/GAME/BOOK등 복제가 가능한 상품의 포장 등을 훼손한 경우
내비게이션, OS시리얼이 적힌 PMP 상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우
노트북, 테스크탑 PC 등 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우