본문 바로가기

Programming/Swift

[Swift] Foundation, UIKit, Swift

IOS 개발을 하다 보면 Foundation, UIKit을 주로 import 한다. Storyboard를 기준으로 swift파일을 만들 때 기본적으로 Foundation을 import 하는데 개발을 하다 보면 어디는 UIKit만 있고 어디는 Foundation만 있어서 이 둘의 차이점을 비교해 보기로 했다.

 

1. UIKit

먼저 Apple 공식 문서를 보는 습관을 기르기 위해 공식 문서부터 확인해봤다.

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

Overview는 영어가 너무 많으니 위에만 보자...

"UIKit은 그래픽과 사용자 중심 사용자 인터페이스를 구조 및 관리하는 인터페이스라고 한다."

 

Overview를 간단히 요약하면

  • window 및 view 아키텍처, 멀티 터치와 같은 유형의 입력을 제공하는 이벤트 처리 인프라 제공

  • 사용자, 시스템 및 앱 간의 상호 작용을 관리하는데 필요한 main run loop 제공

  • 애니메이션, 문서, 그리기 및 인쇄, 현재 장치의 정보, 텍스트 관리 및 디스플레이, 검색, 접근성, 앱 확장 및 리소스 관리 지원

그리고 이 UIKit을 import 하면 Foundation도 import 되기 때문에 UIkit과 Foundation을 함께 import 할 필요는 없다.

 

 

2. Foundation

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은 앱에서 필수 데이터 타입, 컬렉션, 및 운영 체제 서비스에서 접근하는 앱의 기본 기능 계층을 정의한다."

라는데 맞는 해석인지는 모르겠다...

 

Overview를 간단히 요약하면

  • 데이터 저장소
  • 텍스트 가공
  • 날짜 및 시간 계산
  • 정렬 및 필터링
  • 네트워킹

추가로 Foundation은 Swift Standard Library를 참조하기 때문에 Swift를 import하지 않아도 된다.

 

 

3. Swift Standard Library

Swift standard Library 공식 문서

 

Swift Standard Library | Apple Developer Documentation

Store and organize data using arrays, dictionaries, sets, and other data structures.

developer.apple.com

"읽기 쉽고 성능 좋은 코드를 작성하여 복잡한 문제를 해결합니다."라고" 라고 하는데...

 

 그렇다네요...

 

Overview를 간단히 요약하면

 

정리하자면

UIKit은 App과 같이 user interface를 사용할 때 import 해야 하는 것이다.

문자, 문자열 등 기본 객체나 Date 같은 것만 사용한다면 Foundation만 import해도 된다.

Swift는 기본 데이터 타입만 사용할 때 import 하면 된다.

 

 

 

 

참고자료

[번역] Swift Standard Library
[iOS] UIKit, Foundation, Swift Standart Library - 무엇을 사용해야 할까?

 

'Programming > Swift' 카테고리의 다른 글

[Swift] Triple 구현해보기  (0) 2020.01.28