이미 소장하고 있다면 판매해 보세요.
|
1부 Objective-C 시작하기
1장 첫 번째 iOS 애플리케이션 만들기 1.1 iSO 개발 도구 소개 1.1.1 모바일 장치를 위한 Cocoa 프레임워크의 적용 1.2 개발 시 제한사항 1.2.1 하드웨어 사양 요약(2010년 중반) 1.2.2 인터넷 연결 1.3 XCode를 사용한 간단한 동전 던지기 게임 만들기 1.3.1 Apple의 IDE-XCode 소개 1.3.2 간단한 XCode Launching 1.3.3 프로젝트 생성 1.3.4 소스코드 쓰기 1.4 사용자 인터페이스 연결 1.4.1 뷰에 컨트롤 추가하기 1.4.2 소스코드와 컨트롤 연결하기 1.5 동전 던지기 게임 컴파일 1.6 동전던지기 게임 테스트 실행 1.6.1 테스트 환경 선택 1.6.2실행중인 애플리케이션의 상태를 확인을 위한 중단점 이용하기 1.6.3 iPhone 시뮬레이터에서 동전 던지기 게임 실행하기 1.6.4 디버거 제어하기 1.7 정리 2장 데이터 형, 변수 그리고 상수 2.1 Rental Manager 애플리케이션 소개 2.1.1 기초 확립하기 2.2 기본 데이터 형 2.2.1 손가락 수 세기 ? 진정수(integral number) 2.2.2 틈새 채우기 ? 부동소수점 숫자 2.2.3 문자형과 문자열 2.2.4 부울 진리(Boolean truths) 2.3. 값의 표시와 변환 2.3.1 NSLog과 포맷 지정자 2.3.2 데이터 형 캐스트와 데이터 형 변환 2.4 사용자 정의 데이터 형 만들기 2.4.1 열거자 2.4.2 구조체 2.4.3 배열 2.4.4 서술적 이름의 중요성 2.5 Rental Manager v1.0 완성하기, 앱 스토어 기다려! 2.6 정리 67 3장 객체 소개 3.1 객체지향 프로그래밍 개념 둘러보기 3.1.1 C와 같은 절차기반 언어에는 무슨 문제가 있는가? 3.1.2 객체란 무엇인가? 3.1.3 클래스란 무엇인가? 3.1.4 상속과 다형성 3.2 사라진 데이터 형: id 3.3 포인터와 참조, 값 유형 간의 차이점 3.3.1 메모리 맵(Memory map) 3.3.2 변수의 주소를 얻는 법 3.3.3 포인터 따라가기 3.3.4 포인터의 값 비교하기 3.4 객체와 통신하기 3.4.1 객체에 메시지 전달하기 3.4.2 클래스에 메시지 전달하기 3.4.3 존재하지 않는 메시지 전달하기 3.4.4 nil에 메시지 전달하기 3.5 문자열 3.5.1 문자열 구성하기 3.5.2 문자열에서 문자 추출하기 3.5.3 문자열 수정하기 3.5.4 문자열 비교하기 3.6 예제 애플리케이션 3.7 정리 4장 컬렉션에 데이터 저장하기 4.1 배열 4.1.1 배열 구축하기 4.1.2 배열 원소에 접근하기 4.1.3 배열 원소 찾기 4.1.4 배열 반복하기 4.1.5 배열에 항목 추가하기 4.2 딕셔녀리(Dictionary) 4.2.1 딕셔너리 구축하기 4.2.2 딕셔너리 엔트리 접근하기 4.2.3 키/값 쌍 추가하기 4.2.4 모든 키와 값 열거하기 4.3 Boxing 4.3.1 NSNumber 클래스 4.3.2 NSValue 클래스 4.3.3. nil 대 NULL 대 NSNull 4.4 Rental Manager 애플리케이션의 데이터 구동 만들기 4.5 정리 2부 사용자 정의 객체 생성하기 5장 클래스 생성하기 5.1 사용자 정의 클래스 만들기 5.1.1 프로젝트에 새로운 클래스 파일 추가 5.2 클래스의 인터페이스를 선언하기 5.2.1 인스턴스 변수(ivars) 5.2.2 메서드 선언 5.2.3 CTRentalProperty 클래스를 위한 헤더파일 구체화하기 5.3 클래스를 위한 구현 제공하기 5.3.1 메서드 구현 정의하기 5.3.2 인스턴스 변수에 접근하기 5.3.3 self에게 메시지 보내기 5.3.4 CTRentalProperty 클래스에 메서드 파일 구체화하기 5.4 선언된 프로퍼티 5.4.1 @property 구문 5.4.2 프로퍼티의 getter와 setter 통합하기 5.4.3 점(.) 구문 5.5 객체 생성하기와 파괴하기 5.5.1 객체 생성하기와 초기화하기 5.5.2 init은 멍청하다 5.5.3 선언과 초기화 결합하기 5.5.4 객체 파괴하기 5.6 Rental Manager application에서 클래스 사용하기 5.7 요약 6장 클래스 확장하기 6.1 서브클래싱 6.1.1 서브클래싱이란? 6.2 새로운 인스턴스 변수 추가하기 6.3 존재하는 인스턴스 변수에 접근하기 6.3.1 수동 Getter와 setter 접근 6.4 메서드 오버라이드하기 6.4.1 description 메서드 오버라이드 6.5 클래스 클러스터 6.5.1 왜 클래스 클러스터를 이용하는가? 6.5.2 다중 public 클러스터 6.6 카테고리 6.6.1 서브클래싱 없이 클래스 확장하기 6.6.2 카테고리 사용하기 6.6.3 카테고리 사용 시 고려할 점 6.7 예제 애플리케이션에서 서브클래스 적용하기 6.7.1 CTLease를 생성하고 서브클래싱하기 6.7.2 CTLease의 서브클래스 CTPeriodicLease 생성하기 6.7.3 CTLease의 서브클래스 CTFixedLease 생성하기 6.8 요약 184 7장 프로토콜(Protocol) 7.1 프로토콜 선언 7.2 프로토콜의 구현 7.2.1 프로토콜 메서드 호출자 생성 7.2.2 프로토콜을 적용하는 클래스 생성 7.3 프로토콜의 주요 메서드 7.3.1 7.3.2 7.3.3 7.3.4 NSXMLParser 7.4 요약 210 8장 동적 유형 정의와 런타임 유형 정 8.1 정적 VS 동적 유형 정의 8.1.1 런타임 유형에 대한 가정 생성 8.2 동적 바인딩 8.3 어떻게 메시징이 작동하는가 8.3.1 메서드, 선택자 그리고 구현 8.3.2 알려지지 않은 선택자를 다루기 8.3.3 Nil에 메시지 보내기 8.4 런타임 유형 정보 8.4.1 메시지가 메시지에 응답 하는 것을 결정하기 8.4.2 런타임에 생성된 메시지 보내기 8.4.3 런타임 시 클래스에 새로운 메서드 더하기 8.5 런타임 유형의 실제 사용 8.6 요약 9장 메모리 관리 9.1 객체 소유권 9.2 참조 횟수 9.2.1 객체 해제 9.2.2 객체 보유 9.2.3 현재의 보유 횟수 결정하기 9.3 자동 해제 풀 9.3.1 자동 해제 풀이란? 9.3.2 자동 해제 풀에 객체 더하기 9.3.3 새로운 자동 해제 풀 만들기 9.3.4 풀에 있는 객체 해제하기 9.3.5 왜 모든 것에서 자동 해제 풀을 사용하지 않는가? 9.4 메모리 존 9.5 객체 소유권을 위한 규칙 9.6 메모리 부족 경고에 응답하기 9.6.1 UIApplicationDelegate 프로토콜의 구현 9.6.2 didReceiveMemoryWarning 오버라이딩 9.6.3 UI 애플리케이션 DidReveiveMemoryWarningNotification 관찰하기 9.7 요약 3부 프레임워크 기능 최대한 사용하기 10장 오류와 예외 처리 10.1 NSError - Cocoa 방식의 오류 처리 10.1.1 대화하기 위하여 NSError 얻기 10.1.2 NSError의 userInfo 딕셔너리 알아보기 10.2 NSError 오브젝트 생성하기 10.2.1 RentalManagerAPI 소개하기 10.2.2 RentalManagerAPI 오류 핸들링과 표시하기 10.3 예외 10.3.1 예외 처리 10.3.2 예외 잡기 10.4 요약 11장 키-값 코딩과 NSPredicate 11.1 KVC-compliant 객체 만들기 11.1.1 KVC로 속성 접근 11.1.2 키 경로 생성 11.1.3 여러 값 되돌리기 11.1.4 어그리게이트와 병합 키 11.2 특별한 인스턴스 다루기 11.2.1 알 수 없는 key 11.3 프리디케이트 필터링과 매칭 11.3.1 프리디케이터 평가 11.3.2 콜렉션 필터링 11.3.3 프리디케이트 조건 표현하기 11.3.4 더 복잡한 조건 11.3.5 프리디케이트 표현에서 키 경로 사용 11.3.6 파라메터라이징과 템플릿 프리디케이트 표현 11.4 예제 애플리케이션 11.5 요약 12장 애플리케이션 데이터 읽고 쓰기 12.1 Core Data 역사 12.1.1 Core Data의 임무는 무엇인가? 12.2 Core Data 객체 12.2.1 관리된 객체 내용 12.2.2 영속적 저장 코디네이터 12.2.3 관리된 객체 모델 12.2.4 영속적 객체 저장 12.3 Core Data 자원 12.3.1 Core Data 개체 12.3.2 Core Data 속성 12.3.3 Core Data 관계 12.4 PocketTasks 애플리케이션 구축 12.4.1 XCode Core Data 탬플릿 알아보기 12.4.2 데이터 모델 구축 12.4.3 관계 정의 12.4.4 순수 코드에 Person 개체 생성 12.4.5 순수 코드에서 Person 개체 페치하기 12.4.6 마스터 TableView 추가하기 12.4.7 사람 추가와 삭제 12.4.8 업무(task) 관리 12.4.9 모델 객체 사용 12.5 기초 이상으로 12.5.1 데이터 모델 바꾸기 12.5.2 성능 12.5.3 오류 처리와 유효성 12.6 요약 13장 블록과 Grand Central Dispatch 13.1 블록의 구문 13.1.1 블록은 절(closure)이다. 13.1.2 블록과 메모리 관리 13.1.3 Apple iOS 프레임워크의 블록 기반 API 13.2 비동기화로 일 실행하기 13.2.1 GCD를 만나다. 13.2.2 GCD의 기초와 원리 13.2.3 RealEstateViewer만들기 13.2.4 비동기화로 이미지 검색하게 하기 13.2.5 이미지 로딩 비동기화. 13.3 요약 14장 디버깅 기술 14.1 완전한 버그가 있는 애플리케이션 만들기 14.2 NSLog 이해하기 14.3 Instruments 제어를 기반으로 한 메모리 누출 통제 14.5 요약 부록A iOS SDK 설치하기 A.1 iOS SDK 설치하기 A.1.1 Apple의 개발자가 되기와 SDK 다운로드 받기 A.1.2 시스템 권장 사양 A.1.3 iOS SDK와 XCode 다운로드 받기 A.1.4 iOS SDK 와 XCode 설치하기 A.2 개발을 위한 iOS 기기 준비 A.2.1 인증서 만들기 A.2.2 XCode를 이용하여 기기 사용 준비하기 A.2.3 수동으로 기기 사용 준비하기 A.2.4 기기에서 애플리케이션 실행하기 부록B C의 기초 B.1 변수 명명 규칙 B.1.1 헝가리식 표기법 B.1.2 카멜 케이스 B.1.3 네임스페이스 B.2 표현식 B.2.1 산술 연산자 B.2.2 비교 연산자 B.2.3 비트 연산자 B.2.4 대입 연산자 B.2.5 연산자 처리 순서 B.3 조건문 B.3.1 if-else 조건문 B.3.2 조건부 연산자 B.3.3 제어문 B.4 반복문 B.4.1 while 문 B.4.2 Do-while 문 B.4.3 For 문 B.4.4 반복 통제하기 B.5 요약 부록C Objective-C의 대안 C.1 Objective-C 의 간단한 역사 C.1.1 Objective-C 의 기원 C.1.2 NeXT사에 의한 대중화 C.1.3 Apple에 의한 채용과 진화 C.2 Objective-C와 Cocoa의 대안 C.2.1 정곡 찌르기: Objective?C++와 평범하고 오래된 C나 C++ C.3 iPhone SDK: 사파리(Safari) C.3.1 HTML, CSS3 그리고 기타 현대의 표준 C.3.2 iPhone OS 통합 C.3.3 PhoneGap과 기타 확장 가능한 크로스 플랫폼 해결책 C.4 스크립팅 언어: Lua와 Ruby C.5 방안에 있는 1000 파운드의 고릴라: Adobe Flash C.6 Mono (.NET) C.7 요약 |
|
10년 이상 모바일 플랫폼의 다양한 애플리케이션 개발에 참여하였지만, 2008년 iPhone이 처음 도입되었을 때 흥미로운 것을 발견했다. iPhone은 소비자 관점에서 무형이고 정의 내리기 쉽지 않은 요소를 기기로 컴파일하여 고객과 지속적인 상호작용을 요구한다. 사용자에게는 ‘편한’ 기기와 단순한 작업을 수행하기 위한 수단이라기보다는 즐거움을 제공한다.
iPhone에서 사용자 경험은 새롭고 신선한 일이 되면서 그것을 지원하는 개발 도구는 고유하게 되었다. Apple 제품에 경험이 없는 개발자에게는 새로운 용어, 도구, 그리고 이해가 필요한 개념으로 가득한 플랫폼이었다. 이 책은 iOS 애플리케이션에서 사용할 만한 기능을 포함하는 것에 중점을 두었으며, 이러한 기술의 소개를 위해 작성되었다. 새로운 환경의 학습을 위해서, 책의 어떤 한 부분은 읽지 않아도 되고 설계한 애플리케이션의 구현을 시도하지 않아도 되며, Objective-C 또는 Mac OS X 애플리케이션을 데스크톱에 적용하기 위해 논의된 Cocoa 기능을 실행하면 된다. 이 책을 읽고 즐거운 시간을 보내길 바란다. 또한, 이 책을 참고하여 iTunes 앱 스토어의 최상위 10개 애플리케이션을 개발해보기 바란다! ---「머리말」 중에서 처음 2009년 후반 한국의 iPhone 출시는 이후 국내 스마트폰의 폭발적인 보급 증가, 통신 환경 변화를 가지고 왔습니다. 이는 2009년 초만 해도 누구도 예상할 수 없었던 일이었습니다. 국내 스마트 폰 시장과 애플리케이션 시장이 팽창함에 따라 iPhone 및 iPad 개발자에 대한 수요도 증가하였습니다. 이즈음부터 서점에는 애플리케이션 개발에 대한 서적들이 넘쳐났습니다. 그러나 그 책들은 iPhone App 개발 예제와 부족한 설명 위주의 입문서이거나 너무 딱딱하게 Objective-C의 문법을 설명하는 문법서였습니다. 이 책은 이러한 iPhone App 개발 서적과는 달리 풍부한 예제와 함께 Objective-C 문법 설명에 포커스를 맞추고 있어 초보자보다는 다른 언어의 개발 경험이 있는 중상급 이상 사용자의 애플리케이션 개발 방법 및 Objective-C 문법 학습을 위한 것입니다. 이 책에서 배운 여러 가지 기술을 응용하여 양질의 애플리케이션 개발을 할 수 있고, 향후 Mac OSX 데스크 탑 개발 등에 배운 기술을 응용할 수 있을 것으로 예상됩니다. 이 책의 원서가 처음 출판 되었을 때는 Xcode 4.1 환경이었지만, 출판 이후 iOS 5.0버전을 지원하기 위하여 많은 부분이 변경된 XCode 4.2가 발표되었고, 번역이 마무리 되는 시점에서 Xcode 4.3이 발표되었습니다(자세한 변경사항은 http://developer.apple.com에서 확인하실 수 있습니다). 이 책을 번역하는 동안 가능한 한 최신 버전을 반영할 수 있도록 노력하였지만, 빠른 변화에는 역부족이었던 것 같습니다. 향후 변경 내용은 ITC 홈페이지 등을 통해 반영하도록 하겠습니다. ---「역자 머리말」 중에서 |
|
[오브젝티브-C의 정석]은 iPhone를 위한 고유의 앱을 구축하는 과정을 통하여 Objective-C 코드 첫 번째 줄부터 점차적으로 안내한다. 1장을 시작하면서 즉시 실행할 수 있는 간단한 게임을 개발하며 iPhone 개발에 뛰어들게 된다. XCode 4와 디버거를 사용하면서 독자가 보다 유능한 개발자가 되도록 도와준다. 쉽게 따라할 수 있는 수많은 예제를 이용하여 작업함으로써 더 견고하고 안정적으로 애플리케이션을 개발하는 데 사용할 수 있는 실용적인 기술과 패턴을 배울 수 있다. 그리고 가장 일반적인 장애물을 피할 수 있는 방법을 찾을 수 있을 것이다.
이 책의 내용 - Objective-C의 처음부터 끝까지 - XCode 4로 개발하기 - iPhone을 위한 풍부한 예제 이 책을 공부하고 지식을 얻기 위해서 iOS나 모바일 경험을 요구하지 않지만 일반적인 프로그래밍에 친숙한 것은 도움이 된다. 저자인 Christopher Fairbairn과 Johannes Fahrenkrug, Collin Ruffenach은 지난 10년이 넘는 기간 동안 iOS과 Palm, Windows Mobile, Java 등 각기 다른 시스템을 이용해본 경험이 있는 전문적인 모바일 앱 개발자이다. “곁에 두고 싶은 완벽한 참고서” - Glenn Stokol, Oracle “iOS 프로그래밍 입문서의 정수” - Dave Bales, Whitescape “Objective-C의 최고의 역작.. 나도 이 책을 완벽히 이해하고 싶다!” - Dave Mateer, Mateer IT “iPhone 애플리케이션 개발 도구의 정수를 담은 훌륭한 소개서“ - Carl Douglas, NZX “이 책과 함께라면 마켓에서 최고의 상품이 될 것이다.” - Ted Neward, Neward & Associates 회장 |