iOS 앱 개발의 기본기

2016-05-10
29 Views

iOS는 애플사에서 제공하는 아이폰, 아이패드, 아이팟 터치에 내장되어 있는 운영체제(OS)이다. 멀티터치 디스플레이를 이용한 입력방식에 최적화되어 있고 깔끔한 동작이 특징이다.

또한, iOS에 설치할 수 있는 응용프로그램을 iOS앱이라고 한다. iOS앱은 애플사가 운영하는 앱스토어라는 iOS 앱 다운로드 서비스에서 설치할 수 있다. iOS앱은 애플이 개발도구와 문서를 개발자 전용으로 공개하고 있어 누구나 개발자를 유료 등록하고 앱을 개발 등록하면 애플의 심사를 통해 앱스토어에 배포할 수 있다.

 

iOS앱의 장점

iOS와 똑같은 스마트폰으로 안드로이드가 있으며 안드로이드도 앱을 만들어 안드로이드 앱스토어에 개발해서 배포할 수 있다. iOS앱은 안드로이드를 내장한 기기는 매우 종류가 많고 모든 기종에서 앱의 실행 보증을 하기 어렵고 운영체제 버전업그레이드와 하드웨어 성능이 항상 일치하게 앱 품질을 보증하기 어렵다.

 

iOS의 계층구조

iOS 내부 소프트웨어 구성요소가 계층적으로 쌓인 레이어구조를 가지고 있다. 구체적으로 Cocoa Touch, Media, Core Services, Core OS 5가 하나의 레이어로 구성된다.

ios-layer

  • Cocoa Touch: 화면의 UI 및 터치등의 기능
  • Media: 그래픽/오디오/비디오등의 기능
  • Core Services: 내부 데이터/위치/센서등의 기능
  • Core OS: iOS의 거의 모든 기능의 기본적인 부분을 관리

하위레이어는 iOS의 핵심 부분 또는 하드웨어에 가까운 기능을 가지고 있고 상위레이어 그 다음 레이어의 기능을 추상화한 인터페이스를 가지고 있다.

 

프레임워크

애플은 앱 개발에서 필요한 기능을 파트별로 정리한 것이 바로 프레임워크가 패키지로 관리된다. 간단하게 말하면 지도 사용, 카메라 사용등의 기능이 준비되어 있다. 개발자는 이런 기능을 불러와 원하는 앱을 쉽게 구현할 수 있다.

iOS 앱 개발에서 가장 많이 이용되는 것은 화면 구성을 하는 UIKit과 내부 데이터관리인 Foundation 두가지가 대표적이다. 이 두가지를 통해 다른 프레임워크로 보강해서 개발을 진행하는 것이 일반적이다. 특히 iOS앱 개발에서 자주 이용되는 것을 설명하려고 한다.

ios-framework

iOS에서 프레임워크는 기능별로 나누어져 있고 프레임워크명 및 하위 프레임워크의 클래스명도 구현할 수 있는 기능을 쉽게 확인할 수 있도록 되어 있다. 즉 개발자가 쉽게 이해할 수 있도록 하기 위함도 있지만 문서로 이용시 원하는 기능을 빠르게 검색할 수 있도록 위함도 있다. iOS 업데이트가 일어나면 새로운 기능 추가과 같이 프레임워크도 업데이트되기 때문에 항상 iOS 앱 개발을 한다면 애플의 개발자 사이트를 확인하는 습관을 가지자.

 

앱 개발을 위해 필요한 환경

  • Apple Developer 등록
  • Xcode 무료 다운로드
  • Mac 기기 필수(iMac, MacBook, Mac mini, Mac Pro등)
  • 개발한 앱을 테스트하기 위한 아이폰 기기

Xcode는 누구나 맥앱스토어를 통해 무료로 다운로드받고 설치할 수 있다.  또한, iOS앱 개발에 필요한 문서 또는 iOS Developer Program에 대해서는 애플 개발자 사이트를 참고하자.

https://developer.apple.com

Facebook Comments

You may be interested

[Swift3] 폐쇄(Closure)에 대해 살짝 이해할 수 있는 팁
Swift 3.0
shares11 views
Swift 3.0
shares11 views

[Swift3] 폐쇄(Closure)에 대해 살짝 이해할 수 있는 팁

MJ Kim - 4월 29, 2017

몇몇 개발자를 만나 개발을 하다보면, 폐쇄(Closure)에 대해 이해를 하지 못해서 간단하게 바로 이해할 수 있는 팁을 정리해본다. 앱을 개발하다보면 https통신을…

[Swift3] UITextview의 keyboard 닫기
Swift 3.0
shares2 views
Swift 3.0
shares2 views

[Swift3] UITextview의 keyboard 닫기

MJ Kim - 4월 29, 2017

스토리보드에서 델리게이트를 선언하고 class에 UITextViewDelegate를 상속받아서 delegate=self를 viewDidLoad에서 설정하면 간단하게 해결되는데 가끔 헷깔려 하는 경우가 있어 적어본다. [crayon-59056677d0023746697709/] [crayon-59056677d0027998715380/] [crayon-59056677d0029214498781/]…

스토리보드에서 다국어 지원 및 Xcode 8.3이상에서 이슈
Swift 3.0
shares5 views
Swift 3.0
shares5 views

스토리보드에서 다국어 지원 및 Xcode 8.3이상에서 이슈

MJ Kim - 4월 29, 2017

다국어 지원은 우선 Localizable.strings파일을 생성한 다음 언어를 지정한다. 그리고 필자가 자주 사용하는 일부 컨트롤들에 대한 확장(extension)을 추가한 다음 스토리보드에서 사용하는…