시작하세요 iOS 6 프로그래밍
도서명:시작하세요 iOS 6 프로그래밍
저자/출판사:데이브,마크,잭,너팅,제프,라마시,프레드릭,올슨/위키북스
쪽수:816쪽
출판일:2013-05-03
ISBN:9788998139193
목차
01장: 정글에 온 것을 환영한다
이 책에 대한 소개
책에 필요한 도구
- 개발자 옵션
- 이 책의 내용을 이해하는 데 필요한 배경 지식
iOS 코딩의 차이점
- 단 하나뿐인 활성 애플리케이션
- 단 하나뿐인 창
- 제한된 접근
- 제한된 응답 시간
- 제한된 화면 크기
- 제한된 시스템 자원
- 가비지 컬렉션은 없지만..
- 코코아 터치의 고유 기능
- 다른 접근 방식
이 책에서 다루는 내용
개정판에서 달라진 점
시작할 준비가 끝났는가?
02장: 티키 신 달래기
엑스코드에서의 프로젝트 설정
- 엑스코드 워크스페이스 창
- 프로젝트 자세히 살펴보기
엑스코드 인터페이스 빌더의 소개
nib 파일에 포함된 내용
- 라이브러리
- 뷰에 라벨 추가하기
- 어트리뷰트 변경
마지막 다듬기 - 화룡점정
정리
03장: 기본 상호작용 처리
모델-뷰-컨트롤러 패러다임
프로젝트의 생성
뷰 컨트롤러 살펴보기
- 아웃렛과 액션의 이해
- 뷰 컨트롤러 정리하기
- UI 디자인
- 테스트
- 스타일 추가
애플리케이션 델리게이트 살펴보기
내용 정리
04장: 더 재미있는 사용자 인터페이스
컨트롤로 가득 찬 화면
능동적, 정적, 수동적 컨트롤
애플리케이션의 생성
이미지 뷰와 텍스트 필드의 구현
- 이미지 뷰의 추가
- 이미지 뷰의 크기 조절
- 뷰 어트리뷰트의 설정
- 텍스트 필드 추가
- 아웃렛의 생성과 연결
키보드 닫기
- Done을 탭할 때 키보드 닫기
- 배경을 터치할 때 키보드 닫기
- 슬라이더와 라벨 추가
- 상단 위치 제약의 추가
- 액션 및 아웃렛의 생성과 연결
- 액션 메서드 구현
스위치, 버튼, 분할 컨트롤의 구현
- 스위치 액션 구현
분할 컨트롤의 액션 구현
액션 시트와 경고창 구현
- 액션 시트 델리게이트 메서드의 프로토콜 따르기
- 액션 시트 보여주기
버튼 꾸미기
- viewDidLoad 메서드의 활용
- 컨트롤 상태
- 확장 가능 이미지
결승선 통과하기
05장: 자동 회전과 자동 크기 조절
자동 회전 기법
- 포인트, 픽셀, 레티나 디스플레이
- 자동 회전 접근 방식
뷰 방향 선택
- 앱 전역 지원 방향 설정
- 컨트롤러별 지원 방향 설정
제약을 활용한 인터페이스 디자인
- 기본 제약 재정의
- 전체 너비 버튼
기기 회전 시 뷰 구조의 변경
- 아웃렛의 생성과 연결
- 회전 시 버튼 움직이기
뷰 대체하기
- 두 개의 뷰 디자인
- 뷰 대체 기능 구현하기
- 아웃렛 컬렉션의 수정
이곳에서 빠져나가기
06장: 멀티뷰 애플리케이션
자주 사용하는 멀티뷰 애플리케이션 형태
멀티뷰 애플리케이션의 아키텍처
- 루트 컨트롤러
- 콘텐츠 뷰의 해부
View Switcher 애플리케이션 개발
- 뷰 컨트롤러 및 Nib 파일 생성
- 애플리케이션 델리게이트의 수정
- BIDSwitchViewController.h 수정
- 뷰 컨트롤러 추가
- 툴바를 활용한 뷰 개발
- 루트 뷰 컨트롤러 작성
- 콘텐츠 뷰 구현
- 화면 전환 애니메이션
스위치를 내릴 시간
07장: 탭 바와 피커
Pickers 애플리케이션
델리게이트와 데이터 소스
탭 바 프레임워크 설정
- 파일 생성
- 루트 뷰 컨트롤러 추가
- TabBarController.xib 생성
- 초기 테스트 실행
데이트 피커 구현
단일 컴포넌트 피커 구현
- 아웃렛과 액션 선언
- 뷰 개발
- 데이터 소스와 델리게이트로 활용할 컨트롤러 구현
멀티 컴포넌트 피커 구현
- 아웃렛과 액션 선언
- 뷰 개발
- 컨트롤러 구현
의존 컴포넌트 구현
커스텀 피커를 활용한 간단한 게임 개발
- 컨트롤러 헤더 파일 작성
- 뷰 개발
- 이미지 자원 추가
- 컨트롤러 구현
- 마지막 세부 사항
- Audio Toolbox 프레임워크 연결
마지막 스핀
08장: 테이블 뷰
테이블 뷰의 기본
- 테이블 뷰와 테이블 뷰 셀
- 그룹 테이블과 일반 테이블
간단한 테이블 구현
- 뷰 디자인
- 컨트롤러 작성
- 이미지 추가
- 테이블 뷰의 셀 스타일 활용
- 들여쓰기 수준 설정
- 선택한 행 처리
- 폰트 크기와 행 크기 변경
테이블 뷰 셀 커스터마이징
- 테이블 뷰 셀에 하위 뷰 추가
- UITableViewCell 하위 클래스 작성
- Nib을 이용한 UITableViewCell 로드
그룹과 인덱스 섹션
- 뷰 개발
- 데이터 불러오기
- 컨트롤러 구현
- 인덱스 추가
검색 바 구현
- 내비게이션 바 추가
한 테이블 위에 올려놓고 정리하기
09장: 내비게이션 컨트롤러와 테이블 뷰
내비게이션 컨트롤러의 기본
- 스택이란?
- 컨트롤러의 스택
6개 영역으로 구성된 계층적 애플리케이션 Nav
- 하위 컨트롤러 살펴보기
- Nav 애플리케이션의 골격
- 프로젝트에 이미지 추가
- 첫 번째 하위 컨트롤러: 더 보기 버튼 뷰
- 두 번째 하위 컨트롤러: 체크리스트
- 세 번째 하위 컨트롤러: 테이블 행 내의 컨트롤
- 네 번째 하위 컨트롤러: 이동할 수 있는 행
- 다섯 번째 하위 컨트롤러: 삭제할 수 있는 행
- 여섯 번째 하위 컨트롤러: 편집할 수 있는 상세 영역
- 수정할 수 있는 상세 뷰 컨트롤러 인스턴스 추가
그런데 남은 작업이 한 개 더 있다.
결승선 끊기
10장: 스토리보드
간단한 스토리보드 개발
동적 프로토타입 셀
- 스토리보드를 활용한 동적인 테이블 콘텐츠
- 프로토타입 셀 편집
- 익숙한 테이블 뷰 데이터 소스
- 로드될까?
정적 셀
- 정적 셀 작업
- 안녕, 테이블 뷰 데이터 소스
세그웨이
- 세그웨이 내비게이터 개발
- 빈 공간 채우기
- 첫 번째 화면 전환
- 조금 더 유용한 할 일 목록
- 할 일 상세 화면
- 더 많은 세그웨이 생성
- 리스트에서 할 일 넘겨주기
- 할 일 상세보기 처리
- 상세 값 다시 전달하기
- 리스트가 상세 값 받게 하기
- 다음 장으로의 부드러운 전환
11장: 아이패드에 대한 고려사항
분할 뷰와 팝오버
- 분할 뷰 프로젝트 생성
- 템플릿 구조가 정의된 스토리보드
- 기능을 정의한 코드
대통령님이 오십니다
커스텀 팝오버의 생성
아이패드 마무리
12장: 애플리케이션 설정과 사용자 기본값
설정 번들 이해하기
AppSettings 애플리케이션
- 프로젝트 생성
- 설정 번들 활용
- 애플리케이션에서 설정 읽기
- 애플리케이션 내에서의 기본값 수정
- 기본값의 등록
- 실제처럼 만들기
스코티, 날 전송해줘
13장: 데이터 영속성의 기본
애플리케이션의 샌드박스
- Documents 디렉터리 접근
- tmp 디렉터리 접근
파일 저장 전략
- 단일 파일을 활용한 영속화
- 여러 파일을 활용한 영속화
프로퍼티 리스트 활용
- 프로퍼티 리스트 직렬화
- Persistence 애플리케이션의 첫 번째 버전
모델 객체 아카이빙
- NSCoding 프로토콜 따르기
- NSCopying의 구현
- 데이터 객체의 아카이빙 및 아카이빙 해제
- 아카이빙 애플리케이션
iOS의 임베디드 SQLite3 활용
- 데이터베이스 생성과 열기
- 바인드 변수 활용
- SQLite3 애플리케이션
코어 데이터 활용
- 엔티티와 관리 객체
- 코어 데이터 애플리케이션
영구적인 보상
14장: 아이클라우드 시작하기
UIDocument를 활용한 문서 저장소 관리
TinyPix 개발
BIDTinyPixDocument 생성
코드 마스터
초기 스토리보드 작업
BIDTinyPixView 개발
상세 뷰 스토리보드
아이클라우드 지원 기능 추가
- 프로비저닝 프로파일 생성
- 아이클라우드 지원 활성화
- 조회 방법
- 어디에 저장할까?
- 아이클라우드에 환경설정 저장하기
이 장에서 다루지 않은 내용
15장: 그랜드 센트럴 디스패치, 백그라운드 처리, 그리고 여러분
그랜드 센트럴 디스패치
SlowWorker 소개
스레딩의 기본
작업 단위
GCD: 저수준 큐
- 블록헤드 되기
- SlowWorker 개선
백그라운드 처리
- 애플리케이션 생명 주기
- 상태 변화 알림
- State Lab 애플리케이션 개발
- 실행 상태 살펴보기
- 실행 상태 변화 활용
- 비활성 상태의 처리
- 백그라운드 상태의 처리
그랜드 센트럴 디스패치, 통신 끝!
16장: 쿼츠와 오픈지엘을 활용한 드로잉
그래픽 세계의 두 가지 뷰
쿼츠 2D의 드로잉 접근 방식
- 쿼츠 2D의 그래픽 컨텍스트
- 좌표계
- 색상 지정
- 컨텍스트 내에서의 이미지 드로잉
- 다각형, 선, 곡선 그리기
- 쿼츠 2D 툴을 이용한 패턴, 그라이언트, 점선 패턴 예제
QuartzFun 애플리케이션
- QuartzFun 애플리케이션의 설정
- 쿼츠 2D 드로잉 코드 추가
- QuartzFun 애플리케이션의 최적화
GLFun 애플리케이션
- GLFun 애플리케이션 설정
- BIDGLFunView의 생성
- BIDViewController 업데이트
- Nib 파일 업데이트
- GLFun 애플리케이션 마무리
끝이 가까워지고 있다
17장: 탭, 터치, 제스처
멀티터치 관련 용어
리스폰더 체인
- 이벤트에 반응하기
- 리스폰더 체인을 활용한 이벤트 전달
멀티터치 아키텍처
네 개의 터치 알림 메서드
TouchExplorer 애플리케이션
Swipes 애플리케이션
- 자동 제스처 인식
- 다중 스와이프 구현
멀티 탭 감지
핀치 및 회전 감지
커스텀 제스처 정의
- CheckPlease 애플리케이션
- CheckPlease 터치 메서드
저기요? 확인 부탁해요!
18장: 여기는 어디? 코어 로케이션을 활용한 길 찾기
위치 관리자
- 원하는 정확도 설정
- 거리 필터 설정
- 위치 관리자의 사용 시작
- 위치 관리자의 현명한 활용법
위치 관리자 델리게이트
- 위치 업데이트 받기
- CLLocation을 활용한 위도와 경도 파악
- 에러 알림
코어 로케이션 활용
- 위치 관리자 업데이트
지도상에서의 움직임 시각화
어디를 가든, 그 자리에 여러분이 있다
19장: 야호! 자이로와 가속도계!
가속도계 물리 이론
회전을 잊지 말자
코어 모션과 모션 관리자
- 이벤트 기반 모션
- 적극적인 모션 접근
- 가속도계의 결과
흔들림 감지
- 흔들림 감지 내장 기능
- 흔들어서 깨뜨리기
가속도계를 활용한 방향 제어
- 구슬 굴리기
- BIDBallView 작성
- 구슬의 움직임 계산
계속 구르기
20장: 카메라와 사진 라이브러리
이미지 피커와 UIImagePickerController 활용
이미지 피커 컨트롤러 델리게이트 구현
카메라와 사진 라이브러리의 길거리 테스트
- 인터페이스 디자인
- 카메라 뷰 컨트롤러 구현
식은 죽 먹기!
21장: 컬렉션 뷰
DialogViewer 프로젝트 생성
뷰 컨트롤러 클래스 수정
커스텀 셀 정의
뷰 컨트롤러 설정
콘텐츠 셀 제공
레이아웃 흐름 지정
헤더 뷰 제공
정리하며
22장: 애플리케이션 지역화
지역화 아키텍처
문자열 파일
- 문자열 파일 내용
- 지역화된 문자열 매크로
실전 iOS 애플리케이션의 지역화
- LocalizeMe 애플리케이션 설정
- LocalizeMe 애플리케이션 테스트
- Nib 파일 지역화
- 이미지의 지역화
- 문자열 파일 생성과 지역화
- 기반 지역화
- 애플리케이션 표시 이름의 지역화
안녕, 또 만나요
부록A: 이제 어디로?
애플의 문서
메일링 목록
토론 포럼
웹사이트
블로그
컨퍼런스
저자 트위터 팔로우
작별 인사