본문 바로가기

Dev.iOS/About

[iOS] iOS Application Development Intro

iOS Application Development Intro

Objective - C
표준 C 언어를 포함하는 확장된 언어이다.
하지만 C가 컴파일러에 의존하는 정적인 언어라면, Objective-C는 런타임이라고 불리는 기능에 의존하는 동적인 언어이다. 즉 실행했을 때, 결정되는 언어라는 것이다.
동적이라는 것은, 세가지의 의미를 갖는다.
Dynamic typing : 코드에서 다루는 오브젝트의 type이 무엇인지 실행 도중에 결정된다.
Dynamic binding : 코드 상의 statement가 어떤 메소드를 실행시킬지 실행 도중에 결정된다.
Dynamic loading : 어떤 모듈이 실행 도중 언제 메모리에 불려올지 실행 도중에 결정된다.

cf) cocoa
애플 환경에서 애플리케이션을 제작하기 위한 도구들의 모음이다.


+ CocoaPods
Objective - c 라이브러리 매니저
Ojbective - c 라이브러리의 이름과 버전을 파일에 기록해두면, 최신 소스 받아오기, 업데이트, 프로젝트에 추가하는 작업을 할 수 있다.



iOS 계층 구조




CoreOS
메모리/프로세서 관리, 파일 시스템, 네트워크, 각종 하드웨어 드라이버 등 운영체제 하단의 커널 레벨에서 제공하는 커널 API이다. 흔히 이야기하는 시스템 프로그래밍에 관련된 C를 기반으로 한 라이브러리를 제공한다.

Core Services
Core Foundation, CFNetwork, SQLite, POSIX threads와 같은 파일 입출력, 저수준 데이터 타입, 소켓 등에 관련된 서비스이다. Core OS 레벨에 비교적 쉽게 접근할 수 있는 API를 제공하며 대부분 C로된 프레임워크를 제공한다. 이 영역을 기반으로 상위 프레임워크가 제공된다.

Media
비디오, 오디오, 2D/3D 그래픽, 애니메이션을 구현할 수 있는 API를 제공한다. Objective-C, C 둘 중 하나로 API를 제공한다,
Quartz, Core Animation, OpenGL ES, Core Audio, OpenAL 등이 있다.

Cocoa Touch
iPhone 개발의 기본이 되는 계층으로, Objective-C를 기반으로 한 핵심적인 두 개의 프레임워크를 갖고 있다. 사용자 인터페이스, 이벤트 처리 등과 함께 로우 레벨 기술들을 쉽게 사용할 수 있는 프레임워크를 제공한다.

CocoaTouch Framework
iOS 기준으로 cocoa가 제공하는 프레임워크에는 파운데이션과 UIKit 프레임워크가 있다.
파운데이션 프레임워크는 기초 클래스를 모아놓은 것으로 프로그램 언어에서 표준 값과 관련된 클래스, 컬렉션 클래스, 문자열, 유틸리티, 날짜 클래스 등을 말한다. 프로그램의 중심을 담당하며, 애플리케이션의 모든 오브젝트들을 관리하는 기본 틀을 제공하기도 하고, 메모리를 할당하거나 반환하는 기본적인 규칙을 정의한다. Core Services 레이어에 해당하는 프레임워크인 것이다. 추가적으로 덧붙이자면, Foundation에서 제공하는 클래스들은 모두 NS라는 문자로 시작하게 된다. 참고로 이 파운데이션 프레임워크는 CoreFoundation 이라는 하위 프레임워크로 구성되어 있다. 이 CoreFoundation 클래스들은 모두 CF라는 문자로 시작한다.

UIKit 프레임워크는 사용자 인터페이스 클래스를 말한다. 주로 화면 처리와 관련된 클래스들이 존재한다. UIKit 프레임워크들의 클래스들은 UI로 시작하는 이름을 갖고 있다. 




'Dev.iOS > About' 카테고리의 다른 글

[iOS_Intro] 4. 데이터 ( 코어 데이터 )  (0) 2016.09.18
[iOS_Intro] 3. 테이블, 뷰  (0) 2016.09.17
[iOS_Intro] 2. Objectice - C의 기본 문법  (0) 2016.09.15
[iOS_Intro] 1. iOS Application의 구조  (0) 2016.09.10
[iOS] Swift란?  (0) 2016.09.08