Top

The Gourmet iOS Developer’s Cookbook 한국어판 [차별화된 앱 개발을 위한 고급 테크닉 가이드]

  • 원서명The Gourmet iOS Developer's Cookbook: Even More Recipes for Better iOS App Development (ISBN 9780134086224)
  • 지은이에리카 세든(Erica Sadun)
  • 옮긴이조경빈
  • ISBN : 9788960777897
  • 30,000원
  • 2015년 11월 26일 펴냄 (절판)
  • 페이퍼백 | 332쪽 | 188*250mm
  • 시리즈 : 모바일 프로그래밍

판매처

  • 현재 이 도서는 구매할 수 없습니다.

책 소개

이 책의 예제는 저자의 깃허브(https://github.com/erica/iOS-Gourmet-Cookbook)에서 내려받을 수 있습니다.

요약

이 책은 베스트셀러인 iOS Developer's Cookbook 시리즈의 마지막 편으로, 이전 시리즈에서 깊이 있게 다루지 못했던 다양한 주제를 멋지게 풀어내고 있다. 기존의 iOS 개발 서적에서 좀처럼 만나보기 어려운 깊이 있는 주제를 완전한 통합 솔루션 형태로 제공하므로 기존의 코드를 개선하거나 새로운 아이디어를 적용하는 데 필요한 해결 방법을 제시한다.

이 책에서 다루는 내용

AVFoundation을 사용한 고급 스피치 생성과 바코드 인식 기능 제공

사용자의 선호와 기대에 기반하여 텍스트 프리젠테이션을 자동으로 갱신하는 방법

UIKit과 텍스트 킷을 사용하여 풍부하고 유연하게 텍스트를 표현하는 방법

iOS 화면과 다른 대상 간에 자연스러운 텍스트 디자인 마이그레이션

HTML로부터 속성을 가진 텍스트 문자열 생성

재미있는 애니메이션과 인터랙션을 구현하기 위한 실 세계 물리 연동

동적 애니메이터 사용과 관련한 문제점 극복 및 이를 사용한 인터페이스 개선

개선된 사용자 알림과 팝오버를 사용하여 더 나은 시각적 효과 만들기

이 책의 구성

1장, 미디어

지난 몇 년 동안 진화를 거친 AVFoundation에 대해 살펴보고 개발 중인 애플리케이션에 어떻게 적용할 수 있는지 살펴본다. 스피치 생성, 바코드 인식(다양한 스타일의 바코드를 인식하는 방법), AVFoundation 무비를 만들 때 최신 언어 기능을 적용하는 방법 등을 살펴본다.

2장, 다이나믹 타이포그라피

iOS가 제공하는 정교한 인터페이스는 초기에는 버튼과 바를 강조했으나 최근에는 텍스트의 역할을 좀 더 강조하고 있으며 UI 디자인의 핵심적인 역할을 맡고 있다. 2장에서는 텍스트를 자동으로 업데이트하여 유저의 선호와 기대에 맞추는 방법을 살펴보고 이와 관련한 핵심 주제를 다룰 예정이다.

3장, 텍스트 킷

유연한 텍스트 처리는 iOS 개발에 있어 가장 흥미로우면서도 많은 발전이 진행 중인 주제 중 하나다. 새로운 iOS 버전이 발표될 때마다 관련 API의 개선과 확장이 진행됐다. 대부분의 UIKit 인터페이스 클래스는 이제 리치 텍스트 기능을 지원하고 있다. 가장 최근에 배포된 iOS는 레이아웃 클래스 묶음을 추가로 지원하며, 유연한 표현을 만들기 위한 고급 타입과 프레임 설정을 지속적으로 추가하고 있다.

4장, 속성 문자열과 도큐먼트 컨테이너

지난 몇 년간 속성을 가진 문자열의 기능이 크게 발전하여 이제는 HTML과 RTF 리치 텍스트 문서까지 지원한다. 속성을 가진 문자열은 주위 분위기에 자연스럽게 어울리는 텍스트 표현을 지원한다. 텍스트 디자인은 iOS 화면에 잘 어울리도록 최적화가 되었으며 다른 곳에도 확장되고 있다. 4장에서는 이런 확장 가능성에 대해서도 다룰 예정이다.

5장, 애니메이션

지난 몇 년 동안 진행된 기술적 진보 중 iOS 애니메이션은 새로운 API의 지원과 함께 가장 큰 발전을 이뤘다. 새로운 동적 스타일 기능을 사용하면 현실 세계의 물리법칙을 연동하여 좀 더 흥미로운 형태의 표현과 상호작용이 가능해진다. 5장에서는 본격적으로 애니메이션 기능에 대해 설명하며 이와 더불어 추가된 상당한 수준의 업데이트에 대한 소개도 진행할 예정이다.

6장, 동적 애니메이터

동적 애니메이터는 iOS의 기능 중 가장 흥미로운 요소 중 하나다. 물리 법칙에 기반하는 뷰의 동작은 생동감있고 재미있는 인터페이스를 만들어낸다. 다만, 다소 다루기에 까다롭다는 문제가 있는데 어떻게 하면 비교적 쉽게 개발 중인 앱에 이 기능과 관련한 클래스들을 연동하는지 설명할 예정이다.

7장, 프리젠테이션

iOS 최신 버전에서 사용자 알림 기능은 완전히 새롭게 변경됐고, 팝오버는 이제 어디에서든 사용 가능하다. 모달(modal) 인터랙션으로 컨텐츠를 오버레이할 때 최고의 비주얼 효과를 제공하기 위한 특수 효과도 제공된다. 7장은 이런 최신 기법을 빠르게 익히도록 도와준다.

8장, 형태 마술

직사각형을 벗어난 뷰는 식상함을 덜어주고 재미 요소를 담을 기회를 제공한다. 예를 들면, 뒤에서 후광이 은은히 비치는 애니메이션을 제공하여 관심을 끌 수도 있다. 또는, 버튼 배치에 최적화된 형태를 사용하여 시각적 통일성을 극대화할 수도 있다. 8장은 개발 중인 앱의 사용자 인터페이스에 생기를 불어넣는 형태와 관련한 다양한 고급 기술을 다룬다.

9장, 적응형 배포

iOS를 사용하는 기기의 계열이 다양해짐에 따라 자동으로 모든 화면 방향과 크기에 맞춰야 하는 요구사항이 생겼다. 비록 iOS가 안드로이드 진영처럼 심하게 나누어지진 않았지만, 공용 배포를 위해서는 다양한 설정이 필요해졌다. 진정한 적응형 앱은 화면 크기에 따라 자연스럽게 최선의 형태로 인터페이스를 재배치하는 구조를 가진다. 9장에서는 이런 기술과 관련한 기본 지식과 더불어 구현에 필요한 API를 함께 설명한다.

10장, 개발 도우미

가끔은 개발 과정에서 필요한 메소드나 함수, 기술을 준비하고 프로젝트를 진행하면 도움이 될 때가 많다. 10장에서 제공하는 솔루션은 앱을 빌드할 때 도움이 되며, 개발 중인 앱 자체에 더 집중할 수 있게 도와준다.

11장, 스위프트 맛보기

애플은 2014년 WWDC 키노트에서 스위프트(Swift)라는 프로그래밍 언어를 소개했는데, 성능이 개선된 타입 안전성(type-safe)을 갖는 최신의 프로그래밍 언어다. 최근에 주목받는 다양한 개발 기법을 포함하고 있으며 언어와 툴셋에 지속적인 개선되고 있다. 11장에서는 스위프트를 사용한 개발의 핵심 내용을 간단히 살펴 볼 예정이다. 언어에 대한 구체적인 내용을 다루진 않겠지만, 스위프트를 제대로 사용하기 위해 iOS 개발자로서 알고 있어야 하는 기본적인 개념을 전달할 예정이다.

저자/역자 소개

지은이의 말

이 책은 베스트셀러인 iOS Developer's Cookbook 시리즈의 마지막 편으로 전 시리즈에서 깊이 있게 다루지 못했던 다양한 주제를 멋지게 풀어내었으며, iOS 프로그래밍을 진행하는 데 큰 도움이 되는 좋은 주제를 잘 선별해 정리하여 제공한다. 또한, 크고 작은 프로젝트를 진행하는 데 필요한 완전한 통합 솔루션을 제공하며, 기존의 코드를 개선하는 데 필요한 다양한 아이디어와 해결방법을 제시한다.
목표는 간단하다. 각 장을 진행해가면서 아직 경험해보지 못한 영역에 대한 신선하고 새로운 기법을 익히게 할 생각이다. 기존의 낡은 방식에 대한 새로운 기법 또는 완전히 처음 접하는 API를 사용하면서 새롭고 멋진 경험을 하게 될 것이다.
이 책은 명확하지 않은 내용을 깊이 있게 다룬다. 초급자용 서적에서 흔히 다루는 주제가 아닌 좀 더 특별한 기법과 기술을 설명하며, 이를 통해 일반적인 평범한 앱이 아닌 좀 더 특별하고 멋진, 차별화된 앱을 만드는 데 필요한 내용을 다룬다

지은이 소개

에리카 세든(Erica Sadun)

베스트셀러 저자이면서 동시에 수많은 프로그래밍, 디지털 비디오, 사진, 웹 디자인의 기고자로, 특히 널리 사랑받은 『The Core iOS Developer’s Cookbook (Fifth Edition) 한국어판』의 저자다. TUAW.com과 오라일리 맥 디브센터(O’Reilly’s Mac Devcenter), 라이프해커(Lifehacker), 아즈 테크니카(Ars Technica) 블로그에 기고하기도 했다. 다양한 iOS 네이티브 애플리케이션 개발 관련 도서를 저술했으며, 조지아 공과 대학 그래픽 시각화 사용성 센터(GVU Center, Georgia Tech’s Graphics Visualization and Usability Center)에서 컴퓨터 과학 박사 학위도 취득했다. 컴퓨터를 사랑하는 프로그래머이자 저자로서, 첨단 기기에 관심이 많다. 책을 쓰지 않을 때는 남편과 함께 세 자녀를 긱(geek)으로 키우는 데 많은 정성을 기울이고 있다.

옮긴이의 말

모바일 개발 환경에서 iOS는 개발자에게 특별한 의미를 가지는 플랫폼입니다. 아이폰이 세상에 출시되고 이와 더불어 iOS가 세상에 널리 퍼지기 시작하면서부터 기존에 심비안이나 윈도우 모바일 등을 운영체제로 택한 스마트폰과는 차원이 다른 사용자 경험을 제공하기 시작했습니다. 아이폰이 출시되기 이전에도 국내에는 이동통신사를 중심으로 한 오픈마켓이 야심 차게 열렸고 대대적인 홍보와 함께 활성화하려는 시도가 있었습니다. 하지만 당시의 스마트폰이 전화 기능에다가 당시 유행하던 PDA의 기능 정도를 결합한 수준에 머물면서 이를 지원하는 앱의 수준 또한 그리 높지 않아, 지금의 스마트폰처럼 사용자의 삶에 영향을 주고 패러다임을 바꾸기에는 한참 모자라던 상황이었습니다. 당시 국내에서 새롭게 오픈한 T스토어에 공모작 수상과 함께 앱을 출시해본 경험이 있던 저로서는 당시의 환경에 많은 아쉬움을 느끼고 있었는데 그러던 중 출시된 아이폰은 단순히 좀 더 나은 스마트폰이 세상에 출시된 것 이상의 의미를 부여하기에 충분했습니다.

아이폰은 출시와 함께 전 세계적으로 폭발적인 반응을 끌어내면서 단숨에 스마트폰의 표준을 제시하기 시작했고 기존에 난립하던 스마트폰들과는 질적으로 확연한 차이를 보여주며 시장을 점령해나가기 시작했습니다. 개발자의 관점에서 처음 iOS용 개발 도구를 접하고 체계적인 마켓 관리 프로세스와 정책을 접했을 때 기존에 느끼던 많은 아쉬움이 일거에 해소되는 기분이었습니다. 물론 현재는 까다로운 검수 절차 등으로 개발하고 관리하기 불편하다는 하소연도 있는 것이 사실이지만 이런 까다로운 절차 덕분에 최종 사용자는 검증된 앱을 안전하게 사용할 수 있기도 합니다. 또한, 안정된 개발 환경과 디바이스 체계는 한 번의 개발로 전 세계인을 상대로 안정적인 앱 서비스를 제공할 수 있는 큰 장점을 제공해주기도 하니 여전히 매력적인 환경임에는 의심할 여지가 없습니다.

이 책은 기존의 iOS 개발 서적에서 잘 다루지 않던 깊이 있는 주제를 다루고 있습니다.
에리카 세든의 전작인 『The Core iOS Developer's Cookbook (Fifth Edition) 한국어판』이 평상시 집에서 많이 해먹는 요리에 대한 레시피를 제공했다면 이 책은 미식가를 위한 특별 요리의 레시피를 제공한다고 볼 수 있습니다. 이 책은 일반적인 iOS 개발 서적에서 분량 문제나 난이도 문제 등으로 쉽게 소개하기 어려웠던 깊이 있는 주제들을 하나씩 꺼내 소개하고 있습니다. 총 11개로 이뤄진 각 장은 독립된 주제로 구성돼있으며 자신이 개발하고 있는 앱에서 필요한 부분만 따로 발췌해서 보기에 매우 편리한 형태이므로 처음부터 끝까지 차례대로 봐야 한다는 부담감 없이 책의 내용에 접근할 수 있는 것도 이 책의 주요한 특징 중 하나입니다.

최신의 고급 iOS 개발 주제를 다룬 이 책의 번역을 맡은 일은 제겐 영광스러운 경험이었습니다. iOS 환경에서 앱을 개발하는 개발자에게 고급 개발 주제를 소개하는 멋진 서적을 소개할 수 있어서 매우 기쁩니다.

옮긴이 소개

조경빈

중학교 때 처음으로 8비트 컴퓨터를 만지면서 프로그래밍에 흥미를 느끼기 시작했고, 인프라웨어에서 웹 브라우저 엔진 개발에 참여했으며, 현재 게임개발사 셀바스에서 모바일 게임 개발에 전념하고 있다. 형식에 얽매이기보다는 자유로움 속에 효율을 찾는 과정에 관심이 많다. 대학시절부터 다수의 전시회 출품과 공모전 입상 경력이 있으며, 가장 최근에는 SKT T스토어 제1회 공모전 스마트폰 게임 부문 입상을 하기도 했고, 개인 자격으로 애플 앱스토어에 10개 이상의 앱을 등록해 미국 앱스토어에서 카테고리 1위에 오르는 등 다양한 실험을 하기도 했다. 국내 최초의 유니티 관련 서적인 『유니티 게임엔진 한글 메뉴얼』(2010)을 번역했으며, 에이콘출판사에서 출간한 『Flash Game Development by Example 한국어판』(2011)과 『모던 자바스크립트 Modern JavaScript』(2014), 『유니티 게임 AI 프로그래밍』(2015)을 번역했다.

목차

목차
  • 1장. 미디어
    • 스피치
      • 다른 선택사항
      • 델리게이트 콜백
      • 받아쓰기
    • 바코드 생성
      • 필터 파라미터
      • 코드 작성
    • 바코드 읽기
      • 메타데이터 오브젝트 목록
      • 메타데이터 응답 처리
      • 경계 검출
      • 인식률 개선
      • 얼굴 인식
    • AVFoundation Movies 제작
      • Pixel Buffer 생성
      • Pixel Buffer에 그리기
      • 표현있는 그리기
      • 프레임으로부터 무비 만들기
      • 무비에 이미지 추가
    • 정리

  • 2장. 동적 타이포그라피
    • 타입 크기와 사용자 요구
      • 동적 타입 동작 방식
      • 타입 업데이트 수신
    • 속성을 가진 동적 타입 처리
      • 텍스트 스타일 범위 검색
      • 텍스트 스타일 범위 적용
    • 속성을 가진 동적 엘리먼트
      • 커스텀 폰트 페이스
      • 동적 텍스트 뷰
    • 커스텀 크기 변경
    • 폰트 설명자
      • 설명자 관련 문제
      • 다양한 변형을 가진 폰트
      • 폰트 수정을 위해 문자열 속성 사용하기
    • 동적 타입 문제
    • 정리

  • 3장. 텍스트 킷
    • 복잡한 텍스트 레이아웃 생성
    • 글리프
    • 텍스트 스토리지
    • 레이아웃 매니저
    • 텍스트 컨테이너
      • 적응형 흐름
      • 인셋
      • 제외 경로
      • 경계 사각형
    • 텍스트 킷을 이용해 라벨에 터치 기능 추가
      • 텍스트 킷 구성
      • 동기화
      • 좌표계 변환
      • 글리프와 캐릭터
      • 링크 검사
      • 비주얼 피드백 추가
    • 드래그 가능한 제외 영역
    • 텍스트 킷으로 PDF 만들기
    • 텍스트 뷰 데이터 출력
      • PDF 데이터 출력
    • 정리

  • 4장. 속성 문자열과 도큐먼트 컨테이너
    • 클래스 개선
      • 문서 첨부
    • HTML로 속성 문자열 만들기
      • 도큐먼트 타입 딕셔너리
      • HTML 원본을 속성 문자열로 변환
      • 속성 문자열을 도큐먼트 표현으로 변환
      • 속성 문자열로 HTML 생성
      • 마크업 초기화
    • RTF와 RTFD
      • RTFD 콘테이너
      • 파일로부터 속성 문자열 초기화
      • RTFD Text를 Data로 변환
      • 데이터로부터 RTFD 콘테이너 작성
      • 속성 검사
    • 도큐먼트 속성 설정
    • 속성 문자열 개선
      • 새로운 속성을 가진 사본 반환
      • 속성 조정
      • 뮤터블 속성 문자열 확장
    • 텍스트 범위
      • 위치 계산
      • 위치 기하학
      • 선택 지점 갱신
    • 하드웨어 키 지원
    • 정리

  • 5장. 애니메이션
    • 키프레임 애니메이션
    • 키프레임으로 물리 구성
    • 블로킹 애니메이터
    • UIKit 스프링 기반 애니메이션
      • 스프링 애니메이션의 실전 활용
    • 시스템 애니메이션
    • 모션 이펙트
      • 평면 구성
      • 쉐도우 이펙트
    • 커스텀 전환 애니메이션
      • 델리게이션
      • 전환 오브젝트 구성
    • 묵시적 애니메이션
      • 애니메이션이 준비된 레이어 구성
      • Building a View Around a Layer
      • 타이밍
      • 애니메이션 조화
      • 묵시적 완료 블록 구성
      • 커스텀 프로퍼티 애니메이션 처리
      • 업데이트 가로채기
      • 속성 그리기
    • 정리

  • 6장. 동적 애니메이터
    • 물리 기반 행동
      • 역학 구성
    • 일시정지 감지
      • 프레임-감시 동적 행동 생성
    • 스냅 영역 구현
    • 실세계 물리 활용
      • 기기 가속에 중력 행동 연결
      • 경계 생성
      • 뷰 다이나믹 개선
    • 커스텀 행동
      • 커스텀 동적 아이템 생성
      • 동적 행동 서버팅(Subverting)
      • 더 나은 커스텀 동적 행동
      • 커스텀 보조 행동
    • 컬렉션 뷰와 동적 애니메이터
      • 커스텀 플로우 레이아웃
      • 레이아웃 속성 반환
      • 행동 업데이트
    • 동적 알림 뷰 구성
      • 젤리 활용
      • 뷰 그리기
      • 젤리 배포
    • 정리

  • 7장. 프리젠테이션
    • 알림
      • 지원 중단 클래스
      • 알림 구성
      • 알림 버튼 활성화와 비활성화
      • 텍스트 필드 추가
    • 마스크 뷰
      • 모양 레이어 마스킹
      • 마스크 뷰 구성
    • 이펙트 뷰 구성
      • 블러 효과 구성
      • 바이브런시 효과 추가
      • 이펙트 뷰 애니메이션 처리
    • 팝오버 구성
      • 버블 지원
      • 팝오버 표현
    • 정리

  • 8장. 모양 마법
    • 뷰 모양내기
      • 다양한 도형으로 확장
      • 베지어 곡선 크기 조절
      • 베지어 기반의 도형 이미지 뷰 구성
      • 열린 도형 처리
    • 도형 뷰에 테두리 추가
    • 모양을 낸 버튼 구성
    • 모양을 낸 뷰에 관심을 끄는 애니메이션 적용
    • 정리

  • 9장. 적응형 배포
    • 특성
      • 특성 프로퍼티
      • 특성 정의
      • 특성 컬렉션 조합
      • 특성을 위한 설계
    • UIScreen 프로퍼티
      • 좌표 공간
      • 애플리케이션 프레임
      • 스크린 경계
      • 스케일
    • 회전
    • 사이즈 클래스와 에셋
      • 기본 배포
      • UIKit과 이미지 뷰
      • UIImageAsset 클래스
      • PDF로 이미지 구성
    • 특성 컬렉션 오버라이딩
      • 아이폰 스플릿 뷰 구성
      • iOS 8 스플릿 컨트롤러 관련 추가사항
    • 정리

  • 10장. 개발 도우미
    • 로렘에 대한 모든 것
      • 플레이스홀더 텍스트
      • 이미지 입섬
      • 랜덤 유저 데이터 생성
      • 대량 이름
      • 랜덤 피드 생성
    • 임의의 모든 것
    • 지시자
      • 주석을 경고로 변환
      • 경고
      • 시물레이터 테스팅
      • 에러
      • 포함 테스팅
      • 메시지
      • 프라그마 감싸기
      • 진단 오버라이딩
      • 미사용 변수 경고
      • Non-null과 Nullable 아이템 표시
    • 개발자 트윅
      • 시물레이터에서 파일 저장
      • 로그 강화
    • 정리

  • 11장. 스위프트 맛보기
    • 스위프트와 오브젝티브-C의 비교
    • 스위프트로 하는 iOS 앱 구축
    • 옵셔널(Optionals)
      • 유추 타입
      • 옵셔널 열거형
      • 옵셔널 벗기기
      • 논-옵셔널에 값 할당
    • 코코아 터치 패턴
    • 하이브리드 언어 개발
      • 스위프트에서 오브젝티브-C 호출
      • 오브젝티브-C에서 스위프트 호출
      • 오브젝티브-C를 위한 스위프트 준비
      • 클래스 상속
    • 기본 구성
      • 관찰 프로그레스
    • 스위프트 배우기
    • 정리

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안