안녕하세요. 이번 글에서는 iOS 애플리케이션 개발환경 토대인 코코아 터치 프레임워크와 그 하위 레벨 프레임워크인 UIKit, Foundation에 대해 알아보려고 합니다.
Cocoa Touch Framework
코코아 터치 프레임워크는 iOS 개발에 필요한 여러 프레임워크를 포함하고 있는 최상위 프레임워크입니다.
- 코코아 라는 단어는 Objective-C 런타임을 기반으로하고, NSObject를 상속받는 모든 클래스 또는 객체를 가리킬 때 사용합니다.
- 코코아 또는 코코아터치는 iOS또는 macOS의 전반적인 기능을 활용해 애플리케이션을 제작할 때 사용하는 프레임워크입니다.
- 코코아터치는 UIKit과 Foundation을 포함합니다.
UIKit
https://developer.apple.com/documentation/uikit
UIKit은 iOS 어플리케이션 사용자 인터페이스를 구현하고 이벤트를 관리하는 프레임워크입니다.
- UIKit 프레임워크는 제스처 처리, 애니메이션, 그림 그리기, 이미지 처리, 텍스트 처리 등 사용자 이벤트 처리를 위한 클래스를 포함합니다.
- 테이블뷰, 슬라이더, 버튼, 텍스트 필드, 얼럿 창 등 애플리케이션의 화면을 구성하는 요소를 포함합니다.
- UIKit 클래스 중 UIResponder에서 파생된 클래스나 사용자 인터페이스에 관련된 클래스는 애플리케이션의 메인 스레드(혹은 메인 디스패치 큐)에서만 사용.
구성
사용자 인터페이스
- View and Control : 화면에 콘텐츠 표시
- View Controller : 사용자 인터페이스 관리
- Animation and Haptics : 애니메이션과 햅틱을 통한 피드백 제공
- Window and Screen : 뷰 계층을 위한 윈도우 제공
사용자 액션
- Touch, Press, Gesture: 제스처 인식기를 통한 이벤트 처리 로직
- Drag and Drop: 화면 위에서 드래그 앤 드롭 기능
- Peek and Pop: 3D 터치에 대응한 미리 보기 기능
- Keyboard and Menu: 키보드 입력을 처리 및 사용자 정의 메뉴 표시
Foundation
https://developer.apple.com/documentation/foundation
Foundation은 원시 데이터 타입, 컬렉션 타입, 운영체제 서비스를 사용해 어플리케이션의 기본적인 기능을 관리하는 프레임워크입니다.
구성
Fundamentals
- String, Int, Double, Number, Data - 원시 데이터 타입
- Array, Dictionary, Set - 컬렉션 타입
- Date, Time -날짜와 시간을 계산하거나 비교하는 작업
- Data Formatting - 숫자, 날짜 등을 문자열로 변환 또는 반대 작업
- Filter, Sorting - 컬렉션 요소를 검사하거나 정렬하는 작업
App Support
- Resource - 에셋과 번들 데이터 접근
- Notification
- App Extension
- Error and Exceptions
Files and Data Persistence
- File System - 파일 또는 폴더를 생성하고 읽고 쓰는 기능
- Archives, Serialization - 속성 목록, JSON, 바이너리 파일들을 객체로 변환 또는 반대 작업
- iCloud - 사용자의 iCloud 계정을 이용해 데이터를 동기화하는 작업
Networking
- URL Loading System - 표준 인터넷 프로토콜을 통해 URL과 상호 작용하고 서버와 통신하는 작업
- Bonjour - 로컬 네트워크
'iOS' 카테고리의 다른 글
[iOS] info.plist cannot be found 해결하기 (0) | 2020.01.05 |
---|---|
[iOS] Bounds와 Frame의 차이점 (0) | 2020.01.03 |
iOS앱 TDD로 개발하기 #1 (1) | 2020.01.03 |
[iOS] 내비게이션 인터페이스(Navigation Interface)란 (0) | 2018.05.22 |
[iOS] H.I.G(Human Interface Guidelines)란? (0) | 2018.05.21 |