저자

이재은

이재은
통영에서고등학교를졸업한후서울로상경하여e러닝분야에서컴퓨터관련업무를맡은것을계기로하여프로그래머의길로들어섰다.현재19년차프로그래머로재직중이며,한양대학교모바일SW사업단,데브멘토,Udemy등에서현대프로그래밍언어에대한특강을진행하고있다.
10대후반~20대초반,월급날직전에돈이없어프라이드치킨을사먹지못한강렬한기억때문에현재까지도월급날2~3일전만되면프라이드치킨이먹고싶어지는트라우마를가지고있다.첫책을통해이사실이알려진후주변에서치킨을사주겠다는약속을많이하였으나실제로이루어진것이없어아쉬워하던차에2017년9월23일,일부뜻있는주변프로그래머들의도움으로말미암아드디어트라우마극복을위한첫발걸음을내딛게되었다.



목차

CHAPTER01첫번째iOS앱만들기
1.1첫번째앱,HelloWorld!
1.1.1Xcode프로젝트생성
1.1.2프로젝트설정
1.1.3프로젝트구성과스토리보드
1.1.4스토리보드로화면구성하기
1.1.5화면전환구현하기
1.1.6스위프트코드작성하기
1.2시작화면제어하기
1.2.1시작화면편집
1.2.2새로운시작화면파일로교체하기

CHAPTER02iOS앱의구조와코코아터치프레임워크
2.1앱의기본구조
2.1.1엔트리포인트와앱의초기화과정
2.1.2MVC패턴
2.1.3앱의상태변화
2.2iOS와코코아터치프레임워크
2.2.1iOS
2.2.2코코아터치프레임워크
2.3앱을구성하는핵심객체들
2.3.1iOS유저인터페이스의표현구조
2.3.2뷰컨트롤러
2.3.3뷰컨트롤러의상태변화와생명주기

CHAPTER03화면상의객체를제어하는방법
3.1@IBOutlet과@IBAction
3.1.1@IBOutlet-객체의참조
3.1.2@IBAction-객체의이벤트제어
3.2인터페이스빌더객체와클래스를연결하는방법
3.2.1프로젝트생성및실습준비
3.2.2스토리보드의객체를클래스와연결하기
3.2.3커넥션인스펙터탭을사용하여객체연결하기
3.2.4보조에디터를사용하여객체연결하기
3.2.5커넥션인스펙터탭을사용하여객체연결하기
3.2.6문서개요창을활용하여객체연결하기
3.3연결테스트

CHAPTER04화면전환
4.1iOS에서의화면전환개념
4.2화면전환기법1:뷰를이용한화면전환
4.3화면전환기법2:뷰컨트롤러직접호출에의한화면전환
4.3.1화면전환실습
4.3.2뒤로가기버튼만들기
4.4내비게이션컨트롤러를이용한화면전환
4.5세그웨이를이용한화면전환
4.5.1액션세그웨이
4.5.2매뉴얼세그웨이
4.5.3Unwind-화면복귀
4.5.4커스텀세그웨이
4.5.5전처리메소드의활용

CHAPTER05다른뷰컨트롤러와데이터주고받기
5.1화면전환과정에서의값전달방식
5.2뷰컨트롤러에직접값을전달하기
5.2.1프레젠테이션방식으로화면전환하면서값을전달하기
5.2.2내비게이션컨트롤러를통해화면전환하면서값을전달하기
5.2.3세그웨이를이용하여화면전환하면서값을전달하기
5.3이전화면으로값을전달하기
5.3.1직접값을주고받기
5.3.2저장소를사용하여값을주고받기

CHAPTER06사용자에게메시지를전달하는방법
6.1메시지알림창-UIAlertController
6.1.1UIAlertController
6.1.2입력필드를가지는메시지창
6.2로컬알림
6.2.1UserNotification프레임워크를이용한로컬알림
6.2.2기본실습
6.2.3받은알림처리하기
6.2.4UILocalNotification객체를이용한로컬알림
6.2.5받은알림처리하기
6.2.6미리알림기능구현

CHAPTER07델리게이트패턴
7.1텍스트필드
7.1.1텍스트필드의특성
7.1.2텍스트필드에델리게이트패턴적용하기
7.2이미지피커컨트롤러
7.2.1UIImagePickerController클래스
7.2.2이미지피커컨트롤러의델리게이트메소드
7.2.3이미지피커컨트롤러실습
7.2.4익스텐션(Extension)을이용한델리게이트패턴코딩

CHAPTER08테이블뷰를이용한데이터목록구현
8.1테이블뷰컨트롤러
8.2프로토타입셀
8.2.1프로토타입셀을이용한테이블뷰실습
8.3데이터소스
8.3.1데이터소스만들기
8.3.2테이블뷰와데이터소스연동
8.4커스텀프로토타입셀
8.4.1커스텀프로토타입셀구현하기
8.4.2커스텀클래스로프로토타입셀의객체제어하기
8.4.3프로토타입셀에섬네일이미지추가하기
8.5테이블뷰의행높이를결정하는방식
8.5.1tableView(_:estimatedHeightForRowAt:)

CHAPTER09네트워크통신과API
9.1네트워크통신의종류
9.1.1소켓방식의연결지향통신
9.1.2비연결지향통신
9.2오픈API와공공콘텐츠
9.2.1오픈API
9.2.2영화정보제공서비스
9.3오픈API를이용한네트워크실습
9.3.1API기본정보
9.3.2네트워크객체를통한데이터요청기능구현
9.3.3전달받은데이터를파싱하여화면에출력
9.3.4더보기기능구현

CHAPTER10테이블뷰의동작원리
10.1테이블뷰를스크롤할때발생하는일들
10.1.1재사용메커니즘
10.1.2이미지비동기처리하기
10.2일반뷰컨트롤러에서테이블뷰사용하기

CHAPTER11웹뷰:앱에서웹페이지를여는방법
11.1WKWebView를이용하여영화정보상세화면구현하기
11.2WKWebView
11.3델리게이트패턴을이용한웹뷰의로딩처리

CHAPTER12탭바컨트롤러
12.1탭바컨트롤러
12.1.1탭바의기본개념
12.1.2탭바에새탭추가하기
12.1.3탭바의주요기능
12.2탭바를이용한영화관정보제공
12.2.1탭바컨트롤러구성
12.2.2영화관정보API
12.3영화관목록화면구현하기

CHAPTER13맵킷프레임워크사용하기
13.1인앱프레임워크의종류
13.2맵킷프레임워크추가
13.3영화관위치기능구현

CHAPTER14오토레이아웃
14.1다양한화면크기에대응하는레이아웃
14.1.1오토리사이징(Auto-Resizing)
14.1.2오토레이아웃(AutoLayout)기능
14.2MyMovieChart프로젝트에오토레이아웃적용하기
14.2.1영화정보화면
14.2.2영화상세화면
14.2.3영화관목록화면
14.2.4영화관상세화면

이책을마치며
찾아보기

출판사 서평

이책은꼼꼼한재은씨의스위프트시리즈중두번째순서로,최근발표된스위프트4.0을기준으로iOS앱제작과정을학습합니다.코코아터치프레임워크를다루는방법을익히고,스토리보드를이용하여UI를구성하면서앱을구현합니다.최종단계에서는네트워크데이터를이용한서버연동까지구현합니다.

※이책에해당하는기본편에서는스위프트를이용한iOS앱개발과정을설명합니다.만약스위프트언어에대해충분히이해하지못했다면먼저문법편을학습하시는것이좋습니다.또한기본편의학습을마친후,보다실전적인앱개발방법에대해공부하고싶다면실전편을이어서학습하시면됩니다.이책에서는iOS앱개발에대한기본적인내용을학습하게되고,실전편에서는앞에서배운내용들을활용하여실제현업에서사용해야할주제들을배우게됩니다.

※대상독자
iOS프로그래밍분야에진출하려고하는대학생,대학원생
스위프트언어로iOS앱을제작하고자하는일반인또는실무자,오브젝티브-C개발자

※이책은Xcode9.0과iOS11을기준으로작성되었습니다.