이미 소장하고 있다면 판매해 보세요.
|
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 기초와 메모리 관리 |
|
아이폰과 아이팟 터치는 수백만 명의 신규 사용자만 끌어 모은 것이 아니다. 이 혁신적인 모바일플랫폼은 내일의 킬러 애플리케이션을 구현할 수많은 개발자를 끌어 모았다. 아이폰 애플리케이션 개발을 시작하다 보면 개발자는 수많은 문제를 만나게 된다. 이 책에서 설명하는 쉽게 사용 가능한 검증된 코드는 개발자의 고민거리를 해결해줄 것이다. 완벽한 문서와 함께 제공되는 커스터마이징이 쉬운 코드를 이용하면 개발이 손쉬워진다. 이제는 늘상 반복되는 뻔한 일에서 벗어나 애플리케이션의 핵심기능 구현에 집중하라.
아이폰 애플리케이션 개발 전문가인 에리카 세든은 먼저 아이폰 플랫폼과 SDK를 살펴보고 개발환경의 설정방법과 아이폰 애플리케이션의 구조를 알려준다. 그 다음 아이폰과 아이팟 터치 애플리케이션 개발 과정 전반에서 발생하는 문제를 해결하는 예제를 제공한다. 그리고 스크롤 리스트를 초라하게 만들 정도로 우아한 시각적 경험을 주는 커버플로우를 어떻게 사용하는지도 알 수 있다. *이 책에서 다루는 주요 예제 뷰와 테이블 사용법 인터넷과 웹 서비스 연결법 인터페이스 요소 구성 미디어 컨텐츠 사용법 유저에게 알리고 반응하는 방법 보안 키체인 항목 생성 주소록(사람), 코어 로케이션(위치), 센서 접근법 이 책은 누구나 내용을 손쉽게 찾아볼 수 있도록 구성되어 있다. 관련 내용은 그룹으로 함께 묶었다. 어떤 클래스나 프레임워크를 사용할지 모르는 상태에서도 바로 필요한 답을 얻을 수 있다. 모든 코드는 애플의 정식 아이폰 SDK를 기반으로 한다. 어떤 아이폰 프로젝트를 진행하더라도 이 책은 없어서는 안 될 동료가 되어줄 것이다. --- '저자 서문' 중에서 |
|
지금도 사람일은 참으로 알 수 없다는 생각이 듭니다. 2008년 정말 생각지도 않게 미국 애플개발자컨퍼런스에 참여했습니다. 3G 아이폰이 나온다는 루머 아닌 루머가 돌던 때였지만 다음의 동영상 개발팀의 팀장으로 일을 하고 있었고(물론 지금도 여전합니다) 아이폰이라는 룰 브레이커의 등장으로 모바일 시장에 대한 관심도 많았지만 다음에서 제가 할 부분은 한정적이라는 생각도 가지고 있었습니다. 어찌됐든 뜻하지 않은 행운으로 미국으로 날아가 스티브 잡스를 멀리서나마 직접 봤고 애플 코리아 앤드류 세지웍과 미팅도 했고 우연찮게 파퓰러 사이언스의 기자와 인터뷰도 했습니다. 그 이후 짬짬이 아이폰 애플리케이션 개발을 해왔고 어떻게 그게 지금의 tv팟 애플리케이션이 되어 제 또 다른 서비스로 여러분과 만나고 있습니다.
이 책 『예제로 시작하는 아이폰 개발』이 여러분에게 그런 예기치 않은 변화를 가져올 작은 단초가 됐으면 합니다. 물론 모든 분이 WWDC에 참가하면 좋겠지만 이 책도 분명 훌륭한 전환점이 될 수 있습니다. 이 책은 아주 친절한 책의 범주에는 들지 않습니다. 그렇지만 또 완전히 공략집과 같은 쿡북도 아닙니다. 아이폰 애플리케이션 개발의 모든 면을 다룬다는 점에서는 처음부터 차근차근 읽어가는 입문서와 같고, 고급 또는 문서화되지 않은 수많은 지식을 알려준다는 점에서는 쿡북에 가깝습니다. 그러니 이 책을 공략하는 방법은 간단합니다. 애플이 공식적으로 배포하고 있는 문서들과 함께 이 책의 예제들을 분석하는 것입니다. 그러면 아이폰 애플리케이션 개발에 쉽게 입문하실 수 있을 것입니다. 꼭 읽어야 하는 애플 문서는 오브젝티브C 문서들과 유저 인터페이스 가이드에 관한 문서들입니다. 그 문서들과 함께 이 책을 공부하신다면 기술적인 부분은 더 이상 문제가 되지 않을 것입니다. 그리고 이 책에서 다루는 수많은 비공식적 방법은 애플리케이션 개발의 새로운 방향을 생각해보는 계기 정도로 생각하셨으면 합니다. 이 책이 처음 쓰여질 때의 앱스토어(AppStore)의 모호함은 상당부분 해소가 됐고, 지금은 비공식적 방법을 통한 구현에 대해 상당히 까다로운 기준을 적용하고 있습니다. 하나 더 염두해 두셨으면 하는 것은 모바일 애플리케이션은 이런 기술이 전부가 아니라는 사실입니다. 어찌보면 자신이 가지고 있는 컨텐츠가 무엇인지 그리고 그 컨텐츠를 어떻게 유저에게 제시할 것인지에 대한 고민이 전부고, 기술은 컨텐츠를 실체화하기 위한 도구에 지나지 않습니다. 애플이 너무나 훌륭한 절반의 완성품을 제공하고 있지만 그것을 어떻게 엮을지 그리고 모바일 사용패턴에 적합한지, 학습을 요구하고 있지는 않은지 이러한 실질적인 고민에 프로젝트 전체 기간 중 많은 부분을 투입하셨으면 합니다. 김동현 어린 시절 눈 덮인 운동장에 나가서 눈사람을 만들어 본 기억이 있습니다. 처음에 손으로 단단한 눈뭉치를 만들고 눈이 수북이 쌓인 운동장에 굴리면, 점점 커지면서 어느덧 나보다 더 큰 눈사람이 됩니다. 인터넷이 발달한 요즘 새로운 지식을 쌓는 것도 이와 비슷하다고 생각합니다. 인터넷이란 넓은 운동장에 아이폰 개발에 관한 많은 지식이 있지만, 눈사람을 만들 때처럼 처음에는 단단한 지식 덩어리 하나가 필요합니다. 그 덩어리가 튼튼하면 인터넷에 있는 지식을 볼 때, 쉽게 알고 있는 부분과 더 배워야 하는 부분이 구별돼 쉽게 지식을 늘려갈 수 있습니다. 『예제로 시작하는 아이폰 개발』은 아이폰 애플리케이션을 만드는 데 필요한 골격을 이루는 모든 기술을 다룹니다. 더군다나 아이폰 해킹 애플리케이션 시절부터 개발을 하신 저자 덕분에, 공식 문서에 없는 SDK의 안쪽 모습까지 이야기합니다. 그래서 책을 보고 난 후에, 인터넷에 있는 아이폰 SDK 개발에 관한 내용을 본다면 책의 어떤 부분과 관련되는지 알게 되어 새로운 내용을 쉽게 이해할 수 있을 것입니다. 또 앱스토어에 등록을 목표로 애플리케이션을 만들 때 발생하는 문제의 답을 찾는 출발점이 어디일지 알 수 있을 것입니다. 사실 저는 아이폰 SDK 개발에 관한 체계적인 책이나 설명 문서를 미처 다 읽지 못하고 아이폰 개발을 시작했기에 많은 시간을 투자했음에도 얻는 것은 적었습니다. 하지만 책을 번역하면서 투자한 시간이 오히려 아이폰 SDK에 대한 지식을 다시 단단히 다지는 기회가 됐습니다. 다시 말하면 저는 운이 없었던 건지, 애플리케이션을 만들기 위해 눈 덮인 운동장을 발로 휘젓고 난 후에야 겨우 발에 묻은 눈으로 다시 눈 한 덩이를 뭉친 꼴입니다. 그래도 행운인 건 이 책을 번역함으로써 아이폰 SDK 개발에 관심 있는 분들께 도움을 드릴 수 있게 됐다는 사실입니다. 오형내 --- '옮긴이의 말' 중에서 |
|
화려하고도 심플한 외관과 그래픽, 사용 경험을 극대화함으로써 이젠 하나의 모바일 기기를 넘어서 사용자 경험의 총체로 자리잡은 아이폰과 아이팟 터치. 복잡하고 불필요한 원리 파악은 잠시 뒤로 미루고, 예제를 중심으로 애플리케이션에 특화된 문제 해결에 집중함으로써 실전 아이폰 애플리케이션 개발 프로젝트에서 필요한 핵심만을 담아 낸 책이다.
아이폰은 매우 특별한 개발 플랫폼이다. 아이폰은 혁신적인 멀티터치 화면, 위치 정보, 내장된 가속도계 등을 결합해 OS X에 기반한 모바일 컴퓨팅 환경을 제공한다. 애플이 2008년 3월 초, 아이폰 코코아 터치 SDK 베타버전을 공개했을 때 개발자들은 엄청난 SDK의 다운로드로 그들의 열렬한 관심이 어느 정도인지 보여줬다. 고작 일주일도 안 되는 기간 동안 다운로드 횟수가 십만 건을 넘어섰다. 『예제로 시작하는 아이폰 개발』은 아이폰 개발을 시작하는 개발자들에게 정보를 제공하기 위해 출간됐다. 이 책에서는 새로운 시장에 진입하게 되는 대부분 아이폰 개발자들이 직면하는 일반적인 문제들에 대한 해법을 구현한 예제를 제공한다. 인터페이스 요소 배열, 유저 인터랙션에 대한 응답, 로컬 데이터 소스 접근, 인터넷 연결 등 아이폰 개발자들이 실제로 흔히 접하는 문제들을 찾을 수 있다. 『예제로 시작하는 아이폰 개발』은 실전에서 손쉽게 사용할 수 있는 해답을 제시한다. 개발자들은 자신의 프로젝트에 예제코드를 쉽게 추가하고 필요에 따라 쉽게 수정할 수 있다. 각 장은 관련된 문제들끼리 묶여 있어 개발자들은 문제해결을 위해 어떤 클래스나 프레임워크가 필요한지 완벽히 이해하지 않아도 손쉽게 원하는 답을 찾을 수 있다. 1장은 아이폰 SDK를 소개하고 아이폰의 플랫폼에서 제공하는 것과 제한되는 것들을 살펴본다. 기본 아이폰 애플리케이션을 자세히 살펴보고, 첫 아이폰 애플리케이션으로 Hello World 스타일의 애플리케이션을 구현해본다. 2장에서는 아이폰 화면상에 보이는 오브젝트인 뷰를 소개한다. 아이폰 애플리케이션의 골격을 만들기 위해 어떻게 뷰를 생성하고 나열하는지 알아보고, 유저와 뷰가 터치를 통해 상호작용을 하는 방법과 뷰의 계층구조, 외형, 애니메이션 등을 구현하는 방법을 다룬다. 아이폰의 패러다임을 한 문장으로 정리한다면 "작은 화면, 큰 가상 세계"일 것이다. 3장에서는 다양한 UIViewController 클래스를 사용하여 유저와 상호작용할 가상공간을 확대하고 정렬하는 방법을 알아본다. 또 아이폰 애플리케이션 화면간 이동에서, 이 강력한 오브젝트가 모든 어려운 일을 처리하는 방법을 살펴본다. 아이폰은 팝업 대화창, 진행바부터 오디오 경고음, 상태바 업데이트까지 다양한 방법으로 사용자의 주의를 환기시킨다. 4장에서는 어떻게 애플리케이션에 이러한 표시기를 구현하고 확장하는지 알아본다. 작고 비좁은 화면에서 매우 효율적으로 작동하는 유저 인터페이스를 제공하는 테이블. 전부는 아니지만 설정, 유튜브, 증권, 날씨 같은 아이폰과 아이팟 터치의 기본 애플리케이션 대부분이 테이블을 중심으로 구현돼있다. 5장은 아이폰 테이블이 어떻게 작동하는지, 어떤 테이블들이 개발자에게 제공되는지 그리고 애플리케이션에서 테이블 기능을 어떻게 사용하는지 살펴본다. 아이폰 테이블은 단순한 스크롤 리스트만을 제공하는 것이 아니다. 타이틀이 있는 섹션으로 구성된 테이블을 구현할 수도 있고 복수의 열을 스크롤하는 테이블을 구현할 수도 있다. 또 스위치 같은 컨트롤을 셀에 추가할 수도 있고 셀에 투명한 배경을 사용할 수도 있고 커스텀 폰트를 사용할 수도 있다. 6장은 5장에서 다룬 테이블을 바탕으로 아이폰 애플리케이션 개발에 꼭 필요한 고급 테이블 예제를 소개한다. 아이폰은 다양한 형식의 미디어를 읽고 보여줄 수 있다. 음악이나 영화를 재생할 수 있으며 이미지와 웹 페이지를 처리할 수 있다. PDF 문서도 읽고 사진 앨범을 사용할 수 있다. 7장은 미디어를 애플리케이션에 넣거나 다운로드하고 그 데이터를 아이폰의 멀티터치 인터페이스를 통해 재생하는 방법을 알아본다. UIControl 클래스는 버튼, 텍스트 필드, 슬라이더, 스위치 등 아이폰의 많은 상호작용 요소들에 기반을 제공한다. 8장은 이와 같은 컨트롤을 살펴보고 컨트롤에 대해 SDK에서 제공하는 사용법과 비공식적인 사용법을 모두 알아본다. 기본 UI 컨트롤과 미디어 컴포넌트 들과 함께 아이폰 SDK는 아이폰과 아이폰 터치에 특화된 솔루션을 제공한다. 9장에서는 그 중 가장 유용한 주소록(사람), 코어 로케이션(장소), 센서(사물)에 대해 알아본다. 인터넷에 연결된 디바이스로서 아이폰은 웹 기반 서비스에 매우 적합하다. 애플은 모든 종류의 네트워크 컴퓨팅 서비스와 관련 기술을 지원하는 플랫폼을 제공했다. 욾이폰 SDK를 이용해 소켓, 패스워드 키체인, SQL 접근, XML 프로세싱 등을 구현할 수 있다. 10장은 여기에 필요한 기본 기술들을 알아보고 해결방법을 담은 예제를 다룬다. 커버플로우는 아이폰 SDK에 공식적으로 포함되어 있지는 않지만 아이폰의 사용경험에서 가장 멋지고 아름다운 기능을 제공한다. 커버플로우는 기본 스크롤 리스트와는 비교도 안될 우아하고 강한 시각적 경험을 제공할 수 있다. 11장은 커버 플로우를 소개하고 애플리케이션에서 어떻게 사용하는지 알아본다. 이 책은 새롭고도 생소한 SDK를 내려 받고 나서 실제 프로젝트를 진행해야 하는 아이폰 개발자를 위한 책이다. 개발자들의 목표와 경험치는 각기 저마다 다르지만 개발과정에서 풀어야 하는 문제들은 거의 유사하다. "어떻게 테이블을 만들지?", "어떻게 보안 키체인 엔트리를 생성하지?", "어떻게 주소록을 검색하지?", "어떻게 뷰를 바꾸지?", "어떻게 코어 로케이션을 사용하지?" 『예제로 시작하는 아이폰 개발』은 이렇듯 아이폰 개발을 시작하려는 사람을 겨냥한 책이다. 명확하고 완벽하게 문서화된 예제들을 익힘으로써 개발 속도를 높이고 생산적인 작업이 가능하다. 이미 테스트를 거친 예제들을 통해 독자는 바로 사용 가능한 해결법을 얻을 수 있다. 따라서 누구나 예상할 수 있는 뻔한 답이 아닌 애플리케이션 자체에 특화된 문제해결에 집중할 수 있다. |