1 장 제스처와 터치: 터치는 iOS상에서 사용자가 애플리케이션을 조작하는 가장 주요한 방식입니다. 터치에는 단순한 버튼 누르기와 키보드 인터랙션보다 훨씬 다양한 조작 방식이 포함되어 있습니다. 1장에서는 사용자의 직접적인 조작 방식과 멀티 터치 등을 설명합니다. 사용자가 화면상에서 끌어 움직일 수 있는 뷰를 만들어보고, 제스처를 구분하고 해석하는 방식과 커스텀 제스처 해석기를 작성하는 방법을 알아봅니다.
2장 컨트롤: 작성과 활용 컨트롤을 한 단계 업그레이드합니다. 2장은 컨트롤이 작동하는 방식을 이해하는 데 필요한 모든 것을 설명할 것입니다. 보편적인 방법부터 아주 까다로운 방법까지, 컨트롤을 작성하고 수정하는 다양한 방식을 소개합니다.
3장 사용자 알림: iOS는 팝업 대화상자와 내부적인 알림의 프로그레스 바, 팝 오버, 효과음 재생 등 사용자의 주의를 끄는 여러 방식을 제공합니다. 3장은 각 알림 방식을 애플리케이션에서 활용하는 방법과 사용자 알림을 폭 넓게 구성하는 방법을 소개합니다. 각 알림 클래스를 활용하는 표준 방식과 더불어 블록 기분 API로 알림 인터랙션을 쉽게 관리하는 방식을 알 수 있을 것입니다.
4장 뷰와 애니메이션: UIView 클래스와 그 하위 클래스는 iOS 장치 스크린 화면을 구성하고 있습니다. 4장은 기초 수준부터 고급 기능까지 뷰에 대한 모든 것을 소개합니다. 여러 뷰 예제를 찾아보면서 뷰 오브젝트를 가져오고, 움직이며 조작하는 다양한 방법, 뷰를 작성하고, 확인하며, 뷰 구조를 쪼개는 등 뷰를 다루는 방법을 이해할 수 있을 것입니다. 인터페이스에 뷰를 생성하고 배치하는 데 필요한 수식과 뷰 애니메이션으로 뷰를 움직이거나 투명화 하는 방법을 알아봅니다.
5장 자동 레이아웃: iOS의 자동 뷰 레이아웃이 진일보했습니다. 애플 레이아웃 기능으로 인터페이스를 일관성 있게 유지할 수 있습니다. 자동 레이아웃 기능은 특히 화면 크기가 다른 유사 장치군을 대상으로 애플리케이션을 만들 때 동적인 인터페이스, 회전, 언어 변환에 중요하게 적용 가능합니다. 5장에서는 화면상의 오브젝트 간 관계를 생성하는 방법과 iOS에서 뷰를 자동으로 배치하도록 설정하는 방법을 알 수 있습니다. 결론적으로 스크린 규격에 꼭 들어맞는 구성을 만들기 위한 탄탄한 방법론을 익힐 수 있습니다.
6장 텍스트 입력: 다양한 경우를 포괄할 수 있는 텍스트 관련 예제를 소개합니다. 키보드 컨트롤 방법을 비롯해, 화면상의 구성 엘리먼트가 ‘텍스트 인식이 가능하도록’ 만드는 방법, 텍스트 스캔, 형식 설정 등의 방법을 소개합니다. 텍스트 입력창, 텍스트 뷰에서 iOS의 자체 인라인 철자 확인 기능까지 iOS 애플리케이션에서 텍스트를 다루는 거의 모든 방법을 설명합니다.
7장 뷰 컨트롤러: 사용자 인터랙션을 가상공간으로 확장, 활용할 때 필요한 다양한 뷰 컨트롤러에 대해 설명합니다. 페이지 뷰 컨트롤러 예제부터 시작해 스플릿 뷰 컨트롤러, 내비게이션 컨트롤러 등까지 알아봅니다.
8장 공통 컨트롤러: iOS SDK는 일상적인 개발 작업에 적용할 수 있는 풍부한 시스템 지원 컨트롤러를 제공합니다. 8장은 그 중에서도 가장 대표적인 공통 컨트롤러를 알아봅니다. 사진 라이브러리의 이미지 선택 컨트롤러, 사진 찍기, 영상 녹화와 편집 관련 내용을 찾아볼 수 있을 것입니다. 애플리케이션과 이메일, 문자 메시지의 작성, 전송 기능을 연계하는 방법과 트위터/페이스북과 같은 소셜 미디어 상태 업데이트를 연결하는 방법을 익혀 봅니다.
9장 테이블 뷰: 생성과 관리 테이블(표)은 비교적 작은 장치의 경우 스크롤 인터랙션 화면을 구성하는 기능으로, 좀 더 큰 태블릿에서는 인터랙션 화면 구성의 핵심으로 양쪽에서 주요한 역할을 담당합니다. 많은 iOS 앱은 간략한 자체 구성 때문에 테이블을 자주 활용합니다. 9장에서는 테이블을 소개하고, 그 작동 방식을 설명하며, 개발자가 활용할 수 있는 자체 테이블의 종류와 각자의 애플리케이션에서 테이블 기능을 활용하는 방법 등을 알아봅니다.
10장 컬렉션 뷰: 컬렉션 뷰는 테이블 뷰와 관념적으로 상당부분 비슷하지만 기능 면에서 좀 더 강력하고 유연합니다. 10장에서는 컬렉션 뷰를 시작하기에 필요한 기반 내용 전체를 한 차례 훑어봅니다. 횡스크롤 목록, 그리드 배치를 비롯해 원형 배치 등 다양한 레이아웃을 익힐 준비가 필요합니다. 또 레이아웃 설정에 시각 효과를 추가하는 방법과 스크롤에 따라 아이템의 배치를 변경하는 방법을 배우고, iOS에서 제공하는 애니메이션 기능을 통해 가장 효과적인 인터랙션을 구성하는 방법에 대해서 알 수 있을 것입니다.
11장 문서/데이터 공유: iOS 애플리케이션은 iOS의 시스템 지원 기능을 통해 정보와 데이터, 심지어 애플리케이션 컨트롤까지 다른 애플리케이션에 전달하고 공유할 수 있습니다. 11장에서는 애플리케이션 간의 문서와 데이터 공유 기능을 더하는 방법에 대해 소개합니다. 공유 기능을 애플리케이션에 추가하는 방법, 그리고 iOS 생태계를 구성하는 하나의 앱 구성원으로써 영리하게 데이터 공유에 대응하는 방법을 알아봅니다.
12장 코어 데이터 맛보기: 코어 데이터는 애플리케이션에서 요청, 업데이트 할 수 있도록 데이터를 저장하고 관리하는 기능을 제공합니다. 코어 데이터는 데이터를 코코아터치 기반 오브젝트 인터페이스로 관리하는 기능을 제공, 오브젝티브C 언어의 iOS 개발 과정에서 관계형 데이터 관리를 가능케 합니다. 12장은 코어 데이터를 소개한다. 이 책에서는 코어 데이터 기술을 맛보기에 모자람이 없을 정도의 예제 정도만을 소개합니다. 여기에서 설명한 내용은 이후 코어 데이터를 배우고자 할 때 도약할 발판이 되어 줄 것입니다. 관리 데이터베이스 저장소를 설계하는 방법, 데이터를 추가/삭제하는 방법과 코드상으로 데이터를 쿼리해서 UIKit의 테이블 뷰 또는 컬렉션 뷰에 통합해 넣는 방법 등을 알아봅니다.
13장 네트워크의 기초: 인터넷에 연결할 수 있는 장치일 경우 iOS는 웹 기반 서비스를 구독하는 데 특화된 기능을 제공합니다. 애플은 iOS 플랫폼을 거의 모든 종류의 네트워크 연산 서비스와 관련 지원 기술을 갖춘 깔끔하고 단단한 기반으로 만들었습니다. 13장은 네트워크 연산에 필요한 공통 기법과 함께 일상적인 네트워크 작업을 단순화하는 방법 등을 설명합니다. 또 iOS 7부터는 달라진 HTTP 시스템을 소개하고, 데이터를 내려받는 방법, 특히 백그라운드 작업으로 다운로드를 진행하는 방법을 알아보겠습니다. 또 네트워크 연결성을 확인하는 방법과 웹 서비스, XML 해석기능과 JSON 직렬화 기능을 통해 실제 서비스와 연결하는 기법을 사례와 함께 익힐 수 있습니다.
14장 장치 특성: iOS 장치는 각기 독창성도 있는 반면에 공통점도 있고, 일시적이거나 영속적인 특징들도 저마다 다릅니다. 각 장치의 특성을 예로 들어보자면 실제 스크린 방향 전환, 모델명, 배터리 상태, 하드웨어 장치 접근성 등이 있습니다. 14장은 장치의 빌드 설정을 확인하는 방법부터 하드웨어 센서를 활용하는 방법까지를 설명합니다. 실제 사용하는 장치의 다양한 정보를 가져와서 활용하는 예제를 찾아볼 수 있습니다.
15장 손쉬운 사용: 보이스오버(VoiceOver)와 접근성 기능에 대해 간략하게 설명합니다. 접근성 기능은 대상 사용자의 범위를 크게 넓혀줍니다. 애플리케이션의 화면 구성요소에 접근성 라벨과 힌트를 부여하는 방법, 그리고 시뮬레이터 프로그램과 실제 iOS 장치에서 접근성 기능을 테스트하는 방법에 대해서 알아보겠습니다.
부록A 오브젝티브C 구문: 새롭게 등장한 오브젝티브C 구성을 소개합니다. 특히 숫자, 배열, 딕셔너리 형식이 달라졌습니다.