iOS는 BSD 계열인 Darwin 과 M을 기반으로 하고 있어 근본적으로 Unix와 유사하다.
BSD 계열
- Berkeley Software Distribution 이라는 운영체제가 있는데, 캘리포니아 주립대 버클리대학에서 탄생했다. Unix 기반의 운영체제이며, BSD를 말하면 요즘 날에는 BSD의 후손들을 가리킨다. (FreeBSD, OpenBSD, NetBSD, DragonBSD 그리고 이들의 후손들까지)
- Darwin
- 2000년도에 애플에서 출시한 유닉스기반 운영체제.
- M
iOS는 맥OS 주요 프레임워크 일부를 공유한다. iOS의 사용자 인터페이스는 맥 OS 애플리케이션에 사용되는 애플 코코아 UI에 기반한다. 터치식 기기에 맞게 설게를 수정한 후 코코아 터치라는 이름을 붙인 것이다.
코코아 UI
- 맥 OS 개발에서 사용되는 프레임워크.
- Foundation 과 AppKit 프레임워크의 통합
코코아 터치
- iOS 개발에서 사용되는 프레임워크.
- Foundation과 UIKit 프레임워크의 통합
코코아 터치는 코코아 UI를 기반으로 되어있어 많은 부분이 비슷하고, 터치식 기기에서 작동하도록 설계된 프레임워크이다.
코코아 터치와 코코아 UI는 다른 Core Framework (Media, CoreServices, Core OS 프레임워크) 라는 레이어 위에서 작동하고 있는 것이다.
네이티브 앱
모바일 웹
- 일반적인 웹 어플리케이션이지만 모바일 스크린에 맞춰 제작된 것
모바일 웹앱
- 모바일 웹 + 네이티브 앱. 모바일에 최적화된 앱. 풀 브라우저 방식이 아닌 단일 페이지 방식으로 진화해 속도가 빠름
하이브리드 앱
- 네이티브 앱 + 모바일 웹앱: Browser API 및 네이티브 API 이용 가능.
- 네이티브 앱에 웹뷰를 띄워 실행시킴.
크로스 플랫폼
- 예시: 하이브리드 앱 : 웹뷰는 플랫폼마다 공통적인 부분: 코드 재사용 가능. 웹뷰를 띄워주는 부분만 플랫폼별로 제작하면 되기 때문에.
- Windows, Mac, Linux, 등 여러 플랫폼 (운영체제)에 대응하는 것.
자바는 크로스 플랫폼을 지원하는 언어이다. 자바가 이렇게 할 수 있는 이유는 Java Virtual Machine 덕분이다. 자바는 컴파일러를 통해 "Java 바이트 코드"가 생성되고, 각 플랫폼의 JVM 안에서 실행되기 때문에 크로스 플랫폼 지원이 가능하다.
크로스 플랫폼 Xamarin