아요 개발 일기

[iOS] Cocoa Touch Framework 본문

iOS

[iOS] Cocoa Touch Framework

소진이 2023. 1. 2. 10:58

안녕하세요 소진입니다!

오늘은 Cocoa Touch Framework 에 대해 알아보도록하겠습니다:)

 


1. 

Cocoa와 Cocoa Touch 개념

 

먼저, Cocoa 란 무엇일까요?

Cocoa는 데스크톱 운영 체제 macOS를 위한 Apple의 기본 객체 지향 응용 프로그래밍 인터페이스(API)입니다.

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

 

더 자세한 정보를 알고 싶다면 Wikipedia , 애플 공식 문서를 참고하세요!

 

Cocoa Touch ?

Cocoa Touch는 응용 프로그램 개발 환경을 말하며, iPhone, iPod Touch 및 iPad 용 운영 체제인 iOS의 추상화 계층을 제공합니다.

mac OS Cocoa API도구 세트를 기반으로 하며, 마찬가지로 Objective-C 언어로 작성되었습니다.

또한 Cocoa와 마찬가지로 MVC(Model-View-Controller) 소프트웨어 아키텍처를 따릅니다.

 

더 자세한 정보를 알고 싶다면 Wikipedia 를 참고하세요!

 


 

1 - 2.

Cocoa 랑 Cocoa Touch를 간단하게

한번 정리해볼까요?

 

- 둘 다 앱 개발 환경 (application environment)

- 각각 iOS 또는 macOS에서 실행되는 앱을 개발하기 위한 API이며, 프레임워크들을 포함

 

  • Cocoa는 Founcation, AppKit framework를 포함하여 OS X에서 동작하는 앱을 개발하기위해 사용
  • Cocoa Touch는 핵심 프레임워크인 UIKit과 Foundation을 포함하며 iOS에서 동작하는 앱을 개발하기 위해 사용됩

 


 

2.

이제 본격적으로

Cocoa Touch Framwork에 대해서 알아봅시다!

 

여기서 잠깐! Framwork는 뭘까요?

Framework는 Shared Library(or API)와 비슷한 개념으로, 어떤 기능에 관련된 함수들을 모아 놓은 것을 말합니다:)

 

 

 

여기서 "상위 레벨"이란 프로그래머가 필요한 기능을 가장 손 쉽게 사용할 수 있다는 뜻

상위 레벨의 Framework는 내부적으로 하위 레벨의 Framework를 이용하여 기능을 구현합니다.

 

ios의 4계층 구조

 

'Media Layer'계층을 예로 들어보면 내부적으로 하위 계층인 Core Services와 Core OS계층의 Framework를 이용하고, 자신은 상위 계층인 CocoaTouch의 Framework를 구현하는데 사용됩니다.


3.

Cocoa Touch Framework에서

가장 중요한 두가지

"UIKit & Foundation"

 

 

UIKit

: iOS의 UI를 담당합니다.

 

MacOS X의 UI를 담당하고 있는 AppKit 와 다른 점은

Mac OS X에서 사용하는 클래스와의 혼동을 막기 위해 ‘UI’로 시작하는 클래스 이름을 사용합니다.

 

Mac OS X에서는 ‘NS’로 시작하는 클래스의 이름을 사용합니다.

 

 

Foundation

: 프로그램의 중심을 담당

 

Application의 모든 object를 관리하는 기본적인 틀 제공

메모리 할당 혹은 반환하는 기본적인 규칙 정의

리스트나 딕셔너리와 같은 클래스들은 모두 'NS'로 시작

예외) Foundation이 이용하는 CoreFoundation(= 하위 Framework)

 

: 보통 Foundation을 이용하여 프로그램을 작성하지만, 프로그래머가 직접 CoreFoundation을 이용하는 경우가 있습니다. ("CF")

 

 

CoreFoundation

:  GUI와 관련된 Foundation(ex. 원시 바이트, 유니코드 문자열, 숫자, 달력, 날짜, 배열, 사전 , 딕셔너리)

 

운영체제 수준에서 프로세스간 통신 및 GUI메시지 대화상자를 통해 표준화 된 응용 프로그램 기본 설정 관리를 제공합니다.

 

 

CoreData

: 응용프로그램에서 모델 계층 개체를 관리하는 데 사용하는 Framework.

지속성을 포함하여 객체 수명주기 및 객체 그래프 관리와 관련된 일반작업에 일반화되고 자동화 된 솔루션 제공합니다.

코어데이터는 구현, 테스트 또는 최적화 할 필요 없는 기본 제공 기능 때문에 모델 계층을 지원하기 위해 작성하는 코드의 양이 50–70% 감소합니다.

 

 

 MapKit

: 앱의 인터페이스에 직접 지도 또는 위성이미지를 표시하고, 관심있는 장소를 호출하며 지도좌표에 대한 장소 표시 정보를 결정할 수 있는 도구모음입니다.

 

 

 Core Animation

: iOS 및 OS X에서 사용할 수 있는 그래픽 렌더링(Graphic Rendering : 컴퓨터 프로그램을 사용하여 그래픽으로부터 영상을 만들어내는 과정) 및 애니메이션 인프라(infrastructure : 기초적인 시설 및 자원) 로서 앱의 보기 및 시각적 요소에 애니메이션을 적용하는데 사용합니다.

사용 시 애니메이션의 각 프레임을 그리는 데 필요한 대부분의 작업을 자동 수행합니다.

*** AdLib Framework(광고 기능을 추가할 수 있는 프레임워크)

 


 

참조 사이트

https://www.edwith.org/boostcourse-ios/lecture/17994/

https://medium.com/@zieunv/cocoa-touch-framework-bf78307c4a51

 

 

오늘은 Cocoa Touch Framework에 대해서 살펴보았습니다.

처음에 봤을때는 정말 어려운 개념일까봐 걱정했는데 사이트도 잘 정리되어있어서 이해도가 꽤 높았습니다!

내일은 UIKit,Foundation, 오토레이아웃에 대해 알아보겠습니다~.~