이제는 아이폰 SDK 3.0으로 개발하세요~!

By | 2009년 7월 30일

얼마 전까지만 해도 개발자 세상에서 아이폰 프로그래밍은 빠뜨릴 수 없는 이야깃거리였고, 조금 차분해지긴 했지만 여전히 많은 분들이 아이폰 프로그래밍에 관심을 가지고 계시리라 생각합니다.

사용자 삽입 이미지
특히, 지난 6월 애플에서 아이폰 SDK 3.0을 소개했을 때는, ‘바로 이거다!’ 싶은 새롭고 재미있는 기능들이 여럿 소개되었는데요.

  • 백그라운드 프로세스의 효과를 얻을 수 있는 ‘푸시 통보 서비스(push notification service)’
  • 아이폰끼리 연결할 수 있는 P2P 기능
  • 흔들기(shaking) 동작 추가
  • 동영상을 녹화하는 기능
  • 아이튠스에서 전송한 노래들을 재생하는 기능
  • 애플리케이션 안에서 콘텐츠를 판매할 수 있는 스토어 킷
  • 등등

아래는 꺼져있던 아이폰이 AIM에서 온 푸시 통보 메시지에 반응하는 모습입니다. (50초 정도부터 보세요~)

하지만 이렇게 다양한 기능이라도 써먹을 수 없다면 무용지물! 그래서~! 준비했습니다. 이렇게 다양한 기능들이 추가된 아이폰 SDK 3.0을 내 마음대로 써먹을 수 있는 방법!

사용자 삽입 이미지
해외에서 『Beginning iPhone 3 Development』가 7월 12일에 출간되는 바람에, 아쉽게도 세계 최초라는 수식어를 붙이진 못했지만, 시작부터 끝까지 아이폰 SDK 3.0을 다룬 책이라는 점에서 『터칭! 아이폰 SDK 3.0』의 가치가 바래지는 않으리라 생각합니다.

일단 이 책은 아이폰 SDK 3.0에서 개발하려는 개발자를 위한 책입니다. 이제 막 아이폰 프로그래밍을 시작하려는 분들도 예제를 따라하다 보면 어느덧 멋진 애플리케이션을 완성할 수 있구요. 이전 버전으로 개발하시던 분들도 아이폰 SDK 3.0에 새로 추가된 기능들을 자유자재로 다루는 재미를 느끼실 수 있을 겁니다.

8월 중순까지는 책이 나올텐데요. 예약 구입하러 고고싱~ (교보, 예스24, 인터파크)하셔도 되고, 책의 내용을 미리 맛보고 싶은 분들은 저자이신 강덕진 님의 블로그에서 재미난 팁들을 읽어보시면 되겠습니다. ^^

목차를 보시려면 more를 눌러주세요~ ^^

[#M_ more.. | less.. | 1장 안녕! 아이폰!
1.1 아이폰의 등장
1.2 아이폰/아이팟 터치 모델
1.3 아이폰 OS 3.0의 새로운 기능
1.4 이 책이 다루는 내용
1.5 새로운 도전

2장. 설치 및 개발 환경 구축
2.1. 개발에 필요한 시스템
    개발에 필요한 시스템 사양
2.2. 아이폰 SDK 설치
    아이폰 SDK 설치하기
2.3. Xcode
    프로젝트 템플릿
    Xcode 화면 구성
2.4 인터페이스 빌더
    인스펙터
    라이브러리
    문서 창
    연결 패널
2.5 도움말 접근하기
    조사 도우미
    도움말 창
    고급 검색
    편집기의 문자열을 도움말 창에서 바로 검색하기
    도움말 문서의 형태
2.6 아이폰 레퍼런스 프로젝트
    프로젝트 생성
    인터페이스 빌더로 화면 디자인하기
    코드 입력하기
2.7. 아이폰 시뮬레이터
    터치 조작
    리셋하기
    참고 사이트
2.8 정리

3장 동작 환경 이해하기
3.1 아이폰 동작 환경
3.2 애플리케이션 번들
3.3 Info.pList 파일
3.4 애플리케이션 델리게이트
3.5 핵심 디자인 패턴
    델리게이트(delegate)
    데이터 소스(Data Sources)
    타깃-액션(Target-Action)
    통보(Notification)
    키-값 감시(Key-Value Observing)
3.6 아이폰 링크
    메일
    전화 걸기
    문자(SMS) 보내기
    지도 보기
    아이튠스
    유튜브(YouTube) 연결하기
3.7 커스텀 URL 스키마 만들기
3.8 정리

4장 화면을 이루는 기본 : 뷰
4.1 UIWindow
4.2 UIView와 UIViewController
4.3 뷰를 직접 만들어 보자
    이미지 준비
    코드 작성
    직접 만든 뷰를 화면에 추가하기
4.4 UI 브로슈어 프로젝트
4.5 이미지 뷰(UIImageView)
    인터페이스 빌더를 이용한 화면 디자인
    코드 작성
    이미지 선택하기
    애니메이션 설정
4.6 웹 뷰(UIWebView)
    디자인하기
    코드 작성하기
    PDF를 보여주자
4.7 텍스트 입력과 키보드
    화면 구성
    코드 작성
    키보드 숨기기 팁
    키보드 관련 통보 이용하기
4.8 피커 뷰
    코드 분석
    슬롯머신 게임 만들어 보기
    XIB에 객체 추가하기
    로직 구현
4.9 알림, 경고창
    인터페이스 빌더에서 클래스 내보내기
    병합하기
    UIAlertView 코드 작성
    UIActionSheet 코드작성
4.10 스크롤 뷰
    스크롤, 확대, 축소 구현하기
    스크롤에 따른 지도확장
    확대에 따른 지도 재설정
    자바스크립트에서 Objective-C 객체에 이벤트 보내기
4.11 맵 뷰(MKMapView)
    화면 디자인
    코드 작성
    직접 표시 추가하기
    표시 직접 구현하기
4.12 정리

5장 뷰를 담는 그릇 : 뷰 컨트롤러
5.1 회전에 대비하기
    자동 회전(AutoRotate)
    자동 크기 조절
    자동 크기조절의 한계
5.2 테이블 뷰와 테이블 뷰 컨트롤러
    데이터 소스
    인덱스 이용하기
    셀을 직접 꾸미기
    검색 기능 넣기
    테이블 뷰 정리
5.3 내비게이션 컨트롤러
    내비게이션 컨트롤러 생성하기
    내비게이션 아이템 설정
    편집 / 완료
    테이블 뷰의 항목 이동
5.4 탭 바 컨트롤러
    구현하기
    탭 바 아이콘
    배지(Badge)
5.5 이미지 피커
5.6 이메일 뷰 컨트롤러
5.7 정리

6장. 이벤트 처리
6.1 UIResponder와 응답 체인
    기본 메서드
    아이폰 OS 3.0에 추가된 메서드
    UIResponder 체인 메서드
    이벤트 흐름
6.2 멀티 터치 동작 원리
    첫 번째 손가락
    손가락 움직이기
    멀티 터치
    손 때기
6.3 멀티 터치 구현하기
6.4 두드림(tap)
6.5 닦아내기(Swipe)와 집기(Pinch)
    닦아내기
    집기(Pinch) 동작
6.6 흔들기와 실행 취소, 실행 복귀
    NSUndoManager
6.7 베껴두기와 붙이기
6.8 정리하기

7장. 그래픽과 애니메이션
7.1 쿼츠(Quartz)
    직선 그리기
    사각형
    다각형 그리기
    이미지/비트맵 그리기
    PDF 그리기
    그래디언트(Gradient)
    글꼴(Font)
    베지어(Bezier) 곡선
    쿼츠 정리
7.2 코어 애니메이션
    속성 변화 애니메이션
    고급 속성 변화 애니메이션
    전환 효과(Transition)
7.3 UIView 애니메이션
7.4 OpenGL
    프로젝트 생성
    MD2 모델 뷰어
    OpenGL 정리
7.5 정리

8장. 동영상과 사운드
8.1. 오디오 형식
8.2 오디오 재생
    짧은 효과음과 진동
    일반 오디오 재생하기
    AVAudioPlayer로 재생하기
8.3 오디오 큐 서비스
    녹음하기
    녹음 시간 표시하기
    재생하기
    UI 업데이트를 위한 콜백
8.4 오디오 세션
    AVAudioSession
8.5 네트워크 오디오 스트림
8.6. 동영상 재생
8.7 아이튠스 라이브러리 접근하기
8.8 정리

9장. 아이폰 자원 활용
9.1 장치 정보 얻기
9.2 가속도계 이용하기
9.3 주소록 프레임워크
    검색하기
    수정하기
    주소록 UI(AddressbookUI)
9.4 파일에 저장하기
    접근할 수 있는 디렉터리
    프로퍼티 리스트
    고급 프로퍼티 리스트
    아카이브(Archive)
9.5 SQLite
    데이터베이스 열기
    쿼리 하기
    데이터 변경하기
    데이터베이스 닫기
9.6 코어 데이터
    관리 객체 컨텍스트 생성하기
    관리 객체 컨텍스트에 객체 가져오기
    관리 객체 추가, 삭제
    저장소에 기록하기
    코어 데이터 정리
9.7 코어 로케이션
9.8 정리하기

10장. 네트워크 프로그래밍
10.1 푸시 통보 서비스
    인증서 준비하기
    OpenSSL
    프로바이더 구현
    메시지 구조
    애플리케이션 구현
    피드백
10.2 피어 투 피어 연결
    예제 프로젝트 생성
    델리게이트
10.3 음성 대화 추가하기
    오디오 세션 설정하기
    GKVoiceChatClient 프로토콜 구현
    받은 데이터 알려주기
    client 연결
    대화 시작
10.4 정리

11장 설정 번들(Settings.bundle)
11.1 설정 애플리케이션이 설정 번들을 찾는 방법
11.2 예제 작성
11.3 설정 번들 파일 디자인하기
    문자열 입력 추가하기
    참, 거짓 스위치
    다중 값 선택
    슬라이더 추가하기
    자식 항목 추가하기
11.4 새로운 파일을 설정 번들에 추가하기
11.5 지역화
11.6 애플리케이션에서 설정 값 접근하기
11.7 정리

12장 디버깅 가이드
12.1 Xcode로 디버깅하기
    Xcode 화면 구조 설정하기
    브레이크 포인트 설정하기
    코드 실행하기
    Objective-C 메서드에 브레이크 걸기
    브레이크 포인트를 소리로 알려주기
    브레이크 포인트에 동작 지정하기
    와치 포인트 설정하기
    메모리 덤프하기
    디버깅 중이 아닌 애플리케이션의 NSLog 보기
12.3 인스트루먼츠(Instruments)
    Leaks(메모리 누수 감지하기)
    OpenGL ES 성능 확인
    Activity Monitor
    정리
12.4 Clang 정적 분석기
    프로젝트 설정하기
    설치하기
    분석 진행
12.5 정리하기

13장 프로그래밍 기법과 팁
13.1 통보
    통보 큐
13.2 프로퍼티와 접근자(Accessor)
    synthesize 팁
    프로퍼티 선언
    메모리 해제
13.3 키-값 코딩(Key-Value Coding)
    예외 상황
13.4 키-값 감시(Key-Value Observing)
    수동으로 알리기
13.5 객체를 비교하는 방법
13.6 문자열 다루기
    C 문자열로 초기화하기
    문자열을 형식 문자로 구성하기
13.7 타이머 (NSTimer)
    지정한 시간에 타이머 시작하기
13.8 스레드 기초
    스레드 생성하기
    스레드 메서드 구현하기
    런 루프
    스레드의 대안
13.9 메모리 관리
    규칙 1
    규칙 2
    규칙 3
    규칙 4
    규칙 5
    규칙 6
    규칙 7
13.10 빌드 시에 시뮬레이터와 실제 장치 구분하기
13.11 빌드 시에 SDK 버전 구분하기
13.12 무료 버전 타깃 구성하기
13.13 정리

14. 다국어 지원
14.1 국제화
14.2 아이콘 및 리소스 지역화
14.3 문자열 지역화
14.4 XIB 지역화
14.5 Info.pList 지역화
14.6 정리

15장 배포와 스토어 킷
15.1 개발을 위한 준비
    개발 인증서 발급
    개발 장비 등록
    애플리케이션 ID(AppID) 만들기
    프로비전 만들기(Provisioning)
    프로젝트 설정
15.2 배포 준비
    배포 인증서
    배포 프로비전
    프로젝트 설정
    AdHoc 프로젝트 설정
    빌드 및 배포
    Ad hoc 배포 사용하기
15.3 애플리케이션 내 판매(In-App Purchase)
    스토어 킷을 위한 사전 준비
    스토어 킷의 클래스
    상품 정보 얻기
    구매하기
    과거에 구매한 내역
15.4 정리
    마치며

부록1. Xcode 단축키
부록2. 아이폰 3.0 클래스 계층도_M#]
.

4 thoughts on “이제는 아이폰 SDK 3.0으로 개발하세요~!

  1. nz

    yes24 에서 따라 왔습니다.
    소스 코드가 있다던 스프링노트, 저자 블로그 에는 링크가 없어요. 확인줌 해주세요. 🙂

    Reply
    1. 너굴;

      저자께 말씀드려 저자 블로그에 링크를 걸어두었고, 저희 스프링노트에도 같은 자료를 올려두었습니다. ^^

      Reply

댓글 남기기