ios 앱 개발 강의 자료 #1
Post on 09-Apr-2017
270 Views
Preview:
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