코틀린을 학습할 때 좋은 학습서이자 참고서로 활용할 수 있다. 안드로이드 애플리케이션 개발을 예제로 코틀린을 설명하지만 안드로이드 개발을 본격적으로 배우기 위한 책은 아니다. 코틀린을 사용한 프로그래밍에 중점을 두고, 그 과정에서 코틀린이라는 언어를 처음 사용하고 학습하는 데 필요한 내용을 적절하게 다룬다.
(* 안드로이드 스튜디오 최신 버전(2021년 11월 29일 기준)으로 예제 코드를 업데이트했습니다. 코드 파일은 https://github.com/AcornPublishing/learn-kotlin에서 다운로드하실 수 있습니다.)
Contents
1장. 첫 코틀린 애플리케이션: Hello Kotlin
__IDE 설치: 안드로이드 스튜디오
__안드로이드 디바이스 연결
__첫 코틀린 앱 시작하기
__에뮬레이터 설정 및 사용
__HelloKotlin 앱 계속하기
__커맨드 라인 사용하기
__프로퍼티와 프로퍼티의 타입
____단순 프로퍼티
____연습문제 1
____프로퍼티 타입
____프로퍼티 값 할당
____연습문제 2
____리터럴
____연습문제 3
____프로퍼티 가시성
____NULL 값
____연습문제 4
____프로퍼티 선언 수정자
__멤버 함수
____값을 반환하지 않는 함수
____연습문제 5
____연습문제 6
____값을 반환하는 함수
____연습문제 7
____연습문제 8
____연습문제 9
____마스킹된 프로퍼티에 접근하기
____연습문제 10
____함수 호출
____연습문제 11
____함수의 명명된 매개변수
____연습문제 12
____함수의 기본 매개변수
____연습문제 13
____함수의 가변 매개변수
____연습문제 14
____추상 함수
____다형성
____로컬 함수
____상속
____다른 클래스를 상속하는 클래스
____생성자 상속
____연습문제 15
____함수 재정의
____프로퍼티 재정의
____연습문제 16
____연습문제 17
____수퍼클래스 애셋에 접근하기
__로컬 변수
____연습문제 18
__클래스와 클래스 멤버의 가시성
____자기 참조: this
__클래스를 문자열로 변환하기
____연습문제 19
4장. 클래스와 객체: 확장 기능
__익명 클래스
__내부 클래스
__클래스 외부의 함수와 프로퍼티
____연습문제 1
__함수와 프로퍼티 임포트
____연습문제 2
__데이터 클래스
____연습문제 3
____연습문제 4
__열거형
____연습문제 5
__사용자 정의 프로퍼티 접근자
____연습문제 6
____연습문제 7
____연습문제 8
__코틀린 확장
____확장 함수
__확장 프로퍼티
____널 가능 리시버를 사용하는 확장
____확장 캡슐화
__꼬리 재귀를 사용하는 함수
__이항 연산자
__연산자 재정의
____연습문제 9
__위임
__인터페이스
__클래스
__제너레이터 함수
__컬렉션과 맵 세터 및 리무버
__결정적 게터
__컬렉션과 맵 특성
__컬렉션과 맵 순회
__변환
____연습문제 1
____연습문제 2
____연습문제 3
____연습문제 4
__필터링
____연습문제 5
__가변성 변경하기
__요소 검사
____연습문제 6
__요소 찾기
____연습문제 7
__집계, 폴딩 및 리듀싱
____연습문제 8
__결합
__그룹핑
__집핑
__윈도잉
__시퀀스
__연산자
17장. 다른 API들
__수학 API
__날짜와 시간 API, API 레벨 25 이하
__날짜와 시간 API, API 레벨 26 이상
__로컬 날짜와 시간
__인스턴트
__오프셋 날짜와 시간
__구역 날짜와 시간
__듀레이션과 피리어드
__클락
____연습문제 1
__입력과 출력
__테스트 파일 만들기
__파일 이름
__디렉터리 나열
__파일에 쓰기
__파일에서 읽기
__파일 삭제
__임시 파일 다루기
__다른 파일 작업
__URL 읽기
__리플렉션 사용
__정규 표현식
__패턴
__일치 확인
____연습문제 2
__문자열 자르기
__하위 문자열 추출하기
__대치
18장. 병렬 작업: 멀티스레딩
__자바 멀티스레딩 기초
__자바의 고급 멀티스레딩
__특수한 동시성 컬렉션
__잠금
__원자적 변수 타입
__익스큐터, 퓨처 및 콜러블
____연습문제 1
__코틀린 코루틴
__기본 코루틴
__코루틴 컨텍스트
__delay( )가 하는 일
__일시 중단 함수란?
__잡 기다리기
__코루틴 취소하기
__타임아웃
__디스패처
__예외 처리
____연습문제 2
19장. 외부 라이브러리 사용하기
__외부 라이브러리 추가하기
__의존성 관리
__미해결 로컬 의존성
__외부 라이브러리와 널 가능성
__자체 라이브러리 만들기
20장. XML과 JSON
__XML 처리
__XML 데이터 읽기
__XML 데이터 변경
__새로운 DOM 생성
____연습문제 1
__JSON 처리
__JSON 헬퍼 함수
__JSON 데이터 읽고 쓰기
__새로운 JSON 트리 생성
____연습문제 2
2002년 물리학 학사학위를 수료하고 이후 자바 관련 프로젝트를 주로 하는 IT 컨설턴트가 됐다. 2016년 소프트웨어 개발에 주로 초점을 맞춰 다양한 주제로 책을 쓰는 데 집중하기로 결정했다. 자바 관련 언어의 풍부한 경험과 안드로이드 앱을 만드는 데 사용할 수 있는 코틀린 출시로 안드로이드 환경에서 코틀린 개발을 위한 책을 저술하는 데 열의를 보이고 있다.
2002년 물리학 학사학위를 수료하고 이후 자바 관련 프로젝트를 주로 하는 IT 컨설턴트가 됐다. 2016년 소프트웨어 개발에 주로 초점을 맞춰 다양한 주제로 책을 쓰는 데 집중하기로 결정했다. 자바 관련 언어의 풍부한 경험과 안드로이드 앱을 만드는 데 사용할 수 있는 코틀린 출시로 안드로이드 환경에서 코틀린 개발을 위한 책을 저술하는 데 열의를 보이고 있다.