Top

Professional iPhone and iPad Application Development 한국어판 [실전 앱 개발부터 마켓 진출까지]

  • 원서명Professional iPhone and iPad Application Development (ISBN 9780470878194)
  • 지은이진 배클린
  • 옮긴이이태상
  • ISBN : 9788960772342
  • 40,000원
  • 2011년 09월 30일 펴냄
  • 페이퍼백 | 692쪽 | 188*250mm
  • 시리즈 : 모바일 프로그래밍

책 소개

본격적인 앱 마켓 진출을 하기 전에 그 동안 쌓아왔던 내공을 완벽히 정리해본다. 멀티미디어, 네트워킹, 멀티태스킹, 아이애드(iAD) 통합 등 아이폰과 아이패드에서 사용할 수 있는 최신 기능을 애플리케이션 제작에서 그대로 활용할 수 있는 실전 예제와 함께 설명한다. 또한 단위 테스트나 애플리케이션 최적화 등 실전 개발에서 필수적인 툴 활용 방법도 알려준다. 성공 앱을 만들기 위해 더 이상 다른 책은 필요치 않을 것이다.


[ 소개 ]

iOS SDK를 이용한 개발부터 빌드, 재사용, 마켓 진출까지
실전 애플리케이션 개발의 모든 것


이 책은 이미 성숙한 아이폰 시장과 초기 단계인 아이패드 시장을 겨냥하는 개발자를 위한 고급 정보를 제공한다. 최신 버전의 iOS SDK를 사용해 단계별 가이드를 제시하며, 아이폰과 아이패드에 있어서의 다양한 주제와 특징을 논의한다. 또한 각 기능을 완벽하게 구현하는 애플리케이션을 만드는 방법을 안내한다. 이를 통해 독자는 iOS 4 기반의 아이폰과 아이패드에 유용한 기능을 만들어 추가할 수 있는 경험을 얻을 것이다.


[ 이 책의 특징 ]

■ iOS SDK에 포함된 애플리케이션 프레임워크 분석
■ 애플리케이션 설계를 통한 프레임워크 이해
■ 테이블 뷰, 이미지 뷰, 피커, 데이터 저장소, 오디오, 비디오, 멀티태스킹, 아이애드를 사용한 구현 방법
■ 효율적인 애플리케이션 수행에 필요한 개발 과정 학습
■ 소스 코드 구조를 모듈화해 개발하는 방법
■ 백그라운드 실행이 가능한 멀티태스킹 오디오 애플리케이션 구현 방법


[ 이 책의 대상 독자 ]

이 책은 엑스코드(Xcode)와 오브젝티브C에 익숙한 개발자를 위한 책이다.

애플리케이션 개발에는 익숙하나 엑스코드와 오브젝티브C를 활용하는 데에는 익숙하지 않은 독자는 애플의 iOS 개발자 센터(iOS Dev Center, http://developer.apple.com/devcenter/ios)를 방문하기 바란다.

각 장에서는 아이폰과 아이패드 기기의 특정 주제나 기능을 다룬다. 논의를 따라 가다 보면 해당 기능이 완전하게 작동하는 예제를 만드는 데 필요한 과정을 알게 될 것이다. 여러분이 작성할 소스 코드는 모듈화된 구조이므로, 추후 필요한 부분을 발췌해 여러분만의 애플리케이션에서 해당 기능을 구현할 때 사용할 수 있을 것이다.


[ 이 책에서 다루는 내용 ]

이 책은 iOS SDK 4.2와 인터페이스 빌더(Interface Builder), 인스트루먼츠(instruments)를 사용해 아이폰, 아이팟 터치, 아이패드 앱을 만들 때 필요한 실전 기술을 다룬다. iOS의 각종 뷰와 알림, 멀티미디어뿐만 아니라 멀티태스킹과 아이애드(iAd) 등 독자의 앱에 바로 적용할 수 있는 iOS 4의 새로운 기능들을 배운다. 또한 안정되고 최적화된 앱 개발을 위해 필요한 단위테스트 방법과 성능 조율 기법도 알아본다.

[ 이 책의 구성 ]

이 책은 SDK에 포함된 애플리케이션 프레임워크에 초점을 맞춰 논의를 시작한다. 또한 단계별 과정을 통해 프레임워크를 이해하고, 언제 어느 부분에서 애플리케이션과 통합할 수 있는지를 배운다. 또한 직접 실습을 통해 학습하게 되며, 각 '개발 단계' 절을 완료하면 iOS 4를 사용해 아이폰과 아이패드 애플리케이션을 생성하고 기능을 추가한다. 이 책에서 다루는 주제로는 테이블 뷰, 이미지 뷰, 피커, 데이터 저장소, 오디오, 비디오 등이 있다. 마지막으로, 여러분의 애플리케이션을 애플 아이튠즈 앱스토어(iTunes App Store)에서 구매할 잠재고객의 사용자 경험을 위해 높은 성능의 애플리케이션을 만드는 방법을 논의한다.

저자/역자 소개

[ 저자 서문 ]

1975년에 나는 텍사스 인스트루먼츠(Texas Instruments) 사의 SR-56이라는 휴대용 계산기 하나를 구입했다. 그 계산기를 사야만 했던 이유는 프로그램 가능(programmable)이라는 말 때문이었다. 그 당시에 나는 그 말의 의미를 완전히 이해하지는 못했다. 하지만, 적어도 내가 받아들여야 할 운명이라는 사실 정도는 느낄 수 있었다. SR-56에는 메모리가 10개나 되고 프로그램이 100단계까지 가능했다. 일주일 정도를 만지작거린 후, 프로그래밍의 강력함을 이해하기 시작했다. 비록 지금은 작동하지 않지만 프로그램을 작성하는 일이 얼마나 황홀한 일인지를 상기시켜 주는 그 계산기를 나는 아직도 갖고 있다.

십수 년 동안 많은 기술과 언어를 다루면서 개발은 점점 틀에 박힌 일이 됐으며, 그 옛날 SR-56을 통해 느꼈던 즐거움은 아련해져 갔다. 하지만 1989년에 넥스트(NeXT_를 만나자 상황이 달라졌다. 즐거움이 다시 찾아온 것이다. 넥스트는 개발자가 정교한 애플리케이션을 놀랄만한 시간 안에 상대적으로 쉽게 만들 수 있게 해주는 풍부한 도구들을 제공했다. 비로소 소프트웨어 개발이 의미를 갖게 된 것이다.

넥스트와 맥(Mac) 플랫폼이 만나면서 역사가 시작됐다. 오늘날에는 아이폰, 아이팟 터치, 아이패드가 있다. SR-56에서 처음 프로그램을 작성한 지 35년이 지났지만, 나는 지금도 사탕가게에서 군침을 흘리고 있는 아이와 같다. 나는 이 훌륭한 모바일 기기에서 여러분의 아이디어를 실현하는 데 필요한 깊은 통찰력을 주고자 이 책을 집필했다.


[ 저자 소개 ]

진 배클린 (Gene Backlin)
오직 고객에게 도움을 주기 위한 목적으로 1991년에 설립한 메리작 컨설팅의 대표이자 수석 컨설턴트다. IBM, 맥도널 더글러스, 웨이스트 매니지먼트, 미 환경보호국, 네이션스 뱅크, 뱅크 오브 아메리카, 뱅크 원 등 수많은 고객에게 30년 이상 컨설팅을 해왔다. 그는 또한 드폴 대학교 컴퓨팅 디지털미디어 대학에서 교수직을 맡고 있다.
어린 시절 전자제품에 대한 관심이 그를 컴퓨터 분야로 뛰어들게 했다. 그는 아직도 히스킷Heathkit H-8 디지털 컴퓨터와 1978년에 직접 만든 H-9 비디오 터미널을 갖고 있다. 확장 벤튼 하버 베이직(Extended Benton Harbor BASIC)을 사용해 프로그래밍을 익혔다. IBM PC가 소개된 이후에는 히스킷 H-151 PC 호환 컴퓨터를 만들었는데 지금도 잘 작동한다. 누군가 배클린에게 정보 혁명에 관해 묻는다면 그는 황홀한 이야기를 들려 줄 것이다. 배클린의 개발 경력은 종이 테이프에서 프로그램을 로딩하는 컴퓨터부터 혁신적인 넥스트 컴퓨터(지금도 두 대를 갖고 있다), 그리고 아이폰과 아이패드에까지 이른다. 그는 단순히 컴퓨터 분야의 발전을 관찰하는 것을 넘어 직접 활발히 참여해 왔다는 사실에 스스로 복이 많다고 생각한다.
그는 1995년에 집필한 『Developing NeXTSTEP Applications』와 연장선에 있는 글을 쓰면서 기쁨을 느낀다.


[ 옮긴이의 말 ]

2007년 10월 즈음, 갑자기 회사 점심시간에 무엇에 홀린 사람처럼 뛰어나가 아이팟 터치를 구입해 왔던 기억이 납니다. 그 후 지금까지 아이폰 3G, 아이폰 4, 아이패드, 아이패드 2 등이 국내에 출시됐습니다. 애플이 우리에게 가져다 준 것은 새로운 모바일 기기와 플랫폼, 그에 따른 문화의 변화뿐만이 아닙니다. 애플은 개발자가 직접 비즈니스까지 할 수 있게 소프트웨어 유통 구조의 혁신을 이뤘습니다. 이 혁신적인 플랫폼과 마켓이 우리 앞에 등장한 이후부터 지금까지 여러분의 상황은 어떤지요?

혹시 넘쳐나는 개발 서적들 사이에서 방황만 하다가 정작 앱 마켓 진출을 위한 준비도 아직 마무리하지 못한 것은 아닌지요. 여러분은 단순히 새로운 플랫폼에 대한 지적 호기심의 충족만을 원하는 것은 아닐 겁니다. 앱 마켓을 통해 여러분의 재능과 아이디어의 결과물을 가장 손쉬운 방법으로 세상에 공개하고 그에 따른 수익도 창출하고자 하는 멋진 목표를 갖고 계실 것입니다.

이 책은 여러분이 지금까지 공부해 온 기술적인 측면을 총정리함으로써 본격적으로 앱 마켓에 뛰어들 수 있도록 마지막 정리를 도와주는 책입니다. 최신 버전의 SDK를 사용해 상용 수준의 아이폰과 아이패드 앱 개발에 필요한 각 기능의 구현 방법을 재사용 가능한 예제를 통해 제시합니다. 특히 단위 테스트와 성능 조율 등 실제 개발에 있어서 필수적인 내용도 포함합니다. 또한 iOS 4 이후부터 가능한 멀티태스킹 구현 방법과 아이애드iAd 통합 방법도 빠뜨리지 않습니다.

이미 오브젝티브C 언어에 대한 기본 지식과 여러 서적들을 통해 기본적인 아이폰 개발 방법과 엑스코드 사용이 가능하다면, 이제 여러분만의 상용 앱을 개발하기 위한 마지막 정리를 이 책을 통해 하실 수 있습니다. 혹시 그런 경험이 없는 분이라면 먼저 에이콘 출판사의 모바일 프로그래밍 시리즈에 있는 기본 서적들로 시작하기 바랍니다. 이 책은 완전한 실전형이므로 기본서에서 다루는 기술 지식이나 소스 코드 분석을 자상하게 설명하지 않기 때문입니다. 상용 앱 제작에 있어서 필요한 SDK의 기능을 빠르게 섭렵하고, 실제 여러분의 앱에서 사용할 수 있는 모듈화된 코드를 활용하는 데에 더 큰 목적이 있습니다.

이 책 이후에는 더 이상의 개발 서적은 필요 없을 것입니다. 여러분의 기술력은 충분해졌으며, 특정 개별 기법과 추가 사항들은 애플 개발자 센터를 활용하면 됩니다. 그런 여러분에게 필요한 것은 이제 앱 마켓에서의 성공을 위한 비즈니스와 마케팅 전략이 될 것입니다. 그와 관련해서는 에이콘 출판사의 『잘 팔리는 아이폰 앱 개발: 기획에서 마케팅까지 아이폰 비즈니스의 모든 것』이라는 책이 여러분을 인도할 것입니다.

원서에서는 아이폰 SDK 4.0, 아이패드 SDK 3.2, 엑스코드 3.2.3을 사용했으나, 한국어판에서는 번역을 시작할 당시의 최신 버전인 iOS 4.2와 엑스코드 3.2.5를 기준으로 했습니다. 또한 모든 예제를 직접 만들고 실행하여 검증했습니다. 그러나 늘 그렇듯이 이 책을 보고 있는 여러분은 또 다시 새로운 버전의 SDK와 엑스코드를 사용하고 있을 것입니다. 혹시라도 새로운 버전에서 나타날 수도 있는 문제점이나 변경 사항에 대해서는 저와 독자 여러분이 함께 보완해 나갈 수 있기를 바랍니다.


[ 옮긴이 소개 ]

이태상
생물정보학(bioinformatics)을 계기로 프로그래밍과 인연을 맺었다가 아예 IT 업계로 뛰어들었다. 다년간 교육과 컨설팅 등 JavaEE 전문가로 활동했으며, 금융권 차세대 시스템 구축 프로젝트의 총괄 업무를 거쳐 현재는 전자금융 시스템을 운영 중이다. 최근 개인적인 관심사는 아이패드 앱 개발이다. 두 아이의 아빠이기 이전에 그들 세대가 넘겨받을 우리 사회에 대해 일말의 책임이라도 질 수 있는 ‘개념을 탑재한’ 기성세대가 되고픈 30대 후반의 평범한 컴쟁이다. 에이콘출판사에서 출간한 『톰캣 최종분석』(2005), 『JSF 인 액션』(2006), 『스프링 인 액션』(2006), 『자바 개발자를 위한 오브젝티브C』(2010)을 번역했다.

목차

목차
  • 1장 내비게이션
    • 내비게이션 스택
    • 내비게이션 바
      • UINavigationBarDelegate 프로토콜
      • 내비게이션 바 설정
      • 아이템 넣기와 빼기
    • 간단한 내비게이션 바
      • 개발 방법: 간단한 내비게이션 바
      • 애플리케이션 테스트
    • 툴바
    • 간단한 툴바
      • 개발 방법: 간단한 툴바
      • 애플리케이션 테스트
    • 탭바
      • UITabBarDelegate 프로토콜
      • 탭바 커스터마이징
    • 간단한 탭바
      • 개발 방법: 간단한 탭바
      • 뷰 컨트롤러 설계
      • 애플리케이션 테스트
    • 정리
  • 2장 얼럿, 액션 시트, 모달 뷰
    • 얼럿
      • 얼럿 뷰의 설계
      • UIAlertViewDelegate 프로토콜
    • 아이폰과 아이패드를 위한 간단한 얼럿 뷰 애플리케이션
      • 개발 방법: UITextView에 파일 로딩
      • 애플리케이션 테스트
    • 액션 시트
      • 액션 시트의 설계
      • UIActionSheetDelegate 프로토콜
    • 아이폰과 아이팟 터치를 위한 액션 시트
      • 개발 방법: 아이폰과 아이팟 터치를 위한 액션 시트 애플리케이션
      • 애플리케이션 테스트
    • 아이패드를 위한 액션 시트
      • 개발 방법: 아이패드를 위한 액션 시트 애플리케이션
      • 최종 작업: 연결 맺기
      • 애플리케이션 테스트
    • 모달 뷰
      • 모달 뷰 띄우기와 닫기
      • 전환 스타일
      • 모달 표현 스타일(아이패드)
    • 아이폰과 아이팟 터치를 위한 모달 뷰
      • 개발 방법: 아이폰과 아이팟 터치를 위한 모달 뷰 애플리케이션
      • 애플리케이션 테스트
    • 아이패드를 위한 모달 뷰
      • 개발 방법: 아이패드를 위한 모달 뷰 애플리케이션
      • 애플리케이션 테스트
    • 정리
  • 3장 커스텀 테이블 뷰
    • 테이블 뷰
      • 테이블 뷰의 셀
      • UITableViewDataSource 프로토콜
      • UITableViewDelegate 프로토콜
    • 커스텀 테이블 뷰 애플리케이션
      • 개발 방법: 커스텀 테이블 뷰 애플리케이션
      • Contacts.plist 프로퍼티 리스트 파일 생성
      • 애플리케이션 테스트
    • 정리
  • 4장 스플릿뷰
    • UISplitViewController 클래스
      • UIPopoverControllerDelegate 프로토콜
      • UISplitViewControllerDelegate 프로토콜
    • 간단한 스플릿뷰 애플리케이션
      • 개발 방법: 아이패드를 위한 간단한 스플릿뷰 애플리케이션
      • DataSource.plist 프로퍼티 리스트 파일 작성
      • 애플리케이션 테스트
    • 정리
  • 5장 터치 이벤트
    • 터치 이벤트 처리
      • 싱글터치
      • 멀티터치
      • 스와이프와 제스처
    • 간단한 터치 처리기
      • 개발 방법: 간단한 터치 처리기
      • 애플리케이션 테스트
    • 간단한 제스처 인식기
      • 개발 방법: 간단한 제스처 인식기
      • 애플리케이션 테스트
    • 정리
  • 6장 알림 처리
    • 알림의 개념
      • 알림 센터
      • 로컬 알림 등록
      • 로컬 알림 게시
      • 관찰자 등록 취소
    • 로컬 알림 애플리케이션
      • 개발 방법: 로컬 알림 애플리케이션
      • 애플리케이션 테스트
    • 로컬 키보드 알림 애플리케이션
      • 개발 방법: 로컬 키보드 알림 애플리케이션
      • 애플리케이션 테스트
    • 정리
  • 7장 네트워크
    • 네트워크 통신
    • 간단한 네트워크 브라우저
      • 개발 방법: 간단한 네트워크 브라우저
      • 애플리케이션 테스트
    • P2P(Peer-to-Peer) 통신 애플리케이션
      • 개발 방법: P2P 통신 애플리케이션
      • 애플리케이션 테스트
    • 정리
  • 8장 멀티미디어
    • 오디오 프레임워크
      • 미디어 플레이어
      • AV 파운데이션
      • 오디오 툴박스
      • 오디오 유닛
      • OpenAL
    • 비디오 프레임워크
      • MPMoviePlayerController
      • 지원 포맷
    • 아이팟 뮤직 플레이어
      • 개발 방법: 아이팟 뮤직 플레이어
      • 애플리케이션 테스트
    • 아이팟 비디오 플레이어
      • 개발 방법: 아이팟 비디오 플레이어
      • 애플리케이션 테스트
    • 정리
  • 9장 애플리케이션 환경설정
    • 애플리케이션 환경 구성
      • 애플리케이션 환경설정 지침
      • 환경설정 요소 유형
      • 환경설정 계층구조 구현
      • 애플리케이션 환경설정 접근
    • 간단한 환경설정 애플리케이션
      • 개발 방법: 간단한 환경설정 애플리케이션
      • 간단한 환경설정 애플리케이션의 소스 코드
      • 애플리케이션 테스트
    • 계층구조를 갖는 환경설정 애플리케이션
      • 개발 방법: 계층구조를 갖는 환경설정 애플리케이션
      • 애플리케이션 테스트
    • 정리
  • 10장 데이터 저장소
    • 프로퍼티 리스트
      • 프로퍼티 리스트의 용도
      • 권장 데이터 타입
      • 프로퍼티 리스트 저장과 복원
    • 코어 데이터
      • 코어 데이터 스택
      • 관리 객체
      • 관리 객체 컨텍스트
      • 관리 객체 모델
      • 영속 저장 조정자
      • 엑스코드의 모델링 툴
      • 관리 객체 가져오기
      • 관리 객체의 삭제
    • 데이터 저장소 예제의 공통 사항
      • 개발 방법: 간단한 프로퍼티 리스트 애플리케이션
      • 애플리케이션 테스트
      • 개발 방법: 간단한 코어 데이터 애플리케이션
      • 애플리케이션 테스트
    • 정리
  • 11장 페이스트보드
    • 페이스트보드의 개념
      • 명명된 페이스트보드
      • 지속성
      • 편집 메뉴
      • 베껴두기와 오려두기
      • 붙이기
      • 편집 메뉴 숨기기
    • 텍스트 복사 애플리케이션
      • 개발 방법: 텍스트 복사 애플리케이션
      • 애플리케이션 테스트
    • 이미지 복사 애플리케이션
      • 개발 방법: 이미지 복사 애플리케이션
      • 애플리케이션 테스트
    • 커스텀 메뉴 애플리케이션
      • 개발 방법: 커스텀 메뉴 애플리케이션
      • 애플리케이션 테스트
    • 정리

  • 12장 단위 테스트
    • 테스트 환경 구성
      • 애플리케이션 테스트 타깃의 사용
    • 간단한 단위 테스트 애플리케이션
      • 개발 방법: 간단한 단위 테스트 애플리케이션
      • Data.plist 데이터 소스 작성
      • 애플리케이션 테스트
    • 단위 테스트 생성 방법: 간단한 단위 테스트
      • 애플리케이션 단위 테스트
      • 기기등록
      • 애플리케이션 테스트
    • 정리
  • 13장 성능 조율과 최적화
    • 프로파일링
      • 시뮬레이터의 사용
      • 실제 기기의 사용
      • 프로파일링의 이점
    • 간단한 메모리 누수 애플리케이션
      • 개발 방법: 간단한 메모리 누수 애플리케이션
      • 개발 방법(계속): 인스트루먼츠의 사용
      • 개발 방법(계속): 메인 메뉴의 Build and Analyze 사용
    • 정리
  • 14장 아이애드
    • 아이애드 네트워크 가입
      • 계좌 정보 설정
      • 애플리케이션의 아이애드 연결 설정
      • 아이애드 환경 설정
    • 아이애드 네트워크를 사용하기 위한 준비
      • ADBannerView 구현
      • 아이애드 프레임워크 통합
    • 간단한 아이애드 애플리케이션
      • 개발 방법: 간단한 아이애드 애플리케이션
      • 애플리케이션 테스트
    • 정리
  • 15장 멀티태스킹
    • 멀티태스킹 서비스
      • UIApplication 위임 메시지
      • 멀티태스킹 이용 시의 의무
      • 시뮬레이터에서의 멀티태스킹
      • 실제 기기에서의 멀티태스킹 지원
    • 멀티태스킹 오디오 애플리케이션
      • 개발 방법: 멀티태스킹 오디오 애플리케이션
      • 애플리케이션 테스트
    • 정리
  • 부록 A 초기 앱 - 첫 단계
    • 엑스코드 프로젝트 빌더
      • 사용 가능한 애플리케이션 유형
      • 프로젝트 윈도우
      • 빌드와 실행
    • 인터페이스 빌더
      • 인터페이스 빌더 다큐먼트 생성
      • 다큐먼트 윈도우
      • 라이브러리 윈도우
      • 인스펙터 윈도우
      • 연결 패널
    • 정리
  • 부록 B iOS 개발자 센터
    • iOS 4 SDK 관련 자료
      • 다운로드
      • iOS 참조 라이브러리
      • 예제 코드
    • iOS 개발자 프로그램
      • iOS 프로비저닝 포탈
      • 애플 개발자 포럼
      • 개발자 지원 센터
      • 앱스토어 자원 센터
    • 아이튠즈 커넥트
    • 뉴스와 공지
      • RSS 피드 구독
    • 정리
  • 부록 C 코코아 터치 정적 라이브러리
    • 엑스코드 프로젝트 템플릿
      • 코코아 정적 라이브러리 선택
      • 라이브러리에 클래스 추가
      • 데이터 소스 라이브러리의 소스 코드
      • 프로젝트 빌드
    • 엑스코드 애플리케이션 프로젝트
      • 새 애플리케이션 만들기
      • 프로젝트에 라이브러리 추가
      • 프로젝트에 라이브러리 헤더 추가
      • 사용자 인터페이스 설계
      • 라이브러리 클래스를 사용하는 소스 코드 추가
      • 애플리케이션 테스트
    • 정리
  • 부록 D 애플 개발자 리소스
    • iOS 개발자 프로그램
      • 개발자 센터
      • iOS 참고 자료
      • iOS 개발자 리소스
      • iOS 개발 가이드
    • 아이튠즈 앱스토어
    • 애플리케이션 배포 절차

도서 오류 신고

도서 오류 신고

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

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

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