iOS의 기본적인 구조는 이렇게 이루어져있어요
각 계층별로 하나하나 살펴볼게요
우선
최상위에
Cocoa / Cocoa Touch
가있는데 차이가뭘까요??
Cocoa라는 단어가 붙으면 우선
Objective-C Runtime을 기반으로 NSObject를 상속 받는 모든 클래스, 모든 객체를 가리킬 때 사용 하는 단어구요
Cocoa Framework는
Foundation, AppKit 프레임워크를 포함하고
macOS를 개발할 때 사용하는 프레임워크에요
Cocoa Touch Framework는
Cocoa가 붙었죠? 위에서 설명한거에 더해서
앱의 다양한 기능구현에 필요한 다양한 핵심프레임워크(UIKit, Foundation, CoreData, CoreAnimation…등)을 포함하는
최상위 레벨 프레임 워크에요
iOS개발에 사용해요
어? 근데
이 그림만 보면
Foundation이나 CoreData이런게 없는데요??
Cocoa Touch 계층은
최상위 프레임워크구요
그 아래에 있는 것들을 불러와요
예시로 UIKit에 제일 위에를 보면
이렇게 Foundation을 불러와서 사용하는 식으로 앱을 개발할 수있도록
집합체를 준비해놓은거죠!
UIKit는
iOS의 UI를 담당해요
이벤트 처리나, 뷰 그리기, 데이터전송, 등
앱을 개발하는데 필수적인 기능들을 가지고있어요
Foundation은
Swift표준 라이브러리에서의 기본적인 타입에 없는 기능을 사용 할 수있어요
Foundation가 제공하는 클래스는 NS라는 이름으로 시작하구요
Sorting, Date, Time, Collection타입, String의 일부기능이 있어요
Media 계층은
그래픽 관련 서비스나 오디오와 비디오 같은 멀티미디어 관련 서비스를 제공해줘요
Core Service 계층은
앱에 필수적인 서비스를 제공하지만 앱의 사용자 인터페이스와 직접적인 관계가 없고
문자열 처리, 데이터 집합, 네트워크, 주소록, 환경설정, 등
GPS, 가속도 센서 등 디바이스 하드웨어 특성에 기반한 서비스도 제공해요
XML Parsing, Keychain, Notification Center, StoreKit, Security, GCD, 등 다양한 기능을 제공해줘요
Core OS 계층은
하드웨어와 네트워크와 관련된 low-level의 서비스를 제공해줘요
커널, 파일 시스템, 네트워크, 보안, 전원관리, 환경설정 등의 기능이 있어요
'iyOmSd > Title: Swift' 카테고리의 다른 글
[Swift] Fastlane 자동화빌드 배포 CI/CD (1/2) (0) | 2020.11.19 |
---|---|
[Swift] Custom View 만들기 (1) | 2020.11.12 |
[Swift] SceneDelegate (0) | 2020.11.04 |
[Swift] WKWebView 앱 죽는 오류 현상 (0) | 2020.10.25 |
[Swift] Firebase Crashlytics dSYM 누락 업로드 (0) | 2020.10.25 |