• 아이폰 앱 개발 교과서 (초보 입문용)
  • 스위프트로 시작하는

  • 모리 요시나오 지음
  • 윤인성 옮김

  • 임베디드 & 모바일 시리즈 _ 032
  • ISBN: 9791158390440
  • 28,000원 | 2016년 09월 29일 발행 | 480쪽



처음 시작하는 아이폰 앱 만들기!

이 책은 스위프트로 아이폰 앱을 만들어 보는 입문서입니다. 처음 앱을 만들어 보는 독자도 쉽게 따라 하면서 배울 수 있도록 다양한 그림과 친절한 설명으로 구성돼 있습니다. 따라서 컴퓨터 프로그래밍을 해본 적은 없지만 아이폰 앱 개발에 관심이 있다면 책에 나오는 내용을 따라 하면서 익히는 데 큰 무리가 없을 것입니다. 더불어 책이라는 매체의 특성으로 초보자들이 화면 상에서는 어떻게 조작해야 하는지 알기 어려워할 수 있다고 판단해서 아래 사이트에서 무료로 동영상 강의를 제공합니다.

책과 함께 동영상 강의를 통해 프로그래밍을 이해하고 아이폰 앱을 만드는 전반적인 흐름을 파악할 수 있도록 구성돼 있어, 본격적인 앱 개발에 앞서 탄탄한 기초를 쌓는 데 많은 도움이 될 것입니다.

 

상세 이미지

상세 이미지

이 책은 애플의 프로그래밍 언어인 '스위프트'로 아이폰 앱을 만들어 보는 입문서입니다. 프로그래밍 경험이 없어도 쉽게 따라 하면서 재미있게 앱을 만들 수 있도록 하는 데 중점을 두었으며, 아이폰 앱 프로그래밍에 대한 전반적인 이해를 돕기 위해 다음과 같이 학습할 수 있게 구성하였습니다.

  1. Xcode를 사용하는 방법 익히기
  2. iPhone 앱을 만드는 흐름 이해
  3. Swift 프로그래밍 언어 익히기
  4. 재미있고 실용적인 앱 만들기

처음에는 개발의 바탕이 되는 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 애플리케이션
    •  
  • ▣ 02장: 기본적인 Xcode 사용 방법
    • 2-1 프로젝트 생성: New Project
      • [튜토리얼] 버튼
      • 프로젝트 생성
      • 템플릿 선택
      • 프로젝트 기본 정보 입력
    • 2-2 Xcode 화면
      • 기본 화면 설명
      • 내비게이터 영역
      • 툴바
      • 에디터 영역
      • 유틸리티 영역
    • 2-3 화면 디자인: 인터페이스 빌더
      • 인터페이스 빌더를 사용한 화면 디자인
      • 라이브러리로 부품 배치
      • 인스펙터로 부품 설정
      • 오토 레이아웃[자동 설정]
    • 2-4 부품과 프로그램 연결: 어시스턴트 에디터
      • 어시스턴트 에디터로 부품과 프로그램 연결
      • IBOutlet 연결: 부품에 이름 붙이기
      • IBAction 연결: 부품과 메서드 연결
    • 2-5 프로그램 작성: 소스 에디터
      • 소스 에디터에서 프로그램 작성
      • 프로그램을 입력할 때의 보조 기능
    • 2-6 시뮬레이터에서 테스트
      • 시뮬레이터에서 테스트
      • 아이폰의 종류를 변경해서 실행하는 방법
      • 시뮬레이터의 기본 조작
    •  
  • ▣ 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 클래스
      • 객체 지향이란?
      • 클래스는 설계도
      • 클래스 만드는 방법
      • 클래스의 사용 방법
      • 클래스 상속과 오버라이드
    •  
  • ▣ 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으로 애플리케이션 만들기![프로그램 제작]
      • 부품을 연결하고 프로그래밍하기
    •  
  • ▣ 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에 글쓰기
      • [사용 방법] 글쓰기 대화 상자 띄우기
      • [사용 방법] 공유 액션 시트를 사용해서 글쓰기 대화상자 띄우기
    •  
  • ▣ 06장: 화면이 여러 개 있는 애플리케이션 만들기: UIViewController
    • 6-1 화면이 여러 개 있는 애플리케이션이란?
      • 화면이 여러 개 있는 애플리케이션
      • [1] 화면 변경 방법 결정
      • [2] 화면마다 뷰 컨트롤러 만들기
      • [3] 데이터 연동 방법
      • 싱글 뷰 애플리케이션에 화면 추가
    • 6-2 싱글 뷰 애플리케이션으로 화면이 여러 개 있는 애플리케이션 만들기
      • (화면디자인)
      • [튜토리얼] 색상을 전달하는 애플리케이션 만들기
      • 프로젝트 만들기
      • 화면 디자인
    • 6-3 싱글 뷰 애플리케이션으로 화면이 여러 개 있는 애플리케이션 만들기
      • (프로그램 제작)
      • [튜토리얼] 색상을 전달하는 애플리케이션 만들기(계속)
      • 부품을 연결해서 프로그래밍
    • 6-4 탭 기반 애플리케이션으로 화면이 여러 개 있는 애플리케이션 만들기
      • (화면 디자인)
      • 탭 기반 애플리케이션은 탭으로 여러 개의 화면을 전환하는 애플리케이션
      • [튜토리얼] 단위 환산 애플리케이션 만들기
      • 프로젝트 만들기
      • 화면 디자인
    • 6-5 탭 기반 애플리케이션으로 화면이 여러 개 있는 애플리케이션 만들기
      • (프로그램 제작)
      • [튜토리얼] 단위 환산 애플리케이션 만들기(계속)
      • 부품을 연결해서 프로그래밍
    •  
  • ▣ 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 애플리케이션으로 애플리케이션 만들기(프로그램 제작)
      • [튜토리얼] 사진 목록 애플리케이션 만들기(계속)
      • 사진 목록 애플리케이션 수정
    •  
  • ▣ 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
    •  
  • ▣ 09장: 애플리케이션 마무리
    • 9-1 아이콘
      • 아이콘이란?
      • 필요한 아이콘의 종류
      • 아이콘 설정 방법
    • 9-2 실행 화면
      • 실행 화면이란?
      • LaunchScreen.storyboard 파일 만들기
    • 9-3 다양한 언어 대응
      • 다양한 언어 대응
      • [사용 방법] 스토리보드에서 사용하는 문자열을 지역화하는 방법
      • [사용 방법] 프로그램에서 사용하는 문자열
      • [사용 방법] 애플리케이션 이름을 지역화하는 방법
    • 9-4 실제 장치에서 테스트
      • 실제 장치에서 테스트하는 방법
    •  
    • 부록
    •  
    • TIPS
    •  
    • 오픈 API 활용

예제코드 관련 깃허브 페이지

관련 글