처음 시작하는 아이폰 앱 만들기!
이 책은 스위프트로 아이폰 앱을 만들어 보는 입문서입니다. 처음 앱을 만들어 보는 독자도 쉽게 따라 하면서 배울 수 있도록 다양한 그림과 친절한 설명으로 구성돼 있습니다. 따라서 컴퓨터 프로그래밍을 해본 적은 없지만 아이폰 앱 개발에 관심이 있다면 책에 나오는 내용을 따라 하면서 익히는 데 큰 무리가 없을 것입니다. 더불어 책이라는 매체의 특성으로 초보자들이 화면 상에서는 어떻게 조작해야 하는지 알기 어려워할 수 있다고 판단해서 아래 사이트에서 무료로 동영상 강의를 제공합니다.
- 역자 동영상 강의 사이트: http://goo.gl/mPnGFB
- 위키북스 실습 동영상 사이트: https://wikibook.github.io/swift3-textbook/
책과 함께 동영상 강의를 통해 프로그래밍을 이해하고 아이폰 앱을 만드는 전반적인 흐름을 파악할 수 있도록 구성돼 있어, 본격적인 앱 개발에 앞서 탄탄한 기초를 쌓는 데 많은 도움이 될 것입니다.
상세 이미지
이 책은 애플의 프로그래밍 언어인 '스위프트'로 아이폰 앱을 만들어 보는 입문서입니다. 프로그래밍 경험이 없어도 쉽게 따라 하면서 재미있게 앱을 만들 수 있도록 하는 데 중점을 두었으며, 아이폰 앱 프로그래밍에 대한 전반적인 이해를 돕기 위해 다음과 같이 학습할 수 있게 구성하였습니다.
- Xcode를 사용하는 방법 익히기
- iPhone 앱을 만드는 흐름 이해
- Swift 프로그래밍 언어 익히기
- 재미있고 실용적인 앱 만들기
처음에는 개발의 바탕이 되는 Xcode를 간단하게 다루면서 기본 조작 방법을 살펴봅니다. 기본 조작이 어느 정도 익숙해지면 앱을 더 즐겁게 만들 수 있게 됩니다.
이어서 아이폰 앱을 만드는 전반적인 흐름을 이해합니다. 앱을 만드는 흐름 자체는 거의 같습니다. 흐름을 이해한다면 자신이 원하는 앱을 만들어 나갈 수 있을 것입니다. 그러고 나서 프로그래밍의 기초를 익히고 Swift의 기본 문법과 Swift를 사용해 앱을 만드는 방법을 체험합니다.
처음 프로그래밍을 할 때 중요한 것은 구체적인 문법을 익히는 것보다도 Swift로 어떻게 애플리케이션을 만들지 넓고 깊게 생각해 보는 것입니다. 이 책에서는 프로그래밍을 이해하고 아이폰 앱을 만드는 전반적인 흐름을 파악할 수 있도록 하여, 본격적인 앱 개발에 앞서 탄탄한 기초를 쌓을 수 있게끔 도와줄 것입니다.
모리 요시나오(森 巧尚)
웹 게임 크리에이터로 활동하고 있으며, 플래시와 아이폰 애플리케이션 등의 오리지널 콘텐츠 게임 제작, 집필 활동, 간세이 가쿠인 대학에서 시간 강사 등의 일을 하고 있다.
윤인성
출근하는 게 싫어서 책을 집필/번역하기 시작했다. 일본어는 픽시브에서 웹 코믹을 읽다가 배웠다고 전해진다. 현재 직업 특성상 집에서 나갈 이유가 별로 없다는 것에 굉장히 만족하는 성격이기도 하다. 홍차와 커피를 좋아하며 요리, 음악, 그림, 스컬핑 등이 취미다. 『모던 웹을 위한 JavaScript+jQuery 입문』 『모던 웹을 위한 Node.js 프로그래밍』 『모던 웹 디자인을 위한 HTML5+CSS3 입문』 등을 저술하였으며, 『모던 웹사이트 디자인의 정석』 『유니티 게임 이펙트 입문』(이상 위키북스), 『TopCoder 알고리즘 트레이닝』 『Nature of Code』(이상 한빛미디어), 『소셜 코딩으로 이끄는 GitHub 실천 기술』(제이펍) 등을 번역했다.
- ▣ 01장: 애플리케이션 개발
- 1-1 개발에 필요한 것
- 아이폰 애플리케이션을 만들어봐요!
- 개발에 필요한 것
- 1-2 Xcode 설치
- Xcode 설치
- 1-3 애플리케이션 개발에 필요한 작업
- 애플리케이션 개발에 필요한 작업
- 1-4 Xcode 테스트
- [튜토리얼] Hello 애플리케이션
- 1-1 개발에 필요한 것
- ▣ 02장: 기본적인 Xcode 사용 방법
- 2-1 프로젝트 생성: New Project
- [튜토리얼] 버튼
- 프로젝트 생성
- 템플릿 선택
- 프로젝트 기본 정보 입력
- 2-2 Xcode 화면
- 기본 화면 설명
- 내비게이터 영역
- 툴바
- 에디터 영역
- 유틸리티 영역
- 2-3 화면 디자인: 인터페이스 빌더
- 인터페이스 빌더를 사용한 화면 디자인
- 라이브러리로 부품 배치
- 인스펙터로 부품 설정
- 오토 레이아웃[자동 설정]
- 2-4 부품과 프로그램 연결: 어시스턴트 에디터
- 어시스턴트 에디터로 부품과 프로그램 연결
- IBOutlet 연결: 부품에 이름 붙이기
- IBAction 연결: 부품과 메서드 연결
- 2-5 프로그램 작성: 소스 에디터
- 소스 에디터에서 프로그램 작성
- 프로그램을 입력할 때의 보조 기능
- 2-6 시뮬레이터에서 테스트
- 시뮬레이터에서 테스트
- 아이폰의 종류를 변경해서 실행하는 방법
- 시뮬레이터의 기본 조작
- 2-1 프로젝트 생성: New Project
- ▣ 03장: 플레이그라운드를 사용한 스위프트 프로그래밍
- 3-1 스위프트 기본
- 스위프트란?
- 플레이그라운드란
- [튜토리얼] 플레이그라운드 사용하기!
- 3-2 프로그램이란
- 프로그램이란
- 프로그램의 기본
- 3-3 데이터 다루기
- 변수와 상수
- 상수와 변수의 차이
- 상수와 변수의 오류
- 이름 붙이는 방법 - 변수 이름, 상수 이름
- 3-4 자료형
- 자료형이란?
- 자료형의 종류
- 자료형 변환
- 3-5 프로그램 제어
- 제어문
- if 조건문[분기 처리]
- switch 조건문[분기 처리]
- while 반복문[반복 처리]
- for 반복문[반복 처리]
- 3-6 여러 개의 데이터 다루기
- 여러 개의 데이터 다루기
- 배열(Array) 만들기
- 배열 확인
- 배열의 조작
- 딕셔너리(Dictionary)
- 딕셔너리 만들기
- 딕셔너리의 확인
- 딕셔너리의 조작
- 튜플(Tuple)
- 튜플 사용 방법
- 3-7 함수(메서드)
- 함수란?
- 함수를 만드는 방법과 호출하는 방법
- 매개변수
- 반환 값
- 3-8 Optional 자료형
- 변수에 nil을 넣으면 오류
- Optional 자료형은 왜 필요할까?
- Optional 자료형의 변수 만들기: 랩
- Optional 자료형의 변수에서 값을 꺼내는 방법
- 3-9 클래스
- 객체 지향이란?
- 클래스는 설계도
- 클래스 만드는 방법
- 클래스의 사용 방법
- 클래스 상속과 오버라이드
- 3-1 스위프트 기본
- ▣ 04장: 기본적인 부품으로 애플리케이션 만들기: UIKit
- 4-1 UIKit이란?
- UIKit은 화면을 구성하는 부품
- 다양한 종류의 UIKIT
- 4-2 UILabel: 간단한 문자를 화면에 출력할 때
- UILabel이란?
- [사용 방법] 인터페이스 빌더로 설정하는 방법
- [사용 방법] 프로그램으로 설정하는 방법
- 4-3 UIButton: 사용자가 누르면 무언가 하고 싶을 때
- UIButton이란?
- [사용 방법] 인터페이스 빌더로 설정하는 방법
- [사용 방법] 프로그램으로 설정하는 방법
- [사용 방법] Action 설정 방법
- 4-4 UISwitch: 활성화 또는 비활성화를 선택할 때
- UISwitch란?
- [사용 방법] 인터페이스 빌더로 설정하는 방법
- [사용 방법] 프로그램으로 설정하는 방법
- [사용 방법] Action 설정 방법
- 4-5 UISlider: 슬라이드해서 값을 입력할 때
- UISlider란?
- [사용 방법] 인터페이스 빌더로 설정하는 방법
- [사용 방법] 프로그램으로 설정하는 방법
- [사용 방법] Action 설정 방법
- 4-6 UITextField: 글자 한 줄을 입력받을 때
- UITextField란?
- [사용 방법] 인터페이스 빌더로 설정하는 방법
- [사용 방법] 프로그램으로 설정하는 방법
- [사용 방법] Action 설정 방법
- 4-7 UITextView: 긴 글자를 출력하거나 입력받을 때
- UITextView란?
- [사용 방법] 인터페이스 빌더로 설정하는 방법
- [사용 방법] 프로그램으로 설정하는 방법
- [사용 방법] Action 설정 방법
- 4-8 UIImageView: 이미지를 출력하고 싶을 때
- UIImageView란?
- [사용 방법] 인터페이스 빌더로 설정하는 방법
- [사용 방법] 프로그램으로 설정하는 방법
- [사용 방법] Action 설정 방법
- 4-9 UIKit으로 애플리케이션 만들기[화면 디자인]
- UIKit으로 애플리케이션 만들어보기
- [튜토리얼] 가위바위보 애플리케이션
- [1] 프로젝트 만들기
- [2] 화면 디자인
- 오토 레이아웃[수동 설정]
- 오토 레이아웃 설정
- 3개의 가위바위보 버튼을 같은 간격으로 나열
- 4-10 UIKit으로 애플리케이션 만들기![프로그램 제작]
- 부품을 연결하고 프로그래밍하기
- 4-1 UIKit이란?
- ▣ 05장: 웹과 연결된 애플리케이션 만들기
- 5-1 웹과 연결된 애플리케이션
- 웹과 연결된 애플리케이션
- 5-2 웹 사이트 출력
- [사용 방법] 웹 사이트를 애플리케이션의 부품으로 넣는 방법: 웹뷰
- [사용 방법] 애플리케이션에서 사파리를 띄어서 사용하는 방법1: SFSafariViewController
- [사용 방법] 애플리케이션에서 사파리를 띄어서 사용하는 방법2: SafariViewController
- 5-3 웹에서 이미지 데이터 내려받기
- 이미지뷰란?
- [사용 방법] 웹에서 이미지를 내려받아 출력하는 방법
- 5-4 텍스트 데이터 내려받기
- 웹에서 텍스트 내려받기
- [사용 방법] 웹에서 텍스트를 내려받는 방법1: 메서드를 만들지 않는 방법
- [사용 방법] 웹에서 텍스트를 내려받는 방법2: 메서드를 만드는 방법
- 5-5 JSON 데이터 파싱
- JSON 데이터란?
- JSON의 형식
- [사용 방법] JSON 데이터를 파싱(해석)하는 방법: NSJSONSerialization
- 5-6 SNS 글 작성
- SNS에 글쓰기
- [사용 방법] 글쓰기 대화 상자 띄우기
- [사용 방법] 공유 액션 시트를 사용해서 글쓰기 대화상자 띄우기
- 5-1 웹과 연결된 애플리케이션
- ▣ 06장: 화면이 여러 개 있는 애플리케이션 만들기: UIViewController
- 6-1 화면이 여러 개 있는 애플리케이션이란?
- 화면이 여러 개 있는 애플리케이션
- [1] 화면 변경 방법 결정
- [2] 화면마다 뷰 컨트롤러 만들기
- [3] 데이터 연동 방법
- 싱글 뷰 애플리케이션에 화면 추가
- 6-2 싱글 뷰 애플리케이션으로 화면이 여러 개 있는 애플리케이션 만들기
- (화면디자인)
- [튜토리얼] 색상을 전달하는 애플리케이션 만들기
- 프로젝트 만들기
- 화면 디자인
- 6-3 싱글 뷰 애플리케이션으로 화면이 여러 개 있는 애플리케이션 만들기
- (프로그램 제작)
- [튜토리얼] 색상을 전달하는 애플리케이션 만들기(계속)
- 부품을 연결해서 프로그래밍
- 6-4 탭 기반 애플리케이션으로 화면이 여러 개 있는 애플리케이션 만들기
- (화면 디자인)
- 탭 기반 애플리케이션은 탭으로 여러 개의 화면을 전환하는 애플리케이션
- [튜토리얼] 단위 환산 애플리케이션 만들기
- 프로젝트 만들기
- 화면 디자인
- 6-5 탭 기반 애플리케이션으로 화면이 여러 개 있는 애플리케이션 만들기
- (프로그램 제작)
- [튜토리얼] 단위 환산 애플리케이션 만들기(계속)
- 부품을 연결해서 프로그래밍
- 6-1 화면이 여러 개 있는 애플리케이션이란?
- ▣ 07장: 기본적인 부품으로 애플리케이션 만들기: UIKit
- 7-1 UITableView: 리스트를 출력할 때
- UITableView란?
- 테이블 뷰의 구조
- [사용 방법] 인터페이스 빌더에서 설정하는 방법
- [사용 방법] 테이블 뷰 사용 방법
- 7-2 UITableViewCell: 셀을 변경하고 싶을 때
- UITableViewCell이란?
- 기본적으로 제공되는 셀을 사용하는 방법
- 셀 속성
- 7-3 UITableViewCell: 셀의 레이아웃을 자유롭게 구성
- 셀의 레이아웃을 자유롭게 구성하는 방법
- 부품에 태그를 붙이고, 태그로 접근하는 방법
- [사용 방법] 태그로 접근하는 셀 만들기
- [사용 방법] 사용자 정의 셀 클래스를 만들고 접근하는 방법
- 7-4 테이블로 애플리케이션 만들기
- UITableView로 애플리케이션 만들기
- [튜토리얼] 폰트를 출력하는 애플리케이션 만들기
- 프로젝트 만들기
- 화면 디자인
- 프로토콜 설정
- 프로그래밍
- 7-5 Master-Detail 애플리케이션으로 애플리케이션 만들기(템플릿)
- Master-Detail 애플리케이션은 테이블 뷰를 사용한 애플리케이션
- [튜토리얼] 사진 목록 애플리케이션 만들기
- 프로젝트 만들기
- 리스트 편집 기능 제거
- 테스트 데이터 출력
- 7-6 Master-Detail 애플리케이션으로 애플리케이션 만들기(프로그램 제작)
- [튜토리얼] 사진 목록 애플리케이션 만들기(계속)
- 사진 목록 애플리케이션 수정
- 7-1 UITableView: 리스트를 출력할 때
- ▣ 08장: 게임 애플리케이션 만들기: SpriteKit
- 8-1 SpriteKit이란?
- SpriteKit은 2D 게임에 사용하는 프레임워크
- SpriteKit의 3단계 구조
- 노드(SKNode)는 움직임을 추가해서 움직이게 만듦
- 8-2 SpriteKit 템플릿 실행해보기
- SpriteKit 템플릿 실행
- [튜토리얼] SpriteKit 템플릿 사용해보기
- 프로젝트 만들기
- 불필요한 부분 제거
- 8-3 객체 출력: 레이블, 스프라이트, 셰이프
- 레이블 노드 만들기: SKLabelNode
- 문자를 기반으로 레이블 노드 만들기: SKLabelNode(text: String?)
- 스프라이트 노드 만들기: SKSpriteNode
- 셰이프 노드 만들기: SKShapeNode
- 씬에 출력: self.addChild(SKNode)
- 노드에 노드 추가: addChild(SKNode)
- 8-4 파티클
- 파티클이란?
- [튜토리얼] 파티클 만들기: SpriteKit Particle File
- [튜토리얼] 파티클 사용하기: SKEmitterNode()
- 8-5 스프라이트에 움직임 적용
- SKAction으로 움직임을 만들고 runAction 메서드로 노드에 움직임을 적용
- 이동 움직임
- 회전 움직임
- 확대 축소 움직임
- 8-6 움직임 조합
- 여러 개의 움직임 적용
- 움직임 반복: SKAction.repeat(SKAction, count: Int)
- 계속 반복: SKAction.repeatForever(SKAction)
- 동시에 움직이기: SKAction.group([SKAction])
- 차례대로 움직이기: SKAction.sequence([SKAction])
- 특정 시간 동안 대기: SKAction.wait(forDuration: TimeInterval)
- 랜덤한 시간 동안 대기: SKActi on.wait(f orDurati on: TimeInterval, withRange: TimeInterval)
- 8-7 사용자 터치 확인
- 사용자 터치를 확인하는 메서드: touchesBegan
- 터치된 노드를 확인하는 방법
- 8-8 2D 게임 만들기
- SpriteKit으로 2D 게임 애플리케이션 만들기
- [튜토리얼] 다른 글자 찾기 게임
- 빈 SpriteKit 애플리케이션 만들기
- 게임 애플리케이션 만들기
- 8-9 2D 물리 시뮬레이션
- 2D 물리 시뮬레이션이란?
- [사용 방법] 물리 시뮬레이션 사용 방법
- [사용 방법] 물체의 다양한 설명
- 8-10 물리 시뮬레이션 게임 만들기
- 물리 시뮬레이션을 사용해 게임 만들기
- [튜토리얼] 틀린 글자 찾기 게임2
- 8-1 SpriteKit이란?
- ▣ 09장: 애플리케이션 마무리
- 9-1 아이콘
- 아이콘이란?
- 필요한 아이콘의 종류
- 아이콘 설정 방법
- 9-2 실행 화면
- 실행 화면이란?
- LaunchScreen.storyboard 파일 만들기
- 9-3 다양한 언어 대응
- 다양한 언어 대응
- [사용 방법] 스토리보드에서 사용하는 문자열을 지역화하는 방법
- [사용 방법] 프로그램에서 사용하는 문자열
- [사용 방법] 애플리케이션 이름을 지역화하는 방법
- 9-4 실제 장치에서 테스트
- 실제 장치에서 테스트하는 방법
- 부록
- TIPS
- 오픈 API 활용
- 9-1 아이콘
예제코드 관련 깃허브 페이지
- 역자 동영상 강의 사이트: http://goo.gl/mPnGFB
- 위키북스 실습 동영상 사이트: https://wikibook.github.io/swift3-textbook/