chaneeii / iOS-Study-Log

✨ iOS에 대해 공부한 것들을 기록합니다 ✨
18 stars 0 forks source link

iOS 프레임워크 계층구조와 Cocoa Framework(UIKit, Foundation) #3

Open chaneeii opened 2 years ago

chaneeii commented 2 years ago

iOS 프레임워크 계층구조

iOS Unix 기반의 맥 OS X를 기반으로 해서 다윈 커널을 가지고 있는 모바일 OS이다. iOS OS 레이어기반으로 구성되어있으며

iOS는 아래 층부터 [Core OS]-[Core Service]-[Media]-[Cocoa Touch / MacOS: Cocoa]-[Application] 으로 이루어져 있으며, Core OS로 갈수록 기본이 되는 최하위레이어이고, Cocoa Touch으로 갈수록 그래픽과 interface와 관련된, 사용자와 관련이 있는 최상위레이어다.

ios계층구조 ios계층구조

Application

Cocoa / Cocoa Touch

Media

Core Services

Core OS

Cocoa Touch Framework

  • 사용자가 iOS 운영체제과 일할수있게 하는 인터페이스의 역할을 하는 application layer
  • 화면의 그래픽 UI 및 터치의 기능을 제공
  • 실제로 개발할 때 가장 많이 접하게 되는 계층이다.

Cocoa Touch 프레임워크는 iOS 개발을 하면서 가장 많이 마주치는 2개의 프레임워크를 포함한다.

import Foundation
import UIKit

UIKit

Foundation

Q. Core Foundation 과 Foundation 의 차이는? A. 이 둘의 차이는 개발 언어 환경의 차이이다. Foundation 은 Objective-C 프레임워크 이며 Core Foundation 은 C 언어 기반이다. 그리고 Core Foundation 과 Foundation 프레임워크는 모두 Core Service 레이어의 부분이다.

  • App Kit, Core Data 프레임워크, Foundation 은 앱개발을 위한 Core Frame Work (Cocoa Umbrella Framework)) 인 반면, Core Foundation 은 C언어 기반의 programmatic interfaces 로 Core graphics 와 같은 C 기반 프레임워크와의 사용을 위해 고안되었다.
  • Foundation은 Core Foundation 을 기반으로 구현되어있다. 또한 이것이 C기반임에도 불구하고 Core Foundation 은 C보다 더 객체지향적이다.
  • Foundation 과 Core Foundation은 기본 데이터 타입, 데이터 관리 기능들을 제공한다.
  • [ ] 나중에 이 차이에 대해 더 확인해보기

Q. Cocoa Touch 의 가장 중요한 2가지는 UIkit 과 Foundation 이라고 한다. 하지만 Foundation Framework는 Core Service 계층에 있다 ? A. Cocoa (Touch) 는 Layer Stack 전체를 감싸는 우산같은 존재이다. 따라서 Cocoa (Touch) 레이어는 스택 내부의 specific 레이어이며, 이것은 때로 간단하게 Application 전체의 레이어로 언급되기도한다.

주요 프레임워크와 접두어

  접두어 주요 객체
Foundation Framework NS NSDate, NSData, NSRange...
UIKit Framework UI UIViewController,UIView,UIButton...
UserNotifications Framework UN UNNotificationContentm,UNNotificationRequest,...
MapKit Framework MK MKAnnotaionView,...
Core Foundation CF CFData, CFDate, CFError,...
Core Graphics CG CGColor, CGPoint, CGRect,...
AVFoundation AV AVAssetReader,AVAudioEngine,...

References