티스토리 뷰


iOS 개발자들을 위한 꼼꼼하고 체계적으로 정리된 도서라 생각됩니다. 기존 Objective-C를 사용하던 개발자나 이제 막 입문한 개발자도 쉽게 따라하면 개발할 수 있도록 적절한 예제와 비유를 제시하고 있습니다. 또한 다양한 코딩 방법을 제시하여 코드 이해하는 눈을 확장하며 코딩시 발생할 수 있는 여러 문제점들에 적절하게 대응할 수 있도록 해결책을 제시하고 있습니다. 지인들에게도 자신있게 추천할 수 있는 도서입니다.
이 책은 스위프트 2.0의 기본 문법과 구문을 설명하고 있으며, 객체 지향 언어의 특징과 타입 추론, 클로저, 추상화 등 모던 프로그래밍 언어의 핵심, 그리고 일급 함수로 대표되는 함수형 프로그래밍의 특성까지를 포함한 고급 문법을 쉽고 자세하게 다룬다. 또한 iOS 9에서 앱을 제작하기 위해 알아야 하는 뷰 컨트롤러와 앱 화면의 객체를 스위프트 코드로 제어하기 위한 방법, 화면을 전환하고 화면 간 데이터를 교환하는 방법 뿐만 아니라 델리게이트 패턴을 이용하여 기능 처리를 전담 객체에 위임하는 방법 등을 실습과 함께 자세하게 소개한다. 더불어 오픈 API 형식으로 제공되는 공공 데이터를 네트워크를 통해 읽어오는 과정을 학습하고 이를 통해 영화 정보를 제공하고 웹 뷰를 통해 웹 페이지에 접속할 수 있을 뿐만 아니라 맵킷 프레임워크를 이용해 지도에 상영관 위치를 표시하는 등의 기능을 가진 실제 앱을 완성한다.

1부 기본 개념 익히기
PART01

CHAPTER 01
애플의 새로운 언어, 스위프트
1.1 스위프트 탄생과 배경
1.2 스위프트 특징
1.2.1 스위프트가 차용하고 있는 주요 개념들
1.2.2 구조적 특징
1.3 오브젝티브-C와 스위프트 비교

CHAPTER 02
Xcode와 친해지기
2.1 통합개발환경
2.1.1 통합개발환경 이전의 프로그래밍
2.1.2 통합개발환경의 등장
2.2 Xcode란
2.3 Xcode 설치하기
2.3.1 정식 버전 설치 : 앱스토어
2.3.2 베타 버전 설치 : 애플 개발자 사이트
2.4 Xcode 실행하기
2.4.1 플레이그라운드 시작하기
2.4.2 프로젝트 생성하기
2.5 Xcode 구성요소
2.5.1 툴 바 영역
2.5.2 내비게이터 영역
2.5.3 편집기 영역
2.5.4 디버그 영역
2.5.5 인스펙터 영역
2.5.6 라이브러리 영역

PART 02

CHAPTER 03
기본 문법: 이것이 바로 스위프트
3.1 스위프트의 문법적 특성
3.2 변수와 상수
3.2.1 선언과 초기화
3.2.2 이름 짓기
3.3 자료형
3.3.1 기본 자료형
3.3.2 타입 추론과 타입 어노테이션
3.3.3 타입이 서로 다른 변수의 결합
3.4 연산자
3.4.1 산술 연산자
3.4.2 비교 연산자
3.4.3 논리 연산자
3.4.4 범위 연산자
3.4.5 대입 연산자
3.4.6 증감 연산자

CHAPTER 04
흐름 제어 구문: 코드의 활용성을 높여주는 도구들
4.1 반복문
4.1.1 for 구문
4.1.2 for 구문의 중첩
4.1.3 for ~ in 구문
4.1.4 while 구문
4.1.5 repeat ~ while 구문
4.2 조건문
4.2.1 if 구문
4.2.2 guard 구문
4.2.3 #available 구문
4.2.4 switch 구문
4.3 제어 전달문
4.3.1 break
4.3.2 continue
4.3.3 구문 레이블과 break, continue

CHAPTER 05
집단 자료형: 연관된 데이터를 손쉽게 다루기
5.1 배열
5.1.1 배열 순회 탐색
5.1.2 빈 배열 선언과 초기화
5.1.3 배열 아이템 동적 추가
5.1.4 범위 연산자를 이용한 인덱스 참조
5.2 집합
5.2.1 집합 정의
5.2.2 집합 순회 탐색
5.2.3 집합 동적 추가와 삭제
5.2.4 집합 연산
5.3 튜플
5.4 딕셔너리
5.4.1 딕셔너리 선언과 초기화
5.4.2 딕셔너리에 동적으로 아이템 추가하기
5.4.3 딕셔너리 순회 탐색

CHAPTER 06
옵셔널: 스위프트가 잠재적 오류를 다루는 방법
6.1 옵셔널 타입 선언과 정의
6.2 옵셔널 값 처리
6.2.1 옵셔널 강제 해제
6.2.2 옵셔널 비강제 해제
6.3 옵셔널 자동 해제

CHAPTER 07
함수가 갑입니다
7.1 함수 기본 개념
7.1.1 함수 정의
7.1.2 함수 호출
7.1.3 매개변수의 기본값
7.1.4 함수의 반환값과 튜플
7.2 매개변수
7.2.1 내부 매개변수명, 외부 매개변수명
7.2.2 가변 인자값
7.2.3 매개변수와 매개상수
7.2.4 inout 매개변수
7.2.5 변수의 범위와 생명주기
7.3 일급 객체로서의 함수
7.3.1 일급 함수의 특성
7.3.2 함수의 중첩
7.4 클로저(Closure)
7.4.1 클로저 표현식
7.4.2 클로저 표현식과 경량 문법

CHAPTER 08
구조체와 클래스: 객체지향 스위프트
8.1 구조체와 클래스 비교
8.2 구조체와 클래스 정의
8.2.1 메소드와 프로퍼티
8.2.2 인스턴스
8.2.3 구조체의 값 전달 방식(값에 의한 전달)
8.2.4 클래스의 값 전달 방식(참조에 의한 전달)
8.3 프로퍼티
8.3.1 저장 프로퍼티
8.3.2 연산 프로퍼티
8.3.3 프로퍼티 옵저버
8.3.4 타입 프로퍼티
8.4 메소드
8.4.1 인스턴스 메소드
8.4.2 타입 메소드
8.5 상속
8.5.1 서브클래싱
8.5.2 오버라이딩
8.6 타입 캐스팅
8.6.1 타입 비교 연산
8.6.2 타입 캐스팅 연산
8.6.3 Any, AnyObject
8.7 초기화
8.7.1 init 구문
8.7.2 초기화 구문의 오버라이딩
8.7.3 초기화 구문 델리게이션
8.8 옵셔널 체인
8.8.1 옵셔널 타입의 문제점
8.8.2 옵셔널 체인

CHAPTER 09
열거형과 확장 구문: 코드의 한계를 넓혀주는 것들
9.1 열거형
9.1.1 열거형 정의
9.1.2 멤버와 값의 분리
9.1.3 열거형의 활용
9.2 확장 구문
9.2.1 확장 구문과 연산 프로퍼티
9.2.2 확장 구문과 메소드

CHAPTER 10
프로토콜: 객체의 설계도
10.1 프로토콜 정의
10.1.1 프로토콜의 프로퍼티
10.1.2 메소드
10.1.3 초기화 구문
10.2 타입으로서의 프로토콜
10.3 델리게이션
10.4 프로토콜의 활용
10.4.1 확장 구문과 프로토콜
10.4.2 프로토콜의 상속
10.4.3 클래스 전용 프로토콜
10.4.4 Optional

CHAPTER 11
오류 처리: 스위프트는 어떻게 오류를 처리할까요
11.1 오류 처리
11.1.1 오류 타입 정의하기
11.1.2 오류 던지기
11.1.3 오류 객체 잡아내기

PART 03

CHAPTER 12
스위프트 앱 만들기
12.1 드디어 만드는 스위프트 앱
12.1.1 Xcode 프로젝트 생성
12.1.2 프로젝트 설정
12.1.3 프로젝트 구성과 스토리보드
12.1.4 스토리보드로 화면 구성하기
12.1.5 스토리보드로 화면 전환 구현하기
12.1.6 스위프트 코드 작성하기
12.2 UIKit 프레임워크
12.2.1 코코아 프레임워크 & 코코아 터치 프레임워크
12.2.2 뷰 컨트롤러

CHAPTER 13
iOS와 앱 생명주기
13.1 앱의 생명주기
13.1.1 MVC 패턴
13.1.2 앱을 구성하는 핵심 객체들
13.1.3 앱의 실행 상태
13.1.4 뷰 컨트롤러의 상태 변화
13.2 론치 스크린 제어하기
13.2.1 론치 스크린 수정
13.2.2 새로운 론치 스크린 파일로 교체

CHAPTER 14
화면상의 객체를 제어하는 방법
14.1 @IBOutlet과 @IBAction 어노테이션
14.1.1 @IBOutlet - 객체의 속성 제어
14.1.2 @IBAction - 객체의 이벤트 제어
14.2 UI 객체와 클래스 연결 방법
14.2.1 화면 요소에 대한 연결
14.2.2 커넥션 인스펙터 탭에서 연결
14.2.3 코드를 직접 작성해서 연결
14.2.4 뷰 컨트롤러 정보에서 연결
14.2.5 문서 개요 창을 이용해서 연결
14.3 연결 테스트

CHAPTER 15
화면 전환
15.1 iOS에서의 화면 전환 개념
15.2 화면 전환 기법 1 : 뷰를 이용한 화면 전환
15.3 화면 전환 기법 2 : 뷰 컨트롤러 직접 호출에 의한 화면 전환
15.3.1 화면 전환 실습
15.3.2 뒤로 가기 버튼 만들기
15.4 내비게이션 컨트롤러를 이용한 화면 전환
15.5 세그웨이를 이용한 화면 전환
15.5.1 액션 세그
15.5.2 매뉴얼 세그
15.5.3 Unwind - 화면 복귀
15.5.4 커스텀 세그
15.5.5 PrepareForSegue

CHAPTER 16
뷰 컨트롤러 간 데이터 교환
16.1 화면 전환 시 값 전달 방식
16.1.1 동기 방식
16.1.2 비동기 방식
16.2 뷰 컨트롤러에 직접 값 전달 방식
16.2.1 프레젠테이션 방식 화면 전환에서 값 전달
16.2.2 내비게이션 방식 화면 전환에서 값 전달
16.2.3 세그웨이 방식 화면 전환에서 값 전달

CHAPTER 17
델리게이트 패턴
17.1 패턴
17.2 델리게이트 패턴
17.3 메시지 알림창 구현 - UIAlertView
17.3.1 알림창 델리게이트 처리
17.3.2 알림창의 다양한 스타일
17.4 메시지 알림창 구현 - UIAlertController
17.5 이미지 피커 컨트롤러
17.5.1 UIImagePickerController 클래스
17.5.2 이미지 피커 컨트롤러의 델리게이트 메소드
17.5.3 이미지 피커 컨트롤러 실습

2부 실전 스위프트

PART 04

CHAPTER 18
테이블 뷰를 이용한 데이터 목록 구현
18.1 프로토타입 셀
18.1.1 셀 영역 구분
18.1.2 표준 편집 인터페이스
18.1.3 프로토타입 셀을 이용한 테이블 뷰 구성
18.2 데이터 소스
18.2.1 데이터 소스 만들기
18.2.2 테이블 뷰와 데이터 소스 연동
18.3 테이블 뷰 스타일 적용
18.4 커스텀 프로토타입 셀
18.5 커스텀 클래스로 프로토타입 셀 제어
18.6 프로토타입 셀에 이미지 뷰 추가

CHAPTER 19
네트워크 통신과 공공데이터 API
19.1 네트워크 통신의 종류
19.1.1 소켓 방식의 연결 지향 통신
19.1.2 HTTP, HTTPS, SMTP 방식의 비연결 지향 통신
19.2 앱을 만들 때 활용할 수 있는 공공 콘텐츠들
19.2.1 통합 데이터 제공 서비스
19.2.2 영화 정보 제공 서비스
19.3 오픈 API를 이용한 네트워크 실습
19.3.1 웹 서비스와 사용할 API 선정
19.3.2 오픈 API 사용 신청 및 인증 키 발급
19.3.3 네트워크를 통해 데이터 요청 코드 구현
19.3.4 전달받은 데이터를 파싱하여 화면에 출력
19.4 더보기 기능 구현
19.4.1 더보기 버튼과 more( ) 메소드 추가
19.4.2 테이블 뷰 갱신 처리
19.4.3 더보기 버튼 숨김 처리

CHAPTER 20
테이블 뷰의 동작 원리
20.1 테이블 뷰가 스크롤될 때 발생하는 일들
20.2 재사용 메커니즘
20.3 이미지 비동기 처리하기
20.4 일반 뷰 컨트롤러에서 테이블 뷰 사용하기

PART 05

CHAPTER 21
웹 뷰: 앱 안의 브라우저
21.1 웹 뷰
21.2 영화 정보 상세 화면 구현
21.3 인디케이터 뷰를 이용한 로딩 표시

CHAPTER 22
탭 바 컨트롤러
22.1 탭 바 컨트롤러
22.1.1 탭 바 기본 개념
22.1.2 탭 추가
22.1.3 탭 바 주요 기능
22.2 탭 바를 이용한 영화관 정보 제공
22.2.1 탭 바 컨트롤러 구성
22.2.2 영화관 API 사용 등록
22.2.3 영화관 목록 구현

CHAPTER 23
맵킷 프레임워크로 지도 사용하기
23.1 번들 프레임워크
23.2 맵킷 프레임워크 추가
23.3 영화관 위치 기능 구현

CHAPTER 24
다양한 디바이스를 만족시키는 레이아웃 설정
24.1 다양한 화면에 유연하게 대응하는 레이아웃
24.1.1 Auto-Resizing 기능
24.1.2 Auto-Layout 기능
24.2 유연한 레이아웃 적용하기
24.2.1 영화정보 화면
24.2.2 영화상세 화면
24.2.3 영화관 목록 화면
24.2.4 영화관 상세 화면

이 책을 마치며
찾아보기