코틀린을 이용한 안드로이드 개발 [안드로이드 앱을 개발하며 배우는 코틀린]
- 원서명Android Development with Kotlin: Enhance your skills for Android development using Kotlin (ISBN 9781787123687)
- 지은이마르친 모스칼라(Marcin Moskala), 이고르 워다(Igor Wojda)
- 옮긴이최민석
- ISBN : 9791161751627
- 30,000원
- 2018년 05월 31일 펴냄 (절판)
- 페이퍼백 | 532쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 프로그래밍 언어
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
요약
오늘날 개선된 애플리케이션 개발이라는 말은 단순히 속도가 빠른 애플리케이션 개발을 의미하는 것은 아니며, 개선된 방법으로 코드를 작성하는 것도 중요해졌다. 코틀린은 다양한 플랫폼에서 안드로이드 애플리케이션을 쉽고 효과적으로 작성할 수 있게 도와주는 언어다. 이 책에서는 안드로이드 개발에 사용되는 코틀린의 장점, 개선점, 그리고 새로운 가능성에 대해 알아본다.
이 책에서 다루는 내용
■ 코틀린 애플리케이션의 실행 및 안드로이드 스튜디오와 통합
■ 코틀린을 신규/기존 안드로이드 자바 기반 프로젝트와 통합
■ 코틀린 형식 시스템을 이용해 null 안전성과 불변성을 처리하는 방법
■ 다양한 클래스의 유형과 속성 다루기
■ 컬렉션 정의 및 함수형 기반 방식으로 변환
■ 확장의 정의 및 대리자를 이용해 기존 라이브러리와 안드로이드 프레임워크 클래스에 새로운 동작 추가
■ 제네릭 형식 가변성 한정자를 이용해 제네릭 형식 간의 하위 형식 관계 정의
■ 예제 애플리케이션 작성
이 책의 대상 독자
■ 객체, 클래스, 생성자, 인터페이스, 메소드, 게터, 세터, 제네릭 형식을 비롯한 객체지향 프로그래밍의 기본 개념과 자바에 익숙해야 한다. 이러한 기본 개념에 익숙하지 않다면 이 책을 제대로 이해하기 어려울 수 있으므로, 자바 기본서를 먼저 공부하고 이 책을 읽기 바란다.
■ 안드로이드 플랫폼에 대한 지식이 필수는 아니지만, 이 책에 나온 예제와 코틀린으로 해결할 수 있는 문제를 제대로 이해하는 데 도움이 된다. 안드로이드 애플리케이션을 개발해본 경험이 있는 개발자라면 기본적으로 충분하다. 안드로이드 플랫폼에 대한 지식이 충분하지 않더라도 객체지향 개념에 익숙하다면 큰 문제 없이 이 책을 공부할 수 있다.
새로운 기술을 배우는 데 거부감이 없는 열린 사고를 가지고 있다면 공부하는 데 큰 도움이 된다. 이 책을 공부하는 동안 호기심을 자극하는 구상이 있다면 직접 테스트하고 확인해보기를 권한다.
이 책의 구성
1장, ‘코틀린 시작하기’에서는 독자에게 코틀린 플랫폼을 소개하고 코틀린 언어와 특징, 장점을 설명한다. 또한 코틀린을 안드로이드 개발 프로세스에 적용하는 방법을 알아본다.
2장, ‘기본 개념’에서는 코틀린의 기본 구성요소를 주로 살펴본다. 코틀린의 다양한 구문과 데이터 형식, 그리고 흥미로운 특징을 소개한다.
3장, ‘함수’에서는 함수를 정의하고 호출하는 여러 방법을 설명하며, 함수 식별자에 대해 알아보고, 함수를 정의할 수 있는 여러 위치에 대해 설명한다.
4장, ‘클래스와 객체’에서는 객체지향 프로그래밍과 관련된 코틀린의 특징에 대해 알아본다. 클래스의 다양한 형식에 대해 배우고, 가동성을 개선하기 위한 기능으로 속성 연산자 오버로딩과 중위 호출에 대해 배운다.
5장, ‘일급 객체로서의 함수’에서는 코틀린의 함수형 프로그래밍과 일급 객체로서의 함수 지원에 대해 알아본다. 또한 람다, 상위 함수, 함수 형식에 대해 배운다.
6장, ‘제네릭’에서는 제네릭 클래스, 인터페이스, 함수에 대해 알아본다. 또한 코틀린의 제네릭 형식 시스템에 대해 자세히 살펴본다.
7장, ‘확장 함수와 속성’에서는 기존 클래스에 상속을 사용하지 않고 새로운 동작을 추가하는 방법을 알아본다. 또한 컬렉션과 스트림 처리를 수행하는 더 간단한 방법도 논의한다.
8장, ‘위임’에서는 코틀린의 기본 제공 언어 기능으로 클래스 위임을 간소화하는 방법을 알아본다. 또한 기본 제공 속성 대리자를 사용하는 방법과 맞춤형 대리자를 정의하는 방법을 배운다.
9장, ‘마블 갤러리 애플리케이션 만들기’에서는 지금까지 설명한 거의 모든 기능을 사용해 코틀린으로 완전히 작동하는 안드로이드 애플리케이션을 직접 제작한다.
목차
목차
- 1장. 코틀린 시작하기
- 코틀린 소개
- 멋진 코틀린 예제
- 코틀린 코드 다루기
- 코틀린 플레이그라운드
- 안드로이드 스튜디오
- 프로젝트를 위한 코틀린 구성
- 새로운 안드로이드 프로젝트에서 코틀린 사용
- 자바-코틀린 변환기(J2K)
- 코틀린 코드를 실행하는 다른 방법
- 코틀린의 내부 작동 방식
- 코틀린 표준 라이브러리
- 코틀린의 장점
- 요약
- 2장. 기본 개념
- 변수
- 형식 유추
- 엄격한 null 안전성
- 안전 호출
- 엘비스 연산자
- non-null 주장
- let
- null 가능성과 자바
- 형변환
- 안전/불안 형변환 연산자
- 스마트 형변환
- 형식 스마트 형변환
- null 불허 스마트 형변환
- 기본형 데이터 형식
- 숫자
- Char
- 배열
- 부울 형식
- 복합 데이터 형식
- 문자열
- 문자열 템플릿
- 범위
- 컬렉션
- 문자열
- 문과 식
- 제어 흐름
- if 문
- when 식
- 반복문
- for
- while 반복문
- 그 밖의 반복문
- break와 continue 문
- 예외
- try...catch 블록
- 컴파일 타임 상수
- 위임
- 요약
- 3장. 함수
- 기본적인 함수 선언과 사용법
- 매개변수
- 함수에서 반환
- vararg 매개변수
- 단일 식 함수
- 꼬리 재귀 함수
- 함수를 호출하는 다른 방법
- 기본 인수 값
- 명명된 인수 구문
- 최상위 함수
- 최상위 함수의 내부 작동 방식
- 로컬 함수
- Nothing 반환 형식
- 요약
- 기본적인 함수 선언과 사용법
- 4장. 클래스와 객체
- 클래스
- 클래스 선언
- 속성
- 읽기 쓰기와 읽기 전용 속성
- 코틀린과 자바와 속성 접근 구문
- 증가 및 감소 연산자
- 맞춤형 게터/세터
- 게터와 속성 기본 값
- 지연 초기화되는 속성
- 속성과 애노테이션
- 인라인 속성
- 생성자
- 속성과 생성자 매개변수의 비교
- 기본 인수를 갖는 생성자
- 패턴
- 상속
- JvmOverloads 애노테이션
- 인터페이스
- 데이터 클래스
- equals와 hashCode 메소드
- toString 메소드
- copy 메소드
- 구조분해 선언
- 연산자 오버로딩
- 객체 선언
- 객체 식
- 컴패니언 객체
- 컴패니언 객체의 인스턴스 생성
- 열거 클래스
- 명명된 메소드에 대한 중위 호출
- 가시성 한정자
- internal 한정자와 자바 바이트코드
- 봉인 클래스
- 중첩 클래스
- 별칭 임포트
- 요약
- 클래스
- 5장. 일급 객체로서의 함수
- 함수 형식
- 함수 형식의 내부 작동 방식
- 익명 함수
- 람다식
- 단일 매개변수의 암시적 이름
- 상위 함수
- 함수를 작업으로서 제공
- 관찰자(수신기) 패턴
- 스레드 작업 후 콜백
- 명명된 인수와 람다식의 조합
- 마지막 람다식 인수 규칙
- 주변 코드 명명
- LINQ 스타일로 데이터 구조 처리
- 코틀린의 자바 SAM 지원
- 명명된 코틀린 함수 형식
- 함수 형식의 명명된 매개변수
- 형식 별칭
- 사용되지 않는 변수를 위한 밑줄
- 람다식의 구조분해
- 인라인 함수
- noinline 한정자
- 논로컬 반환
- 람다식의 라벨 반환
- crossinline 한정자
- 인라인 속성
- 함수 참조
- 요약
- 함수 형식
- 6장. 제네릭
- 제네릭
- 제네릭의 필요성
- 형식 매개변수와 형식 인수
- 제네릭의 필요성
- 제네릭 제약 조건
- null 가능성
- 변량
- 변량 한정자
- 사용 위치 변량과 선언 위치 변량
- 컬렉션 변량
- 변량 생산자/소비자 제한
- 고정 생성자
- 형식 삭제
- reified 형식 매개변수
- startActivity 메소드
- reified 형식 매개변수
- 별표 프로젝션
- 형식 매개변수 명명 규칙
- 요약
- 제네릭
- 7장. 확장 함수와 속성
- 확장 함수
- 확장 함수의 내부 작동 방식
- 메소드 재정의 불가
- 수신자 요소 접근
- 확장은 정적으로 확인된다
- 컴패니언 객체 확장
- 확장 함수를 이용한 연산자 오버로딩
- 최상의 확장 함수의 적절한 사용 위치
- 확장 함수의 내부 작동 방식
- 확장 속성
- 확장 속성은 어디에 사용해야 할까?
- 멤버 확장 함수와 속성
- 수신자의 형식
- 멤버 확장 함수와 속성의 작동 방식
- 제네릭 확장 함수
- 컬렉션 처리
- 코틀린 컬렉션 형식의 계층
- map, filter, flatMap 함수
- forEach와 onEach 함수
- withIndex와 indexed 변형
- sum, count, min, max, sorted 함수
- 그 밖의 스트림 처리 함수
- 스트림 컬렉션 처리의 예
- 시퀀스
- 컬렉션 처리
- 수신자가 있는 함수 리터럴
- 코틀린 표준 라이브러리 함수
- let 함수
- 초기화를 위한 apply 함수 이용
- also 함수
- run과 with 함수
- to 함수
- DSL(domain-specific language)
- Anko
- 코틀린 표준 라이브러리 함수
- 요약
- 확장 함수
- 8장. 위임
- 클래스 위임
- 위임 패턴
- 데코레이터 패턴
- 속성 위임
- 위임 속성이란?
- 미리 정의된 대리자
- lazy 함수
- notNull 함수
- observable 대리자
- vetoable 대리자
- Map 형식으로 속성 위임
- 맞춤형 대리자
- 뷰 바인딩
- SharedPreferences 바인딩
- 대리자 제공
- 요약
- 클래스 위임
- 9장. 마블 갤러리 애플리케이션 만들기
- 마블 갤러리
- 진행 방법
- 새로운 프로젝트 만들기
- 캐릭터 갤러리
- 뷰 구현
- 네트워크 정의
- 비즈니스 논리 구현
- 구현한 작업을 하나로 묶기
- 캐릭터 검색
- 캐릭터 프로필 표시
- 마블 갤러리