iOS

[iOS] Cocoa Touch, Foundation, UIKit Framework에 대해서

devharrry 2020. 1. 3. 21:29

 

안녕하세요. 이번 글에서는 iOS 애플리케이션 개발환경 토대인 코코아 터치 프레임워크와 그 하위 레벨 프레임워크인 UIKit, Foundation에 대해 알아보려고 합니다.

 

Cocoa Touch Framework

https://developer.apple.com/library/archive/documentation/General/Conceptual/DevPedia-CocoaCore/Cocoa.html

 

Cocoa (Touch)

Retired Document Important: This document may not represent best practices for current development. Links to downloads and other resources may no longer be valid. Cocoa (Touch) Cocoa and Cocoa Touch are the application development environments for OS X and

developer.apple.com

코코아 터치 프레임워크는 iOS 개발에 필요한 여러 프레임워크를 포함하고 있는 최상위 프레임워크입니다.

 

- 코코아 라는 단어는 Objective-C 런타임을 기반으로하고, NSObject를 상속받는 모든 클래스 또는 객체를 가리킬 때 사용합니다. 

 

- 코코아 또는 코코아터치는 iOS또는 macOS의 전반적인 기능을 활용해 애플리케이션을 제작할 때 사용하는 프레임워크입니다.

 

- 코코아터치는 UIKit과 Foundation을 포함합니다. 

 

UIKit 

https://developer.apple.com/documentation/uikit

 

UIKit | Apple Developer Documentation

The UIKit framework provides the required infrastructure for your iOS or tvOS apps. It provides the window and view architecture for implementing your interface, the event handling infrastructure for delivering Multi-Touch and other types of input to your

developer.apple.com

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 | Apple Developer Documentation

The Foundation framework provides a base layer of functionality for apps and frameworks, including data storage and persistence, text processing, date and time calculations, sorting and filtering, and networking. The classes, protocols, and data types defi

developer.apple.com

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 - 로컬 네트워크 

 

 

참고 https://www.edwith.org/boostcourse-ios