" /> IOS 앱 개발 - Xcode 탐구 | BlackWerf's Blog
포스트

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 라이센스를 따릅니다.