ݺߣ

ݺߣShare a Scribd company logo
iOSiOS 개발개발
2016.06.21
모정훈
강사소개
0 ( 주 )SK 플래닛 2013 ~ 현재
- Project-ANNE (iOS)
- Shopkick Companion App (iOS)
- OCB(OK 캐시백 ) App (iOS)
- Hoppin VoD Player (iOS, Android)
0 약력
- 정보보호대학원 박사과정
- ( 주 ) 네이버 2010 ~ 2013
- SK 커뮤니케이션즈 ( 주 ) 2008 ~ 2010
- 육군본부 전산체계 개발실 2003 ~ 2005
0 준비물
- Mac OS, Xcode
- 열정과 리액션 , 질문과 피드백
- 아재개그 주의
목차
- 샘플코드 , 유용한 정보 안내
- iOS 앱의 동작 방식
- Swift & Playground ( 실습 포함 )
- Hello World ( 실습 포함 )
- Storyboard ( 실습 포함 )
- Auto Layout ( 실습 포함 )
- UIComponents
Sample Source #1
0 01.AppLifeCycle
- AppLifeCycleObjectiveC (Objective-C 작성 )
- AppLifeCycleSwift (Swift 작성 )
0 02.HelloWorlds
- HelloWorldObjectiveC (Objective-C 작성 )
- HelloWorldSwift (Swift 작성 )
0 03.StoryBoards
- StoryBoardSwift01 (Segue 의 3 가지 방식 샘플 )
- StoryBoardSwift02 ( 다른 Storyboard 파일의 ViewController 로드 )
0 04.AutoLayout
- AutoLayoutSwift
0 05.XIBvsNoneXIB
- NoneIBTabbar (XIB 없이 코드로 Tabbar 작성 )
- StoryBoardTabbar (IB/StoryBoard 로 Tabbar 작성 )
Sample Source #2
0 01.TestTableViewSwift
- TableView, Delegate/DataSource 이해
- https://github.com/picomax/TableViewSwift
0 02.TodoMemoSwift
- 데이터 저장 (UserDefaults), 화면전환 이해
- https://github.com/picomax/TodoMemo
0 03.CatalogSwift
- Tabbar Controller, Key/Value 코딩의 이해
- https://github.com/picomax/Catalog
유용한 사이트
- Developer Site
- https://developer.apple.com/library/ios/navigation/
- Start Developing iOS Apps Today
- https://developer.apple.com/library/ios/referencelibrary/GettingStarted/Develo
piOSAppsSwift/index.html
- iPhone Dev
- http://iphonedev.co.kr/
- Swift
- http://swift.leantra.kr/
- GitHub
- https://github.com/
iOS App 의 구동
- 실행
- main 실행
- UIApplicationMain()
- applicationDidFinishLaunching:
- EventLoop 진입
- 작성한 코드 실행
- 어플리케이션 종료
- applicationWillTerminate:
- 어플리케이션 종료
The Structure of an App
0 Model
0 View
0 Controller
App Lifecycle
0 iOS App Life Cycle
- Not Running
- Inactive
- Active
- Background
- Suspended
0 Demo
- App Life Cycle
App Lifecycle
0 Example
- App Life Cycle
Xcode
0 툴바
- 실행
- 타겟설정
- 에디터버튼
- 보기버튼
0 영역
- 네비게이션
- 에디터
- 유틸리티
Sample App
# Objective-C
# Swift
Swift - 변수
0 변수 선언 (Dynamic type check)
var 변수명 = 값 ;
var 변수명 : 자료형 ;
0 다국어 지원 ( 한글 변수명 가능 )
0 세미콜론 (;) 생략 가능
0 헝가리언 표기법
Swift - 자료형
0 String 문자열
0 Array<T> 배열
0 Dictionary<T,S>사전형 (T 형의 키 , S 형의 값 )
0 Int8 정수형 (-128 ~ 127)
0 Int16 정수형 (-32,768 ~ 32,767)
0 Int64 정수형 (-2,147,483,648 ~ 2,147,483,647)
0 Uint8 정수형 (0 ~ 255)
0 Uint16 정수형 (0 ~ 65,535)
0 Uint32 정수형 (0 ~ 4,294,967,295)
0 Uint64 정수형 (0 ~ 18,446,744,073,709,551,615)
0 float32 비트의 부동소수점 데이터
0 Double64 비트의 부동소수점 데이터 (float32 보다 정밀 )
0 Bool true | false
Swift - Optional
0 Optional
- 값이 있을 수도 있고 없을 수도 있는 것 ?
- ”문자열 “ 은 nil 인가 ? 숫자 0 은 nil 인가 ?
Swift – Optional Binding
0 Optional Binding
- 옵셔널 값의 존재를 확인 후 다른 변수에 대입 .
-if let / if var, where 바인딩 후 조건
Swift – Optional Chaining
0 Optional Chaining
- 옵셔널 바인딩 과정을 간편하게
- 옵셔널 변수 뒤에 ? 사용
Swift – Optional Unwrapping
0 Optional Binding
- 옵셔널 값의 존재를 확인 후 다른 변수에 대입 .
- if let / if var 사용
- where 바인딩 후 조건
Swift – 열거형 (Enum)
0 다양한 자료형
0 함수 내장
0 중첩 표현
Swift – 열거형 (Enum)
0 다양한 자료형
0 함수 내장
0 중첩 표현
Swift – 열거형 (Enum)
0 다양한 자료형
0 함수 내장
0 중첩 표현
Swift – Optional vs Enum
0 Optional 은 Enum
Swift – 튜플 (Tuple)
0 Tuple
- 어떤 값들의 묶음 .
- 배열과 비슷하지만 길이가 고정되어 있음 .
Swift – 튜플 (Tuple)
0 Tuple 응용
- 여러 변수에 동시에 값을 지정
- 무시하고 싶은 값은 언더바 (_) 를 사용
Swift – 튜플 (Tuple)
0 여러 값을 반환하는 함수
- 커피 이름을 입력하고 ( 커피 , 가격 ) 튜플을 반환 받는 함수
Swift – 제어문 IF
0 조건문에 괄호를 생략 가능
0 조건문 이후 블럭 ({..}) 을 사용
Swift – 제어문 SWITCH
0 break 생략 가능 .
0 범위를 지정하거나 튜플 사용이 가능 .
0 임의의 변수 대입이 가능 .
Swift – 제어문 SWITCH
0 break 생략 가능하다 .
0 범위를 지정하거나 튜플 자료형 사용이 가능하다 .
0 임의의 변수 대입이 가능하다 .
Swift – 제어문 SWITCH
0 break 생략 가능하다 .
0 범위를 지정하거나 튜플 자료형 사용이 가능하다 .
0 임의의 변수 대입이 가능하다 .
Swift – 제어문 FOR
0 C-Style 없어진다고 ?
Swift - 함수
0 func 키워드로 선언 , ‘->’ 로 반환 타입 지정
0 파라미터 이름 변경 , 생략
0 갯수가 정해지지 않은 파라미터 처리
0 함수 안의 함수 , 함수안의 함수를 반환
Swift - 함수
0 func 키워드로 선언 , ‘->’ 로 반환 타입 지정
0 파라미터 이름 변경 , 생략
0 갯수가 정해지지 않은 파라미터 처리
0 함수 안의 함수 , 함수안의 함수를 반환
Swift - 함수
0 func 키워드로 선언 , ‘->’ 로 반환 타입 지정
0 파라미터 이름 변경 , 생략
0 갯수가 정해지지 않은 파라미터 처리
0 함수 안의 함수 , 함수안의 함수를 반환
Swift - 함수
0 func 키워드로 선언 , ‘->’ 로 반환 타입 지정
0 파라미터 이름 변경 , 생략
0 갯수가 정해지지 않은 파라미터 처리
0 함수 안의 함수 , 함수안의 함수를 반환
Swift - 클로저
0 중괄호 ({}) ”로 감싸진 “실행가능한 코드 블럭
Swift - 클로저
0 타입추론
- 함수의 반환 타입으로 클로저에서 어떤 파라미터를 받는지
- 어떤 타입을 반환하는지 알 수 있음
Swift - 클로저
0 라인 1 개 짜리 생략
Swift - 클로저
0 클로저를 파라미터로 활용
Swift - 클로저
0 클로저 활용하기
Swift – 클래스와 구조체
0 클래스
- class 로 정의
- 생성자 init()
- 상속 가능
- 참조
0 구조체
- struct 로 정의
- 생성자 init()
- 상속 불가
- 복사
Swift – 클래스와 구조체
0 클래스 , 구조체 예문
Swift – 클래스와 구조체
0 클래스 , 구조체 차이
Swift – 클래스와 구조체
0 클래스 , 구조체 주의할 점
- 옵셔널 아닌 경우 초기값 필요
- init 함수에서 self 키워드 사용시 super.ini() 실행 후 사용
- deinit 메모리 해제된 직후 호출
Swift – 속성
0 값을 가지는 속성 (Stored Property) – 변수
0 계산되는 속성 (Computed Property) – getter / setter
Swift – 속성
0 willSet, didSet – 속성 값의 변경 직전 / 직후 실행
- 속성과 관련된 UI 를 업데이트 , 특정 메소드 호출 등
App Lifecycle #2
0 Example
- App Life Cycle 앱을 Swift 로 변환해보세요 .
Sample App #1
0 Hello world!
- Objective-C
- Swift
StoryBoard
0 Segue
- show
- show detail
- present modally
- popover presentation
- custom
StoryBoard
0 master view & detail view
StoryBoard
0 Segue 사용하기
- 단순 Segue 연결
> 드래그 후 원하는 액션 선택
- 코드에서 Segue 연결
> 드래그로 Segue 생성
> Segue Identifier 설정
> 함수 연결
- 코드에서 Segue 로드 후 연결
> Storyboard ID 설정
> 함수에서 Storyboard 로드
> 로드된 Storyboard 에서 Storyboard ID 해당 ViewController 로드
> 함수 연결
StoryBoard
0 프로젝트 전부 ?
0 프로젝트의 일부분 ?
0 xib 만 사용 !
0 Storyboard, xib 전혀 사용하지 않음 !
0 철학과 정책적인 부분이라 ..
Auto Layout
0 Constraints 기반의 레이아웃
0 WWDC 2011 OS X & Cocoa Auto Layout.. for MAC
0 WWDC 2012 iOS 6 이상
0 frame, bound, center 속성을 조절
0 좌표가 아닌 제약을 고려해야 함
Auto Layout
0 frame, bounds, center
Auto Layout
0 Y = m * x + b
targetView.attribute =
multiplier * referenceView.attribute + constant
- targetView : 제약을 추가할 대상
- referenceView : 대상 뷰의 제약을 적용할 때 참조할
뷰
- attribute : 제약에 대한 속성 (left, right, top, bottom,
leadig, trailing, width, height, centerX, centerY,
baseline)
Auto Layout
0 Example
To be continue..
Ad

Recommended

iOS 앱 개발 강의 자료 #2
iOS 앱 개발 강의 자료 #2
Jeong-Hoon Mo
Do swift: Swift 무작정 해보기
Do swift: Swift 무작정 해보기
YoonBong Steve Kim
Swift2
Swift2
HyungKuIm
iOS-3
iOS-3
Sanghoon Han
Protocol Oriented Programming in Swift
Protocol Oriented Programming in Swift
SeongGyu Jo
iOS 메모리관리
iOS 메모리관리
Changwon National University
Angular2 가기전 Type script소개
Angular2 가기전 Type script소개
Dong Jun Kwon
안드로이드 개발자를 위한 스위프트
안드로이드 개발자를 위한 스위프트
병한 유
Swift5 vs objective c
Swift5 vs objective c
Bill Kim
11스위트로그래밍언
11스위트로그래밍언
NAVER D2
Object C - RIP
Object C - RIP
Dong Heon Cho
10 swift 열거형구조체클래스
10 swift 열거형구조체클래스
Changwon National University
[Osxdev]4.swift
[Osxdev]4.swift
NAVER D2
Swift_history
Swift_history
Herren
[SwiftStudy 2016] 1장. Swift 소개
[SwiftStudy 2016] 1장. Swift 소개
Keunhyun Oh
Objective-C에서 Swift로 전향할 때 생각해 볼 거리들
Objective-C에서 Swift로 전향할 때 생각해 볼 거리들
SeongGyu Jo
[SwiftStudy 2016] 2장. Swift 타입 파트 1
[SwiftStudy 2016] 2장. Swift 타입 파트 1
Keunhyun Oh
I phone 2 release
I phone 2 release
Jaehyeuk Oh
KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_6차_아이폰앱만들기_최명진&안두경_20120704
KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_6차_아이폰앱만들기_최명진&안두경_20120704
KTH, 케이티하이텔
2 swift 상수_변수_튜플
2 swift 상수_변수_튜플
Changwon National University
1 swift 소개
1 swift 소개
Changwon National University
Hello Swift 2/5 - Basic2
Hello Swift 2/5 - Basic2
Cody Yun
왜 Swift를 해야할까요?
왜 Swift를 해야할까요?
선협 이
코드를 짜면서 겪은 오해의 순간들
코드를 짜면서 겪은 오해의 순간들
hyunho Lee
Swift 3 Programming for iOS
Swift 3 Programming for iOS
Kwang Woo NAM
[Swift] Methods
[Swift] Methods
Bill Kim
Swift basic operators-controlflow
Swift basic operators-controlflow
wileychoi

More Related Content

Similar to iOS 앱 개발 강의 자료 #1 (20)

Swift5 vs objective c
Swift5 vs objective c
Bill Kim
11스위트로그래밍언
11스위트로그래밍언
NAVER D2
Object C - RIP
Object C - RIP
Dong Heon Cho
10 swift 열거형구조체클래스
10 swift 열거형구조체클래스
Changwon National University
[Osxdev]4.swift
[Osxdev]4.swift
NAVER D2
Swift_history
Swift_history
Herren
[SwiftStudy 2016] 1장. Swift 소개
[SwiftStudy 2016] 1장. Swift 소개
Keunhyun Oh
Objective-C에서 Swift로 전향할 때 생각해 볼 거리들
Objective-C에서 Swift로 전향할 때 생각해 볼 거리들
SeongGyu Jo
[SwiftStudy 2016] 2장. Swift 타입 파트 1
[SwiftStudy 2016] 2장. Swift 타입 파트 1
Keunhyun Oh
I phone 2 release
I phone 2 release
Jaehyeuk Oh
KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_6차_아이폰앱만들기_최명진&안두경_20120704
KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_6차_아이폰앱만들기_최명진&안두경_20120704
KTH, 케이티하이텔
2 swift 상수_변수_튜플
2 swift 상수_변수_튜플
Changwon National University
1 swift 소개
1 swift 소개
Changwon National University
Hello Swift 2/5 - Basic2
Hello Swift 2/5 - Basic2
Cody Yun
왜 Swift를 해야할까요?
왜 Swift를 해야할까요?
선협 이
코드를 짜면서 겪은 오해의 순간들
코드를 짜면서 겪은 오해의 순간들
hyunho Lee
Swift 3 Programming for iOS
Swift 3 Programming for iOS
Kwang Woo NAM
[Swift] Methods
[Swift] Methods
Bill Kim
Swift basic operators-controlflow
Swift basic operators-controlflow
wileychoi
Swift5 vs objective c
Swift5 vs objective c
Bill Kim
11스위트로그래밍언
11스위트로그래밍언
NAVER D2
10 swift 열거형구조체클래스
10 swift 열거형구조체클래스
Changwon National University
Swift_history
Swift_history
Herren
[SwiftStudy 2016] 1장. Swift 소개
[SwiftStudy 2016] 1장. Swift 소개
Keunhyun Oh
Objective-C에서 Swift로 전향할 때 생각해 볼 거리들
Objective-C에서 Swift로 전향할 때 생각해 볼 거리들
SeongGyu Jo
[SwiftStudy 2016] 2장. Swift 타입 파트 1
[SwiftStudy 2016] 2장. Swift 타입 파트 1
Keunhyun Oh
KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_6차_아이폰앱만들기_최명진&안두경_20120704
KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_6차_아이폰앱만들기_최명진&안두경_20120704
KTH, 케이티하이텔
Hello Swift 2/5 - Basic2
Hello Swift 2/5 - Basic2
Cody Yun
왜 Swift를 해야할까요?
왜 Swift를 해야할까요?
선협 이
코드를 짜면서 겪은 오해의 순간들
코드를 짜면서 겪은 오해의 순간들
hyunho Lee
Swift 3 Programming for iOS
Swift 3 Programming for iOS
Kwang Woo NAM
Swift basic operators-controlflow
Swift basic operators-controlflow
wileychoi

iOS 앱 개발 강의 자료 #1

  • 2. 강사소개 0 ( 주 )SK 플래닛 2013 ~ 현재 - Project-ANNE (iOS) - Shopkick Companion App (iOS) - OCB(OK 캐시백 ) App (iOS) - Hoppin VoD Player (iOS, Android) 0 약력 - 정보보호대학원 박사과정 - ( 주 ) 네이버 2010 ~ 2013 - SK 커뮤니케이션즈 ( 주 ) 2008 ~ 2010 - 육군본부 전산체계 개발실 2003 ~ 2005 0 준비물 - Mac OS, Xcode - 열정과 리액션 , 질문과 피드백 - 아재개그 주의
  • 3. 목차 - 샘플코드 , 유용한 정보 안내 - iOS 앱의 동작 방식 - Swift & Playground ( 실습 포함 ) - Hello World ( 실습 포함 ) - Storyboard ( 실습 포함 ) - Auto Layout ( 실습 포함 ) - UIComponents
  • 4. Sample Source #1 0 01.AppLifeCycle - AppLifeCycleObjectiveC (Objective-C 작성 ) - AppLifeCycleSwift (Swift 작성 ) 0 02.HelloWorlds - HelloWorldObjectiveC (Objective-C 작성 ) - HelloWorldSwift (Swift 작성 ) 0 03.StoryBoards - StoryBoardSwift01 (Segue 의 3 가지 방식 샘플 ) - StoryBoardSwift02 ( 다른 Storyboard 파일의 ViewController 로드 ) 0 04.AutoLayout - AutoLayoutSwift 0 05.XIBvsNoneXIB - NoneIBTabbar (XIB 없이 코드로 Tabbar 작성 ) - StoryBoardTabbar (IB/StoryBoard 로 Tabbar 작성 )
  • 5. Sample Source #2 0 01.TestTableViewSwift - TableView, Delegate/DataSource 이해 - https://github.com/picomax/TableViewSwift 0 02.TodoMemoSwift - 데이터 저장 (UserDefaults), 화면전환 이해 - https://github.com/picomax/TodoMemo 0 03.CatalogSwift - Tabbar Controller, Key/Value 코딩의 이해 - https://github.com/picomax/Catalog
  • 6. 유용한 사이트 - Developer Site - https://developer.apple.com/library/ios/navigation/ - Start Developing iOS Apps Today - https://developer.apple.com/library/ios/referencelibrary/GettingStarted/Develo piOSAppsSwift/index.html - iPhone Dev - http://iphonedev.co.kr/ - Swift - http://swift.leantra.kr/ - GitHub - https://github.com/
  • 7. iOS App 의 구동 - 실행 - main 실행 - UIApplicationMain() - applicationDidFinishLaunching: - EventLoop 진입 - 작성한 코드 실행 - 어플리케이션 종료 - applicationWillTerminate: - 어플리케이션 종료
  • 8. The Structure of an App 0 Model 0 View 0 Controller
  • 9. App Lifecycle 0 iOS App Life Cycle - Not Running - Inactive - Active - Background - Suspended 0 Demo - App Life Cycle
  • 10. App Lifecycle 0 Example - App Life Cycle
  • 11. Xcode 0 툴바 - 실행 - 타겟설정 - 에디터버튼 - 보기버튼 0 영역 - 네비게이션 - 에디터 - 유틸리티
  • 13. Swift - 변수 0 변수 선언 (Dynamic type check) var 변수명 = 값 ; var 변수명 : 자료형 ; 0 다국어 지원 ( 한글 변수명 가능 ) 0 세미콜론 (;) 생략 가능 0 헝가리언 표기법
  • 14. Swift - 자료형 0 String 문자열 0 Array<T> 배열 0 Dictionary<T,S>사전형 (T 형의 키 , S 형의 값 ) 0 Int8 정수형 (-128 ~ 127) 0 Int16 정수형 (-32,768 ~ 32,767) 0 Int64 정수형 (-2,147,483,648 ~ 2,147,483,647) 0 Uint8 정수형 (0 ~ 255) 0 Uint16 정수형 (0 ~ 65,535) 0 Uint32 정수형 (0 ~ 4,294,967,295) 0 Uint64 정수형 (0 ~ 18,446,744,073,709,551,615) 0 float32 비트의 부동소수점 데이터 0 Double64 비트의 부동소수점 데이터 (float32 보다 정밀 ) 0 Bool true | false
  • 15. Swift - Optional 0 Optional - 값이 있을 수도 있고 없을 수도 있는 것 ? - ”문자열 “ 은 nil 인가 ? 숫자 0 은 nil 인가 ?
  • 16. Swift – Optional Binding 0 Optional Binding - 옵셔널 값의 존재를 확인 후 다른 변수에 대입 . -if let / if var, where 바인딩 후 조건
  • 17. Swift – Optional Chaining 0 Optional Chaining - 옵셔널 바인딩 과정을 간편하게 - 옵셔널 변수 뒤에 ? 사용
  • 18. Swift – Optional Unwrapping 0 Optional Binding - 옵셔널 값의 존재를 확인 후 다른 변수에 대입 . - if let / if var 사용 - where 바인딩 후 조건
  • 19. Swift – 열거형 (Enum) 0 다양한 자료형 0 함수 내장 0 중첩 표현
  • 20. Swift – 열거형 (Enum) 0 다양한 자료형 0 함수 내장 0 중첩 표현
  • 21. Swift – 열거형 (Enum) 0 다양한 자료형 0 함수 내장 0 중첩 표현
  • 22. Swift – Optional vs Enum 0 Optional 은 Enum
  • 23. Swift – 튜플 (Tuple) 0 Tuple - 어떤 값들의 묶음 . - 배열과 비슷하지만 길이가 고정되어 있음 .
  • 24. Swift – 튜플 (Tuple) 0 Tuple 응용 - 여러 변수에 동시에 값을 지정 - 무시하고 싶은 값은 언더바 (_) 를 사용
  • 25. Swift – 튜플 (Tuple) 0 여러 값을 반환하는 함수 - 커피 이름을 입력하고 ( 커피 , 가격 ) 튜플을 반환 받는 함수
  • 26. Swift – 제어문 IF 0 조건문에 괄호를 생략 가능 0 조건문 이후 블럭 ({..}) 을 사용
  • 27. Swift – 제어문 SWITCH 0 break 생략 가능 . 0 범위를 지정하거나 튜플 사용이 가능 . 0 임의의 변수 대입이 가능 .
  • 28. Swift – 제어문 SWITCH 0 break 생략 가능하다 . 0 범위를 지정하거나 튜플 자료형 사용이 가능하다 . 0 임의의 변수 대입이 가능하다 .
  • 29. Swift – 제어문 SWITCH 0 break 생략 가능하다 . 0 범위를 지정하거나 튜플 자료형 사용이 가능하다 . 0 임의의 변수 대입이 가능하다 .
  • 30. Swift – 제어문 FOR 0 C-Style 없어진다고 ?
  • 31. Swift - 함수 0 func 키워드로 선언 , ‘->’ 로 반환 타입 지정 0 파라미터 이름 변경 , 생략 0 갯수가 정해지지 않은 파라미터 처리 0 함수 안의 함수 , 함수안의 함수를 반환
  • 32. Swift - 함수 0 func 키워드로 선언 , ‘->’ 로 반환 타입 지정 0 파라미터 이름 변경 , 생략 0 갯수가 정해지지 않은 파라미터 처리 0 함수 안의 함수 , 함수안의 함수를 반환
  • 33. Swift - 함수 0 func 키워드로 선언 , ‘->’ 로 반환 타입 지정 0 파라미터 이름 변경 , 생략 0 갯수가 정해지지 않은 파라미터 처리 0 함수 안의 함수 , 함수안의 함수를 반환
  • 34. Swift - 함수 0 func 키워드로 선언 , ‘->’ 로 반환 타입 지정 0 파라미터 이름 변경 , 생략 0 갯수가 정해지지 않은 파라미터 처리 0 함수 안의 함수 , 함수안의 함수를 반환
  • 35. Swift - 클로저 0 중괄호 ({}) ”로 감싸진 “실행가능한 코드 블럭
  • 36. Swift - 클로저 0 타입추론 - 함수의 반환 타입으로 클로저에서 어떤 파라미터를 받는지 - 어떤 타입을 반환하는지 알 수 있음
  • 37. Swift - 클로저 0 라인 1 개 짜리 생략
  • 38. Swift - 클로저 0 클로저를 파라미터로 활용
  • 39. Swift - 클로저 0 클로저 활용하기
  • 40. Swift – 클래스와 구조체 0 클래스 - class 로 정의 - 생성자 init() - 상속 가능 - 참조 0 구조체 - struct 로 정의 - 생성자 init() - 상속 불가 - 복사
  • 41. Swift – 클래스와 구조체 0 클래스 , 구조체 예문
  • 42. Swift – 클래스와 구조체 0 클래스 , 구조체 차이
  • 43. Swift – 클래스와 구조체 0 클래스 , 구조체 주의할 점 - 옵셔널 아닌 경우 초기값 필요 - init 함수에서 self 키워드 사용시 super.ini() 실행 후 사용 - deinit 메모리 해제된 직후 호출
  • 44. Swift – 속성 0 값을 가지는 속성 (Stored Property) – 변수 0 계산되는 속성 (Computed Property) – getter / setter
  • 45. Swift – 속성 0 willSet, didSet – 속성 값의 변경 직전 / 직후 실행 - 속성과 관련된 UI 를 업데이트 , 특정 메소드 호출 등
  • 46. App Lifecycle #2 0 Example - App Life Cycle 앱을 Swift 로 변환해보세요 .
  • 47. Sample App #1 0 Hello world! - Objective-C - Swift
  • 48. StoryBoard 0 Segue - show - show detail - present modally - popover presentation - custom
  • 49. StoryBoard 0 master view & detail view
  • 50. StoryBoard 0 Segue 사용하기 - 단순 Segue 연결 > 드래그 후 원하는 액션 선택 - 코드에서 Segue 연결 > 드래그로 Segue 생성 > Segue Identifier 설정 > 함수 연결 - 코드에서 Segue 로드 후 연결 > Storyboard ID 설정 > 함수에서 Storyboard 로드 > 로드된 Storyboard 에서 Storyboard ID 해당 ViewController 로드 > 함수 연결
  • 51. StoryBoard 0 프로젝트 전부 ? 0 프로젝트의 일부분 ? 0 xib 만 사용 ! 0 Storyboard, xib 전혀 사용하지 않음 ! 0 철학과 정책적인 부분이라 ..
  • 52. Auto Layout 0 Constraints 기반의 레이아웃 0 WWDC 2011 OS X & Cocoa Auto Layout.. for MAC 0 WWDC 2012 iOS 6 이상 0 frame, bound, center 속성을 조절 0 좌표가 아닌 제약을 고려해야 함
  • 53. Auto Layout 0 frame, bounds, center
  • 54. Auto Layout 0 Y = m * x + b targetView.attribute = multiplier * referenceView.attribute + constant - targetView : 제약을 추가할 대상 - referenceView : 대상 뷰의 제약을 적용할 때 참조할 뷰 - attribute : 제약에 대한 속성 (left, right, top, bottom, leadig, trailing, width, height, centerX, centerY, baseline)