ios 앱 개발 강의 자료 #1

Post on 09-Apr-2017

270 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 #10 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 #20 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/

DevelopiOSAppsSwift/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 App0 Model0 View0 Controller

App Lifecycle0 iOS App Life Cycle

- Not Running- Inactive- Active- Background- Suspended

0 Demo- App Life Cycle

App Lifecycle0 Example

- App Life Cycle

Xcode0툴바

- 실행- 타겟설정- 에디터버튼- 보기버튼

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 - Optional0 Optional

- 값이 있을 수도 있고 없을 수도 있는 것 ?

- 문자열 “” 은 nil 인가 ? 숫자 0 은 nil 인가 ?

Swift – Optional Binding0 Optional Binding

- 옵셔널 값의 존재를 확인 후 다른 변수에 대입 .-if let / if var, where 바인딩 후 조건

Swift – Optional Chaining0 Optional Chaining

- 옵셔널 바인딩 과정을 간편하게- 옵셔널 변수 뒤에 ? 사용

Swift – Optional Unwrapping0 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 Enum0 Optional 은 Enum

Swift – 튜플 (Tuple)0 Tuple

- 어떤 값들의 묶음 .

- 배열과 비슷하지만 길이가 고정되어 있음 .

Swift – 튜플 (Tuple)0 Tuple 응용

- 여러 변수에 동시에 값을 지정- 무시하고 싶은 값은 언더바 (_) 를 사용

Swift – 튜플 (Tuple)0 여러 값을 반환하는 함수

- 커피 이름을 입력하고 ( 커피 , 가격 ) 튜플을 반환 받는 함수

Swift – 제어문 IF0 조건문에 괄호를 생략 가능0 조건문 이후 블럭 ({..}) 을 사용

Swift – 제어문 SWITCH0 break 생략 가능 .0 범위를 지정하거나 튜플 사용이 가능 .0 임의의 변수 대입이 가능 .

Swift – 제어문 SWITCH0 break 생략 가능하다 .0 범위를 지정하거나 튜플 자료형 사용이 가능하다 .0 임의의 변수 대입이 가능하다 .

Swift – 제어문 SWITCH0 break 생략 가능하다 .0 범위를 지정하거나 튜플 자료형 사용이 가능하다 .0 임의의 변수 대입이 가능하다 .

Swift – 제어문 FOR0 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 #20 Example

- App Life Cycle 앱을 Swift 로 변환해보세요 .

Sample App #10 Hello world!

- Objective-C- Swift

StoryBoard0 Segue

- show- show detail- present modally- popover presentation- custom

StoryBoard0 master view & detail view

StoryBoard0 Segue 사용하기

- 단순 Segue 연결> 드래그 후 원하는 액션 선택

- 코드에서 Segue 연결 > 드래그로 Segue 생성 > Segue Identifier 설정 > 함수 연결

- 코드에서 Segue 로드 후 연결 > Storyboard ID 설정 > 함수에서 Storyboard 로드 > 로드된 Storyboard 에서 Storyboard ID 해당 ViewController 로드 > 함수 연결

StoryBoard0프로젝트 전부 ?0프로젝트의 일부분 ?0 xib 만 사용 !0 Storyboard, xib 전혀 사용하지 않음 !0철학과 정책적인 부분이라 ..

Auto Layout0 Constraints 기반의 레이아웃0 WWDC 2011 OS X & Cocoa Auto Layout.. for MAC0 WWDC 2012 iOS 6 이상0 frame, bound, center 속성을 조절0 좌표가 아닌 제약을 고려해야 함

Auto Layout0 frame, bounds, center

Auto Layout0 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 Layout0 Example

To be continue..

top related