처음 시작하시는 분들은 아이폰 프로그래밍 가이드 로 시작하시는 게 좋습니다.
이 책에는 애플앱의 기본이론 뿐만 아니라 애플 개발자 프로그램에 대해서도 상세하게 나와있어 흥미를 갖게 해줍니다 ^^
Object-C 에 대한 내용도 있어서 애플 앱개발을 처음 시작하시는 분들께는 좋은 입문서가 될 것이라 생각합니다.
다음으로 기본적인 기술(문법, 애플 개발툴 이해)이 되신 분은 예제로 시작하는 아이폰 개발 을 추천드립니다.
아이폰 개발서 중에서는 상당히 초반에 나온 책이라 판매량이 어느정도 되는 편입니다만,
기초적인 내용은 적게 나와있어 입문서로는 조금 부족한 감이 있습니다.
간단한 예제가 나와있어 구현테스트용으로 쓰시면 좋을 것입니다.. ^^
이제 왠만큼 틀이 잡히셔서 앱개발을 시작하시려 한다면 iPhone Advanved Projects 라는 책을 추천드립니다.
이 책은 1단원부터 파티클에 대한 설명이 나올 정도로 실전집중형 책입니다. (이름도 프로젝트 ㄷㄷ)
기초부터 다지시려는 분들에게는 조금 어려울 수도 있으나 개발능력 향상에는 프로젝트만큼 좋은게 없는 만큼
자신이 생각하는 앱을 개발하기 전에 이 프로젝트로 자신의 능력을 업그레이드 해보는 것도 좋을 것이라 생각됩니다.
목차는 아래와 같습니다! (더보기 클릭)
아이폰 프로그래밍 가이드
예제로 시작하는 아이폰 개발
iPhone Advanced Projects
1 왜 아이폰인가? 1.1 아이폰
1.2 아이폰과 앱 스토어
1.3 우리는 왜 아이폰으로 개발하는가?
1.4 아이폰 개발을 위한 준비
2 아이폰 개발자 프로그램
2.1 아이폰 개발자 프로그램에 등록하기
2.2 아이폰에 애플리케이션 올리기
2.3 앱 스토어에 애플리케이션 올리기
3 Objective-C 3.1 Objective-C란?
3.2 Objective-C 객체지향 프로그래밍
3.3 객체 메시지 전달
3.4 기본 문법
3.5 카테고리와 프로토콜
3.6 유용한 클래스
3.7 메모리 관리
4. Hello, iPhone!
4.1. 시작하기
4.2. 준비 단계
4.3. 예제: Hello, iPhone!
4.4. 예제: MyHello
5 UIView 5.1 시작하기
5.2 UIView 클래스
5.3 다양한 뷰 살펴보기
6 뷰 컨트롤러
6.1 시작하기
6.2 UIView Controller
6.3 Navigation Controller
6.4 Tab Bar Controller
6.5. Tab Bar와 Navigation Controller 함께 사용하기
9 멀티미디어(소리, 비디오, 애니메이션)
9.1. 소리
9.2. 비디오
9.3 UIView 애니메이션
10 데이터 다루기
10.1 시작하기
10.2 작은 데이터 다루기
10.3 큰 데이터 다루기
10.4 지역화
10.5 데이터 포매팅
11 네트워크 11.1 시작하기
11.2 네트워크 정보 알아보기
11.3 TCP 클라이언트 이용하기
11.4 TCP 서버 이용하기
11.5 Bonjour를 이용한 서비스 자동 발견
01장 아이폰 SDK 소개
애플 아이폰 SDK
아이폰 프로젝트
아이폰 애플리케이션 컴포넌트
-애플리케이션 폴더 구조
-실행파일
-Info.plist 파일
-아이콘과 기본 이미지
-XIB 파일
-애플리케이션 번들에 포함되지 않은 파일
-샌드박스
플랫폼의 제약사항
-저장공간
-데이터 접근
-메모리
-상호작용
-배터리
-애플리케이션
-사용자 행동
SDK의 제약사항
프로그래밍 패러다임
-객체 지향 프로그래밍
-모델-뷰-컨트롤러
아이폰 애플리케이션 골격 만들기
Hello World 애플리케이션
-클래스
-코드
-예제 코드와 메모리 관리에 대한 주의점
Hello World 만들기
-아이폰 프로젝트 생성
-골격만 실행해보기
-아이폰 프로젝트 커스터마이즈
-식별자 정보 수정
-디버거 사용
애플 아이폰 개발자 프로그램
-개발용 폰
-애플리케이션 식별자
엑스코드에서 아이폰으로: 오거나이저 인터페이스
-프로젝트와 소스 리스트
-디바이스 리스트
-써머리 탭
-콘솔 탭
-크래쉬 로그 탭
-스크린샷 탭
-케이블 연결
-아이폰상에서 애플리케이션 테스트하기
-배포용 컴파일
문서에 없는 API 호출 사용하기
애드혹 배포
정리
02장 뷰
UIView와 UIWindow
- 계층구조
- 형태와 특성
- 제스처
예제: 단계적 하위뷰 붙이기
- 방향전환
예제: 뷰 드래깅
- UITouch
-지속성 추가
예제: 뷰 오려내기
-잘라내기와 터치 맞추기
-픽셀단위 값에 접근하기
예제: 멀티터치 감지
-UIView 애니메이션
-UIView 애니메이션 블록 만들기
예제: 뷰를 페이드 인/아웃하기
예제: 뷰 간 전환하기
예제: 뷰 뒤집기
예제: CATransition을 레이어에 적용하기
-문서에 나오지 않는 애니메이션 타입
-일반 코어 애니메이션 호출
예제: 뷰 스와이프하기
예제: 뷰 변형하기
-가로보기 뷰를 가운데로 맞추기
정리
03장 뷰 컨트롤러
뷰 관리
- 코어 클래스
- 스페셜 클래스
- UIViewController 만들기
인터페이스 빌더를 사용한 뷰 만들기
- 온도 변환기 예제
- 직접 XIB 파일을 로딩하기
내비게이션 컨트롤러
- 내비게이션 컨트롤러 설정
- 뷰 컨트롤러를 스택에 넣고 꺼내기
- 내비게이션 아이템 클래스
예제: 아이템 둘 있는 메뉴 만들기
예제: 세그먼트 컨트롤 추가하기
예제: 내비게이션바에 UIToolbar 추가하기
예제: 뷰 컨트롤러 간의 내비게이션
- 루트로 바로 가기
- 뷰 컨트롤러 배열 읽어들이기
탭바
정리
04장 알림
알림창을 통해 사용자에게 직접 알리기
- 결과 로깅
- 알림창 만들기
- 화면에 알림창 띄우기
예제: 여러 줄짜리 버튼 만들기
예제: 버튼 없는 알림창
예제: 사용자에게 텍스트 입력 요청하기
예제: 간단한 메뉴
‘대기 중’: 사용자에게 진행 상황 보여주기
예제: 문서화되지 않은 UIProgressHUD 사용
예제: UIActivityIndicatorView 사용
예제: UIProgressView 만들기
예제: 선택 가능한 커스텀 오버레이 만들기
예제: 스크롤다운 알림창 만들기
예제: 상태바에 이미지 추가하기
애플리케이션 뱃지 달기
예제: 간단한 소리 알림
-진동
정리
05장 기본 테이블
UITableView와 UITableViewController 소개
- 테이블 만들기
- UITableViewController가 하는 일
예제: 단순 리스트 테이블 만들기
-데이터 소스 메소드
-셀의 재사용
-폰트 테이블 예제
예제: 테이블 기반 선택 시트 만들기
예제: 테이블 셀에 이미지 추가하기
예제: 셀의 텍스트 속성
셀 선택 제거
예제: 복잡한 셀 만들기
예제: 셀 선택 표시 만들기
예제: 셀 삭제
-삭제 컨트롤 추가
-삭제 컨트롤 제거
-삭제 요청 처리
-스와이핑 셀
-셀 추가
예제: 셀 순서 변경하기
예제: 디스클로저의 사용
정리
06장 고급 테이블 예제: 테이블 섹션 그룹화
- 섹션을 지원하는 데이터 소스
- 섹션 헤더 추가하기
예제: 인덱스 섹션 테이블
예제: 셀 배경색 바꾸기
- 테이블 뷰 꾸미기
예제: 두 배경색이 반복되는 셀
예제: 프레임을 사용한 테이블
예제: 셀에 컨트롤 추가하기
예제: 멀티 휠 테이블
- UIPickerView 생성
예제: UIDatePicker 사용하기
- 날짜 피커 만들기
예제: 풀 커스터마이징된 그룹 테이블 만들기
- 설정 테이블 만들기
정리
07장 미디어 예제: 파일 형식에 따라 문서 폴더의 내용 보기
- 문서의 위치 찾기
이미지를 읽고 보여주기
예제: 작은 이미지 보여주기
예제: UIWebView를 사용해 이미지 보여주기
- UIWebView를 이용해 웹 페이지 보여주기
예제: 이미지 라이브러리 브라우징
예제: 카메라 롤에서 이미지를 선택하고 커스터마이징
예제: 아이폰 카메라로 사진 찍기
아이폰 오디오 다루기
예제: 셀레스티얼을 이용한 오디오 재생
예제: 미디어 플레이어를 이용한 오디오와 비디오 재생
예제: 오디오 녹음
텍스트 데이터 읽기
- 속성 리스트 출력하기
백업 파일에서 미디어 복원하기
정리
08장 컨트롤
예제: 간단한 버튼
- UIButton 클래스
- 커스텀 버튼
- 글래스 버튼
예제: 애니메이션 요소로 버튼 꾸미기
예제: 버튼에 애니메이션 추가하기
예제: 스위치 커스터마이징
- UIAlertView 버튼 꾸미기
예제: 커스텀 슬라이더 썸 이미지 추가
- 슬라이더에 텍스트 추가
예제: UITextField 키보드 사라지게 하기
예제: UITextView 키보드 사라지게 하기
예제: 텍스트 뷰에 취소 버튼 추가
예제: 텍스트 기반 HTML 편집기
예제: 검색바
예제: 콜아웃뷰 추가
페이지 표시 컨트롤 추가
예제: 툴바 커스터마이징
- 툴바 팁
정리
09장 사람, 위치, 변화
연락처 프레임워크 종류
- 연락처 UI 프레임워크
- 연락처 프레임워크
예제: 연락처 이미지 데이터 접근
예제: 개인 연락처 정보 보이기
예제: 연락처 브라우징
- 이메일 주소만 브라우징하기
- 연락처 추가
코어 로케이션
코어 로케이션 동작 원리
예제: 코어 로케이션
예제: 위치 정보를 주소로 변환
예제: 코어 로케이션 데이터를 사용한 지도 찾기
예제: 코어 디바이스 정보 접근
예제: 근접 센서 켜고 끄기
예제: 가속도를 사용해 위아래 구별
예제: 가속도 센서를 이용해 화면 상 오브젝트 움직이기
정리
10장 서비스 연결
예제: 애플리케이션 설정 추가
- 애플리케이션 설정
예제: 커스텀 URL 스킴 등록
예제: 네트워크 상태 확인
- 네트워크 연결 상태 확인
- 아이폰 로컬 IP 주소 조회
- 사이트 IP 주소 조회
- 사이트 사용 가능 여부 확인
예제: 아이폰 데이터베이스 사용
예제: XML을 트리 데이터 구조로 변환
예제: 키체인 아이템 저장과 조회
- 키체인에 여러 값 저장
- 키체인 지속성
파일 전송과 수신
예제: 간단한 웹 서버 만들기
푸시 알림 서비스
정리
11장 커버플로우 만들기
UICoverFlowLayer 클래스
커버플로우 뷰 만들기
커버플로우 뷰 컨트롤러 만들기
- 커버플로우 데이터소스 메소드
- 커버플로우 델리게이트 메소드
정리
부록 아이폰 개발에 꼭 필요한 오브젝티브C 기초와 메모리 관리
1장 파티클 시스템: 생각보다 쉽고 재미있다
1. 파티클로 게임에 생기를 불어 넣기
2. 아이폰에 맞는 파티클 시스템
예제 코드 살펴보기
게임의 기본 흐름
파티클 시스템의 해부
파티클 만들기!
퇴화된 삼각형
코드로 돌아가자
랜덤 숫자와 초기 조건
파티클의 분출
3. 파티클 시스템 트윅
포스가 파티클과 함께 하기를
4. 놀랍고 화려한 꿈의 파티클
보간법
색이 변하는 파티클
맺음말
2장 인터넷으로 하는 체스: Deep Green으로 즐기는 메시지 통신 게임
1. Deep Green은 이미 인기 있는 게임이다
2. 해야 할 일들
친구를 게임에 초대하기
초대 수락하기
체스 말 움직이기
알림 메시지 받기
3. 소중한 자산과도 같은 도구들
4. 이야기는 그만, 코딩의 시작!
도구들 설치하기
웹 서비스 코딩하기
디바이스에서의 작업
체스 말 움직이기
맺음말
3장 오디오 스트리밍: 코어 오디오 탐험
1. 여보게, 나는 음원을 재생할 수 있는 애플리케이션을 개발할 수 있다네…
2. MPMoviePlayerController: 참 쉽군요!
3. 더 나은 방법을 찾아서
시스템 사운드를 이용하는 방법
AVAudioPlayer: 베타 버전에는 없는 방법
4. 코어 오디오를 가지고 카우보이처럼 해결하는 방법
이제 절반까지 도달한 것일세: 오디오 큐 서비스
조금만 힘을 내면 목표 지점이다: 오디오 파일 스트림 서비스
5. 애플리케이션에 모든 것을 집어 넣자
한 가지 더
6. 실행!
7. 아이폰 3.0과 이후 작업
맺음말
4장 당장 버그를 때려잡자! 아이폰에서 디버깅하기
1. 전제 조건
2. Objective-C vs C/C++
3. 당신이 코드를 작성하는 사이에
커스텀 Asserts
커스텀 로깅
#define 사용하기
4. 크래쉬!
테스터로부터 크래쉬 로그 받기
우리는 dSYM 파일들을 보관하고 있습니다 확실합니까?
크래쉬 로그를 심볼화하기
atos 사용하기
5. 재현이 어려운 크래쉬들을 재현하는 방법
스레드
시스템
레이스 컨디션
6. 디버깅의 과학적인 접근방법
가설을 세운다
가설을 위한 검증 절차 계획하기
가설을 증명하거나 혹은 부정하거나
크래쉬의 발생 확률 높이기
7. 콜 스택 정보를 갖고 있다. 그러나…
코드의 시작
메모리 깨짐이란 무엇인가?
메모리 깨짐 확인하기
메모리 문제 감지도구
변수값 보기
링크 맵 파일
맺음말
5장 잠깐 기다려봐!: SQLite로 데이터 기반 애플리케이션 만들기
1. 지름길로 가기 위해 절벽에서 점프하다(왜 이런 선택을 하게 되었는가)
2. 아이폰 앱 개발을 시작한 이유
3. 아이폰의 데이터 기반 애플리케이션
4. 액티브 레코드: 데이터에 접근하는 간단한 방법
5. C API를 감싸는 데이터베이스 랩퍼: ISDatabase
예제 프로젝트 셋업
데이터베이스 생성과 초기화
데이터베이스에 연결하기
간단한 요청 생성
6. 고급 SQL
중복된 Create 구문 방지하기
파라미터 처리
리펙토링과 정리
여러 Statement 구문을 트랜잭션 단위로 그룹화하기
7. 간단한 액티브 레코드 레이어 작성: ISModel
데이터베이스 연결 유지하기
모델 객체: Grocery 아이템
Grocery들이 매핑되는 방법
저장
갱신
삭제
식료품 아이템 찾기
모든 것들을 한 자리에
8. 간단한 마이그레이션
9. 다른 구현 방법
맺음말
6장 코어 데이터와 하드코어 디자인
1. 코어 데이터의 역사?
손님은 왕이다
2. 첫 번째 코어 데이터 어플리케이션
첫째, 코드를 훔쳐라(음악이 아니라!)
모든 객체에 대한 뷰
첫 크래쉬거나 아니거나!
3. 아이폰 OS를 위한 코어 데이터 개발 설명서: 모델 마이그레이션 관리
간단하게 마이그레이션을 할 수 있다
새로운 개체 추가하기
4. 키-값 코딩을 사용하여 재사용이 가능한 객체 만들기
5. 원격 데이터베이스: 모든 것을 넷(Net)으로!
맺음말
7장 코어 데이터와 Three20을 이용한 애플리케이션 이메일 기능
1. 간단한 오프라인 SMTP 클라이언트
2. 사용자 인터페이스 만들기
Xcode 주물러보기
OfflineMailerAppDelegateh에 있는 인스턴스 변수 설정
UIApplication 델리게이트 초기화
3. 코어 데이터로 작업하기
코어 데이터 스택의 이해
Three20 추가하기
4. 사용자 인터페이스를 이용한 여행
5. DataManager로 최상위 레벨 데이터 관리하기
6. Three20와 TTMessageController에 대한 고찰
7. 메시지 작성과 전송
8. 코어 데이터 모델 만들기
9. 스레드 방식의 메시지 전송을 위한 SKPSMTPMessage 해킹
10. SKPSMTPMessage의 NSRunLoop 설정
11. 온라인 모드로 돌아가기
맺음말
8장 iTap은 네트워크 문제들을 어떻게 해결했을까?
1. iTap과 iTap 리시버
iTap
iTap 리시버
2. iTap에 대한 아이디어는 어떻게 나오게 되었고 또 진화해 왔는가?
3. 주요 문제들
아이폰에는 물리적 버튼이 없다
서드-파티 어플리케이션은 USB나 블루투스를 사용할 수 없다
맥과 PC 모두 지원하기
컴퓨터와 디바이스 간의 사용자 친화적인 자동 검색 기능
4. 프로그래머가 바라본 아이폰의 와이파이 네트워킹
예제 코드에 관하여
소켓의 소개
소켓 생성
CFSocket을 이용한 네트워크 이벤트 처리
네트워크 설정값 얻어오기
네트워크 상의 모든 기기와의 통신
와이파이 사용 가능 여부 확인하기
파워 관리 규칙 준수
5. iTap의 네트워크 서브시스템
Bonjour를 사용할 것인가, 사용하지 않을 것인가
알림 메시지를 이용한 컴포넌트 간의 통신
직접 만든 자동검색 기능
맺음말
9장 반응성 향상을 위한 팁과 트릭
1. AAPLot으로 주식 가격에 대한 기록 도표 만들기
실행할 때마다 데이터 저장하기
Plists를 이용한 데이터 영구 저장
아이폰 어플리케이션 샌드박스에 데이터 저장하기
2. AAPlot에 임시 데이터 뿌리기
3. 여러 개의 주식 그래프 보여주기 : Stockplot
4. 동시 수행
NSOperation, NSOperationQueue 그리고 블록
Plausible Blocks 컴파일러 설치하고 프로젝트에 추가하기
StockPlot에서 블록, NSOperation, NSOperationQueue 사용하기
5. 효율적으로 많은 양의 데이터 보여주기
UIScrollView 확대/축소
UIScrollView 확대/축소의 비밀
6. 확대/축소 후에 UIScrollView 해상도 재설정
7. 오프-스크린 컨텍스트에 그리기
8. 관찰, 팁 그리고 트릭
맺음말
10장 애플 푸쉬 알림 서비스를 이용하는 클라이언트 만들기애플의 푸쉬 알림 서비스를 파헤치다
1. 애플의 푸쉬 알림 서비스란 무엇인가?
2. 당신에게 필요한 것
3. 1단계: 클라이언트 생성
애플리케이션 델리게이트
수신되는 알림 메시지 처리
소리
빌드와 실행! 이런, 그렇게 빠르진 않군…
4. 2단계: 인증서 만들기
프로그램 포탈 과정 실습
포털로 돌아와서
코드 사이닝에 모바일 프로비저닝 파일 넣기
5. 3단계: 서버 설정
스크립트에 대한 고찰
서버 파일 내려 받기
6. 마무리 작업
클라이언트 연결하기
7. 추가 고려 사항/고급 주제
피드백 서버
SSL 서버 연결
개발 샌드박스에서 실제 제품으로 이동
개발 버전 vs 특별 배포 버전
모바일 프로비저닝 파일
디버깅
사용자 경험
오픈 소스 코드
제공되는 솔루션
맺음말
11장 생동감 있는 그래픽 효과를 만드는 OpenGL ES 기법OpenGL ES 기법
1. 시작
2. 1단계: OpenGL 라이팅
3. 환경 매핑으로 눈길을 돌리다
4. 구 환경 매핑 구현
5. 환경 매핑과 확산 텍스처의 결합
각 픽셀의 반사
아이폰 3GS
맺음말
위 목차를 보시고 자신에게 맞는 책을 선택하시면 됩니다.. ^^
책에 대한 내용과 흥미도(이미지여부, 페이지수)는 개인적으로 다를 수 있으니 구매하시기 전에 꼭 서점에서 확인해보시는 것이 좋습니다.
저도 인터넷에서 좋은 책보고 구매했는데 실제로 자신의 스타일과 맞지 않았던 적이 있었거든요.. ㅡㅜ