Foundation Kit(줄여서 Foundation이라고 부르기도 함)은 iOS앱을 개발한 경험이 있거나 스위프트로 알고리즘을 풀어봤다면 낯설지 않으리라 생각합니다.
하지만 Foundation이 정확히 무엇인지, 어떤 역할을 하는지에 대해 모르기에 이번 기회에 알아보고자 합니다.
우선 애플 공식문서의 설명입니다.
Access essential data types, collections, and operating-system services to define the base layer of functionality for your app.
필수 데이터 타입, 컬렉션, 운영체제 서비스를 이용하여 앱의 기본 계층을 정의한다고 합니다.
Foundation프레임워크는 데이터 저장, 텍스트 처리, 시간 및 날짜 계산, 정렬 및 필터링, 네트워킹을 통해 앱 및 프레임워크(다른 프레임워크를 말하는 듯)에 대한 기본 계층을 제공합니다.
Foundation에서 정의한 클래스, 프로토콜, 데이터 타입은 macOS, iOS, watchOS, tvOS 등 모든 애플 SDK에 사용됩니다.
Foundation은 단어의 의미처럼 애플을 통해 제공되는 모든 앱들의 근간을 이루는 프레임워크라고 이해할 수 있습니다.
그렇다면 어떤 타입들을 제공하는지 간략하게 알아보겠습니다.
이 다양한 섹션들 안에 많은 타입들이 존재합니다.
다양한 섹션들 중 기본 중에서 Numbers, Data, and Basic Values 부분만 살펴보겠습니다. 전부 살펴보기엔 양이 방대하기에 링크를 남겨드립니다. https://developer.apple.com/documentation/foundation/
표에서 S는 struct, C는 class, Pr은 protocol입니다. 앞에 3가지 타입이 아닌 다른게 적혀있다면 typealias입니다.
Numbers, Data, and Basic Values
Work with primitive values and other fundamental types used throughout Cocoa.
Numbers | Binary Data | URLs | Unique Identifiers | Geometry | Ranges |
---|---|---|---|---|---|
Int(S) | Data(S) | URL(S) | UUID(S) | CGFloat(S) | NSRandge(_NSRange) |
Double(S) | DataProtocol(Pr) | URLComponents(S) | NSPoint(CGPoint) | ||
Decimal(S) | MutableDataProtocol(Pr) | URLQueryItems(S) | NSSize(CGSize) | ||
NumberFormatter(C) | ContiguousBytes(Pr) | NSRect(CGRect) | |||
AffineTransform(S) | |||||
NSEdgeInsets(S) |
흔히 보던 Int, Double, Data, URL, CGRect등이 다 Foundation에 있었군요..
이밖에도 친숙한 타입들이 굉장히 많습니다. ^_^
Foundation이란 데이터 저장, 텍스트 처리, 시간 및 날짜 계산, 정렬 및 필터링, 네트워킹을 통해 앱과 프레임워크를 위한 기본 계층을 제공하는 프레임워크 입니다.