IOS 앱 개발 - Xcode 탐구
목차
1. Ios 계층 구조
코어 OS
- OS X 커널
- 메모리 관리, CPU 스케쥴링…
- , 마하 3.0
- BSD
- 소켓
- 통신
- 보안
- 키체인, 인증서, 파일 시스템…
- 전원관리
- 키체인, 인증서 관리, 파일 시스템, 봉주르 네트워크로 구성됨
코어 서비스
- 컬렉션(배열 딕셔너리, Set), 주소록(DB), 네트워킹(네트워크 서비스 프로토콜 지원, TCP/IP), 파일접근(읽기, 쓰기, 수정, Ownership), SQLite(DB 제어 명령), 코어 로테이션(GPS등의 센서 드라이버), 쓰레딩 등의 처리를 담당함
미디어
- 코어 오디오, OpenAL, 오디오 믹싱 및 레코딩 및 비디오 재생, 사진, PDF, Quartz(2D), 코어 애니메이션, OpenGL ES
코코아 터치
- 사용자 인터페이스를 담당함
- 하위 모듈을 이용해 사용자 인터페이스를 위한 모듈을 생성함
iOS 프로그래밍에서 가장 많이 사용함
- 멀티터치
- 코어모션
- 뷰
- 지역화
- 경보
- 웹뷰
- 웹 서핑용
- 맵키트
- 지도용
- 이미지뷰
- 카메라
2. Ios 개발 환경
통합 개발 툴
- Xcode
- Object-C, Swift, iOS용 SDK를 내장함
프로그래밍 언어
- Swift
프레임워크
- Foundation, Core Data, Map Kit, UIKit, Core Motion…
설계 방법
- MVC
3. Model-View-Controller
View
- 아이폰 화면으로 보여지는 부분
- 사용자 이벤트를 Controller에 보냄(Action)
- View에서 Controller에 이벤트를 보낼때 delegate를 사용함
Model
- 프로그램의 엔진 부분
Controller
뷰에서 발생하는 이벤트를 처리 및 모델의 실행결과 등을 뷰에 업데이트함
모델과 뷰에 직접 접근이 가능함
뷰에 있는 객체를 제어하기 위해서는 , 그 객체를 가르키는 포인터(outlet)이 필요됨
이벤트 처리 모듈: Target
View로 이벤트 결과 전달 시 Delegate 사용
- 위임 처리를 의미
- 클래스 사용 목적에 따라 처리 할 일이 다를 때, 목적에 맞게 클래스를 설계하고, 델리게이트 모듈은 컨트롤러에서 처리함
- C에서 대표적인 delegate 함수: Main
장점
MVC 방법에 맞게 프로그램을 설계시, 프로그램의 크기가 커져도 유지보수가 편리함
프로그램의 가독성이 향상됨
종류
Type I
Model, View, Controller의 3개로 구성됨
Controller
- View(휴대폰의 URL, 앱 등)의 객체를 배치 및 제어함
- 객체 이벤트를 처리함
View
- 어플의 객체를 선택하면, 컨트롤러의 이벤트 처리로 이동하고, 모델의 웹 엔진에 처리를 요청함
Model
- 웹 엔진이 존재함
- 웹 엔진에서 처리된 결과는 컨트롤러의 이벤트 처리 모듈에 의해 뷰에 반영됨
Type II
- View, Controller 2개의 파트로 구성됨
- 간단한 로직을 처리하는 프로그램의 경우 Model 파트에서 할 역활을 Controller에서 처리함
Controller
- View 객체 배치 및 제어
- 객체 이벤트 처리(웹 엔진)
- 사용자 이벤트를 직접 처리 한 후, 결과를 뷰에 반영함
View
- 터치 이벤트가 위치함
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.