고급 개발자를 위한 iOS 프로그래밍
: 그 한계를 넘어서
저자: 롭 네이피어, 무건스 쿠마
역자: 황반석
출판사: 비제이퍼블릭
출간일: 2012년 8월 27일 (월)
정가: 30,000원
페이지: 517p
판형: 190 x 245
ISBN: 978-89-94774-19-0 (93560)
원서정보: iOS 5 Programming: Pushing the Limits
관련분류:
- 컴퓨터와 인터넷 > IT 전문서 > 모바일 프로그래밍 > 아이폰
- 컴퓨터와 인터넷 > IT 전문서 > 모바일 프로그래밍 > 모바일 게임
- 컴퓨터/IT > 네트워크/보안 > 모바일프로그래밍
책 소개
아이폰, 아이패드, 아이팟 터치을 위한, 한계를 넘어서는 고급 애플리케
이션 개발
이 책은 아이패드, 아이폰 그리고 아이팟 터치를 위한 고급 앱 개발에 대한 종합적인 안내서다. 이 책의 저자이자 베테랑 모바일 개발자인 롭 네이피어와 무건스 쿠마르는 다른 iOS 개발서에서 다루지 않는 고급 주제들을 이 책에서 다루고 있다. 코어 파운데이션 API에 대한 상세 내용부터 Grand Central Dispatch를 이용한 속도와 성능을 최대화하는 것과 UI 흐름을 스토리보드로 구성하는 것까지, 여러분이 재미있고 완벽한 기능을 가진 고성능의 애플리케이션들을 만드는 데 필요한 모든 사항들을 하나씩 단계적으로 안내한다.
그저 그런 앱에 안주하지 말고, 이 책을 통해 특별하고 훌륭한, 한계를 넘어서는 모바일 앱을 개발해보자!
이 책에서 다루는 내용
l 오브젝티브-C 런타임과 상호작용하기
l 코어 텍스트를 이용한 고급 텍스트 레이아웃 이용하기
l 런타임 시 객체에 대해 살펴보고 클래스를 수정하기
l 재사용할 수 있는 복잡한 테이블 뷰 레이아웃 생성하기
l 멀티태스킹 제어하기
l 함수형 프로그래밍을 구현하기 위해 블록 사용하기
l 멀티 플랫폼에서 실행하기
l 모든 RESTful 웹 서비스들에 대해 최고의 성능을 내는 앱 만들기
l 보안 서비스 최적화하기
l 네트워크 연결이 불규칙한 지역을 위한 초고속 캐싱 구현하기
l 놀랄만한 애니메이션 만들기
l In-App Purchases 최적화하기
소스 코드
예제를 따라 책을 읽으면 모든 코드를 직접 입력하는 방법과 제공하는 소스 코드를 이용하는 방법
이 있다. 이 책에서 사용된 모든 소스 코드는 www.wrox.com/go/ptl/ios5programming에서 내려 받을 수 있다(옮긴이의 카페인 cafe.naver.com/petersbook에서도 내려 받을 수 있다).
독자대상
중고급
저자소개
롭 네이피어 (Rob Napier)
나무 집을 만들기가 취미이며 하이킹을 즐긴다. 그는 2005년부터 맥 관련 개발을 해왔으며, 아이폰 SDK가 처음 나왔을 때부터 아이폰 개발을 했고 더 데일리(The Daily)와 판도라보이(PandoraBoy), 그리고 시스코 모바일(Cisco Mobile) 같은 제품들을 개발하였다. 또한 스택 오버플로우(Stack Overflow)에 많은 기여를 했으며, Cocoaphony라는 블로그(www.cocoaphony.com)를 운영하고 있다.
무건스 쿠마 (Mugunth Kumar)
싱가포르에 있는 개인 개발자다. 그는 2009년에 대학을 졸업하고, 싱가포르에 있는 난양 기술 대학(Nanyang Technological University)에서 정보 시스템을 전공으로 석사 과정에 있다. 그는 블로그(blog.mugunthkumar.com)에 모바일 개발과 소프트웨어 사용성, 그리고 iOS 관련 튜토리얼을 올리고 있다. iOS 개발을 하기 전에는 윈도우즈와 닷넷 플랫폼에 대한 컨설턴트로 포춘이 선정하는 상위 500대 기업인 GE와 허니웰(Honeywell)에서 일을 했다. 그의 관심 분야는 프로그래밍 방법론(객체 지향 방법과 함수형 방법)과 모바일 개발, 그리고 사용성 공학이다. 만약에 그가 개발자가 되지 않았다면 아마도 이국적인 어느 곳에서 대자연의 멋진 사진을 찍고 있었을지도 모른다.
역자소개
황반석
한양대학교에서 컴퓨터 공학을 전공한 후 한결같이 개발자의 길을 걷고 있다. 현재는 ‘트렌디앱’(http://www.trendyapp.co.kr) 회사의 공동창업자이자 COO로 폭넓은 모바일 세계를 개척하고 펼치겠다는 푸른 꿈을 꾸고 있다. 옮긴 책으로는 《핵심만 골라 배우는 오브젝티브-C 2.0》(2011, 제이펍), 《렛츠 고! iOS 4 애플리케이션 개발》(2011, 제이펍), 《입문자를 위한 아이폰 게임 개발》(2011, 제이펍), 《맥과 아이폰 개발자를 위한 Xcode》(2010, 제이펍)가 있다.
목차
Part 1 새로워진 것들
Chapter 1 완전히 새로운 것
iOS의 역사
새로운 것들
요약
참고 자료
Chapter 2 Xcode 4와 친해지기
새로운 사용자 인터페이스 배우기
All in One 윈도
내비게이터 살펴보기
보조 편집기의 도움
통합된 인터페이스 빌더
LLVM 컴파일러 3.0: 두뇌의 집합소
Git: 소스 코드의 버전이 있는 곳
스킴
빌드 설정에 주석을 달 수 있어요
Xcode 4 오거나이저
요약
참고 자료
Part 2 자주 사용하는 도구 최대한 활용하기
Chapter 3 일반적인 오브젝티브-C
명명 규칙
Automatic Reference Counting
프로퍼티
접근자
카테고리와 확장
공식적인 프로토콜과 비공식적인 프로토콜
요약
참고 자료
Chapter 4 느슨하게 유지하기: 코코아 디자인 패턴
Model-View-Controller 이해하기
델리게이트와 데이터 소스 이해하기
커맨드 패턴으로 작업하기
옵서버 패턴으로 작업하기
싱글턴 패턴으로 작업하기
요약
참고 자료
Chapter 5 테이블 뷰, 바르게 이해하기
UITableView 클래스 계층 구조
테이블 뷰 이해하기
스토리보드
스토리보드 시작하기
UIAppearance 프로토콜을 이용하여 뷰를 커스터마이징 하기
요약
참고 자료
Chapter 6 향상된 드로잉
iOS의 수많은 드로잉 시스템
UIKit과 뷰 드로잉 주기
뷰 드로잉 대 뷰 레이아웃
커스텀 뷰 드로잉
UIView 드로잉 최적화하기
CGLayer
요약
참고 자료
Chapter 7 양파 같은 레이어: 코어 애니메이션
뷰 애니메이션
사용자 인터랙션 관리하기
레이어를 가지고 그리기
움직이기
3차원으로 가기
레이어 꾸미기
액션으로 자동 애니메이션 하기
커스텀 프로퍼티를 애니메이션 하기
코어 애니메이션과 스레드
요약
참고 자료
Chapter 8 짜증나는 에러에 태클 걸기
에러 처리 패턴
어서션
예외
충돌 캐칭과 리포팅
에러와 NSError
로그
요약
참고 자료
Part 3 작업에 적합한 도구
Chapter 9 멀티태스킹 제어하기
백그라운드 작업을 위한 모범사례: 큰 권한에는 그만큼의 책임이 따른다
런 루프 이해하기
스레드
오퍼레이션 중심의 멀티태스킹 개발하기
Grand Central Dispatch로 멀티태스킹 하기
요약
참고 자료
Chapter 10 지친 사람들을 위한 REST
REST 원리
데이터 교환 형식 결정하기
가상의 웹 서비스
기억해야 할 중요한 것들
RESTEngine 아키텍처(iHotelApp 샘플 코드)
요약
참고 자료
Chapter 11 보안 서비스로 위기에 대비하기
iOS 샌드박스 이해하기
네트워크 통신 보호하기
파일 보호 도입하기
키체인 이용하기
암호화 사용하기
요약
참고 자료
Chapter 12 여러 플랫폼과 기기에서 실행하기
멀티 플랫폼용으로 개발하기
디바이스 기능 감지하기
앱 내 이메일과 문자 메시지
멀티태스킹 확인하기
UIRequiredDeviceCapablities
요약
참고 자료
Chapter 13 국제화와 지역화
지역화란 무엇인가?
문자열 지역화하기
지역화되지 않은 문자열 감시하기
숫자와 날짜 형식화하기
Nib 파일 지역화하기
요약
참고 자료
Chapter 14 앱 내 결제로 판매하기
시작하기 전에
앱 내 결제 제품
아이튠즈 커넥트에서 앱 설정하기
앱 내 결제 구현하기
MKStoreKit 소개
결제 만들기
여러분의 앱 내 결제 테스트하기
문제 해결
요약
참고 자료
Part 4 한계 밀어내기
Chapter 15 코코아 최고의 기술: 키-값 감시
키-값 코딩
키-값 감시
KVO의 장단점
요약
참고 자료
Chapter 16 다르게 생각하기: 블록과 함수형 프로그래밍
블록이 무엇인가?
블록 선언하기
블록 구현하기
블록과 동시성
블록 기반의 코코아 메소드
지원되는 플랫폼
요약
참고 자료
Chapter 17 오프라인에서 실행하기
오프라인에서 실행하는 이유
캐싱에 대한 전략
AppCache 아키텍처
캐시 버전관리
인메모리 캐시 만들기
이미지 캐싱 하기
iCloud 사용하기
요약
참고 자료
Chapter 18 화려한 텍스트 레이아웃
일반적인 것: 필드, 뷰, 레이블
서식 있는 텍스트를 위한 웹 뷰
코어 텍스트
서식 있는 텍스트 비교
서드파티 방법
요약
참고 자료
Chapter 19 코어 파운데이션 구축하기
코어 파운데이션 타입
명명법과 메모리 관리
할당자
인트로스펙션
문자열과 데이터
컬렉션
Toll-free Bridging
요약
참고 자료
Chapter 20 오브젝티브-C 심화학습
클래스와 객체 이해하기
메소드와 프로퍼티로 작업하기
메시지 전달이 실제로 동작하는 방법
메소드 섞기
ISA 섞기
메소드 섞기 대 ISA 섞기
요약
참고 자료
출판사 리뷰
이 책의 원서는 iOS 5를 기반으로 쓰여졌다. 하지만 번역 작업이 모두 끝나자마자 애플은 iOS 6에 관하여 발표했으며 iOS 6 Beta가 개발자들에게 배포되었다. 이는 출판사나 번역자에게 너무나 당황스럽고 안타까운 일이다. 하지만 다행인 것은 이 책의 내용이 iOS 5 이상부터 적용되는 기술과 내용이며, 버전에 대해 걱정하지 않고도 읽을 수 있다는 점을 분명히 말해둔다.
누구를 위한 책인가?
이 책은 입문서가 아니다. 오브젝티브-C와 인터페이스 빌더를 가지고 하나하나 가르쳐주는 책은 이미 많이 있다. 이 책은 그런 책이 아니다. 이 책은 여러분이 독학했거나 관련 수업을 받아서 iOS에 관한 경험이 어느 정도 있다고 가정한다. 앱스토어에 앱을 출시하지 않았더라도 최소한 애플리케이션 하나를 만들어 본 경험이 있었으면 좋겠다. 여러분이 기초적인 단계를 넘어 실제적인 연습과 저자들이 실제 애플리케이션을 만들면서 습득한 비밀을 배울 준비가 되었다면 바로 여러분을 위한 책이 될 것이다.
또한 어떤 기능을 구현하는 것을 모아둔 책이 아니다. 예제를 충분하게 제시지만, 훌륭한 iOS 앱을 어떻게 설계하고 코딩 하는지, 어떻게 유지 보수하는지를 배우는 데 초점을 둔다. 이 책의 대부분은 단순히 어떻게 하는지보다는 그 이유와 원리에 관한 내용이어서, 코딩과 새로운 프레임워크에 대한 디자인 패턴과 재사용할 수 있는 코드를 작성하는 방법을 많이 배울 것이다. 모든 예제는 Xcode 4를 이용하였다. 여러분이 Xcode 4에 익숙하지 않아도 걱정하지 말자. 2장에서 빠르게 배울 것이다.
무엇을 다루나?
iOS 플랫폼은 항상 빠르게 변화하고 이 책 또한 그렇다. 대부분의 예제는 iOS 5가 필요하며, 모든 예제는 ARC를 사용한다. 일부를 제외하고는 이전 버전과의 호환성은 다루지 않는다. 여러분이 이전 버전과의 호환성이 필요한 코드를 작성해 봤다면 그 방법을 알 것이다. 이 책은 이용 가능한 최상의 기능을 사용하여 최고의 애플리케이션을 만드는 방법을 이야기한다. 이 책은 아이폰 4와 아이패드 2를 대상으로 한다. 대부분의 주제는 이전 아이패드와 아이팟 터치, 아이폰 3GS, 애플 TV에도 적용된다. 원고를 쓰는 지금 아이폰 5와 아이패드 3는 출시되지 않았지만 여기서 다루는 주제는 거기에도 동일하게 적용된다. 12장에서는 플랫폼 사이의 차이점을 다루는 방법을 다룬다.
책의 구성
iOS는 UIKit과 같은 수준 높은 프레임워크부터 코어 텍스트(Core Text)처럼 매우 낮은 수준의 도구까지 풍부한 도구를 가지고 있으며, 어떠한 기능을 구현하는 방법이 여러 가지일 때도 있다. 그렇다면 개발자로서 적합한 도구를 고르는 방법은 무엇일까? 이 책은 여러분이 각각의 문제에서 올바른 해결책을 선택할 수 있게 특별한 목적의 기능과 일반적인 기능을 구분한다. 여러분은 각각의 프레임워크가 존재하는 이유, 프레임워크들이 서로 어떤 관계인지, 언제 다른 프레임워크를 선택해야 하는지를 배우게 된다. 다음에는 유형별 문제를 해결하기 위하여 각각의 프레임워크를 최대한 활용하는 방법을 배운다. 이 책은 가장 일반적인 도구부터 가장 강력한 도구를 다루기 위하여 네 개 파트로 구성했다.
파트 I: 새로워진 것들
여러분이 iOS 4에 익숙하다면 이 파트에서 iOS 5의 새로운 기능을 간단하게 설명한다.
파트 II: 자주 사용하는 도구 최대한 활용하기
iOS 개발자인 여러분은 알림(notification)부터 테이블 뷰와 애니메이션 레이어까지 일반적인 도구의 다양한 형태를 접해왔다. 그런데 그러한 도구의 기능을 최대한 활용하고 있는가? 이 파트에서는 노련한 개발자들로부터 코코아 개발의 모범 사례를 배운다.
파트 III: 작업에 적합한 도구
모든 애플리케이션에는 어떤 도구가 포함되며, 그중에는 자주 필요한 도구도 포함된다. 이 파트에서는 좀 더 전문적인 도구와 기술을 배운다.
파트 IV: 한계 밀어내기
모든 애플리케이션에는 어떤 도구가 포함되며, 그중에는 자주 필요한 도구도 포함된다. 이 파트에서는 좀 더 전문적인 도구와 기술을 배운다.
특정 주제에 관심 있으면 그 내용으로 건너뛰어도 좋다. 코어 파운데이션 데이터 객체(특히 코어 그래픽, 코어 애니메이션, 코어 텍스트)를 필요로 하는 장을 제외하면 각 장의 내용은 독립적이다. 코어 파운데이션 데이터 객체에 관한 정보가 필요하면 19장 ‘코어 파운데이션 구축하기’로 이동하자.
웹 애플리케이션 해킹: 취약점을 이용한 공격과 방어의 기술 (0) | 2012.08.30 |
---|---|
해킹과 침투 테스트를 위한 코딩 (0) | 2012.07.30 |
고성능 자바스크립트 그래픽스: HTML5 + jQuery (0) | 2012.07.30 |
댓글 영역