책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 모바일 프로그래밍 > 아이폰/아이패드
· ISBN : 9788998139193
· 쪽수 : 816쪽
책 소개
목차
▣ 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: 이제 어디로?
애플의 문서
메일링 목록
토론 포럼
웹사이트
블로그
컨퍼런스
저자 트위터 팔로우
작별 인사
저자소개
책속에서
다음은 이 책의 나머지 장에서 다룰 내용을 간략히 정리한 것이다.
2장에서는 엑스코드의 단짝인 인터페이스 빌더를 활용해 간단한 인터페이스를 만들고 화면에 텍스트를 배치한다.
3장에서는 사용자가 누르는 버튼에 따라 런타임 시점에 텍스트의 내용을 동적으로 업데이트하는 애플리케이션을 개발해 사용자와 상호작용하는 프로그램의 개발을 시작한다.
4장에서는 iOS의 표준 UI 컨트롤을 몇 가지 더 살펴보면서 3장의 예제에 살을 덧붙인다. 또 경고창과 액션 시트를 활용해 사용자가 결정을 내리게 하고, 사용자에게 어떤 일이 일어났음을 알려주는 법을 살펴본다.
5장에서는 iOS 애플리케이션을 가로와 세로 모드에서 사용할 수 있게 해주는 메커니즘인 자동 회전과 자동 크기 조절 속성을 살펴본다.
6장에서는 좀 더 고급 UI를 살펴보고 여러 뷰를 지원하는 애플리케이션을 작성하는 법을 배운다. 이 장에서는 런타임 시에 사용자에게 보여줄 뷰를 변경하는 법을 배움으로써 애플리케이션의 활용 범위를 한층 더 넓힌다.
탭바와 피커는 표준 iOS UI에 속한다. 7장에서는 이런 UI 요소를 구현하는 법을 살펴본다.
8장에서는 사용자에게 데이터 목록을 전달하는 데 주로 사용하는 테이블 뷰를 살펴보고 계층적 내비게이션 기반 애플리케이션의 기본 지식을 배운다. 또 애플리케이션 데이터를 사용자가 검색할 수 있게 하는 기능을 살펴본다.
iOS 애플리케이션에서 가장 자주 볼 수 있는 인터페이스 중 하나는 내부 뷰로 이동해 더 많은 데이터와 상세 정보를 확인할 수 있는 계층형 리스트 인터페이스다. 9장에서는 이런 표준 인터페이스를 구현하는 법을 살펴본다.
iOS 개발자들은 전통적으로 nib 파일을 사용해 사용자 인터페이스를 개발했다. 물론 지금도 이 방식을 완벽히 지원하지만, 요즘은 스토리보드를 사용해 더 간편하게 더 많은 작업을 할 수 있다. 10장에서는 스토리보드가 제공하는 멋진 새 기능을 다룬다.
다른 iOS 기기와는 기기 크기에서 차이가 있는 아이패드는 GUI를 보여줄 때 다른 접근 방식을 사용해야 하며, SDK에서는 이를 도와주는 일부 컴포넌트를 제공한다. 11장에서는 아이패드 전용 SDK를 활용하는 법을 살펴본다.
12장에서는 애플리케이션 환경설정을 구현하는 법을 살펴본다. 애플리케이션 환경 설정을 활용하면 사용자들이 애플리케이션별로 원하는 환경설정을 지정할 수 있다.
13장에서는 iOS에서 데이터를 관리하는 법을 알아본다. 이 장에서는 애플리케이션 데이터를 보관할 객체를 생성하는 법을 설명하고 이런 데이터를 iOS의 파일 시스템에 영속화하는 법을 살펴본다. 또 코어 데이터를 활용하는 기본적인 방법을 통해 데이터를 쉽게 저장하고 조회하는 법을 설명한다.
iOS 5에서 애플은 아이클라우드를 도입했다. 아이클라우드는 문서에서 데이터를 온라인에 저장하고 다른 애플리케이션과 동기화할 수 있게 해준다. 14장에서는 아이클라우드를 시작하는 법을 살펴본다.
iOS 4부터는 개발자들이 그랜드 센트럴 디스패치를 통해 다중 스레드를 활용한 애플리케이션을 개발하고 특정 상황에서 애플리케이션이 백그라운드에서 실행되게 할 수 있다. 15장에서는 이를 구현하는 법을 살펴본다.
그림 그리기는 누구나 좋아한다. 16장에서는 커스텀 드로잉을 살펴본다. 이 장에서는 쿼츠 2D와 오픈지엘 ES를 활용한 기본 드로잉을 설명한다.
모든 iOS 기기에 공통적으로 들어 있는 멀티 터치 화면은 사용자로부터 다양한 제스처를 입력받을 수 있다. 17장에서는 핀치, 스와이프 같은 기본 제스처를 인식하는 법을 배운다. 또 새로운 제스처를 정의하는 방법을 살펴보고 언제 새로운 제스처를 사용하는 게 적절한지도 설명한다.
iOS는 코어 로케이션을 활용해 위도와 경도를 판단할 수 있다. 18장에서는 코어 로케이션을 활용해 현재 iOS 기기가 있는 위치를 판단하는 법을 살펴보고 이 정보를 활용해 세계 정복에 나선다.
19장에서는 iOS의 가속도계 및 자이로스코프와 연동하는 법을 살펴보고, 이를 통해 현재 기기가 움직이는 방향과 속도를 판단한다. 또 이런 정보를 활용해 애플리케이션에서 구현할 수 있는 재미있는 예제를 살펴본다.
거의 모든 iOS 기기에는 카메라와 사진 라이브러리가 있으며 올바른 방식으로 요청하기만 하면 애플리케이션에서는 이 둘을 모두 활용할 수 있다. 20장에서는 이런 요청 방법을 살펴본다.
초창기부터 많은 iOS 애플리케이션이 동적인 화면을 보여주거나 수직 스크롤을 통해 여러 컴포넌트를 보여줄 때 테이블 뷰를 활용했다. iOS 6에서 애플은 이 개념을 한 단계 더 발전시켜 UICollectionView라는 새 클래스를 통해 개발자들이 시각적인 컴포넌트 배치를 좀 더 유연하게 할 수 있게 해줬다. 21장에서는 이와 같은 컬렉션 뷰를 활용하는 법을 살펴본다.
iOS 기기는 현재 90개국 이상에서 사용한다. 22장에서는 애플리케이션의 전 영역을 다른 언어로 쉽게 번역할 수 있게 애플리케이션을 개발하는 법을 배운다. 이를 잘 활용하면 애플리케이션의 사용자층을 훨씬 넓힐 수 있다.
이 책을 끝마치고 나면 아이폰 및 아이패드 애플리케이션 개발에 필요한 구성요소를 모두 마스터할 수 있다. 그럼 책을 다 읽고 난 후에는 어떤 자료를 봐야 할까? 부록에서는 iOS SDK를 마스터하기 위한 여정의 다음 목적지를 어디로 정하는 게 좋을지 살펴본다.