iOS 개발 알아보기

UIKit

UIKit 을 통해 iPhone 앱을 개발한다. 기본적으로 알아야 한다. 회사의 기본 프로젝트는 UIKit 으로 이루어져 있다.

언어는 SwiftObjective-C 로 이루어져 있다. Objective-C 가 근간이다. Objective-C 로도 개발할 줄 알아야 한다. 레가시 프로젝트라면 Objective-C 로 이루어져있을 가능성이 크기 때문이다.

UI 구현 방식으로는 스토리보드코드 UI 이다.

스토리보드는 GUI 를 통해 드래그앤 드랍 방식으로 만드는 방식이다.

코드 UI 는 코드로 구현하는 방식이다.

스토리보드만 하는 회사, 코드 UI 만 하는 회사, 둘 다 하는 회사가 있다.

리액티브 구현 방식도 있다.

리액티브 구현 방식은 RxSwiftCombine 이 있다.

RxSwift (ReactiveX Swift) 로 기본적으로(전통적으로) 구현해왔다. Apple 이 직접 지원하지 않지만, Apple 이 직접 지원하는 Combine 도 있다. 그러나 CombineiOS 13 이상 부터 지원한다.

패턴이란 코드를 짜는 구조, 방식을 의미한다.

MVC (Model-ViewController)

UIKit 은 기본적으로 MVC 패턴을 따른다. 대부분의 로직을 ViewController 에서 처리한다. 화면에 리스트가 있다고 예시를 들 수 있다.

리스트를 보여주고, 리스트에 어떤 것을 추가하거나 삭제하는 로직은 ViewController 가 담당한다.

MVVM (Model-View-ViewModel)

리액티브 구현 방식에서 주로 사용한다.

MVC 에서는 ViewController 에서 대부분의 로직을 갖고 있었기 때문에 ViewController 의 책임이 막중했다. 이를 덜기 위해 ViewModel 과 분리하게 된 것이다.

ViewModel 에서 리스트 추가, 삭제 등 로직을 처리하고 ViewController 에서 이 데이터를 가져와 보여주는 방식으로 예를 들 수 있다.

즉 View 와 관련된 데이터 상태를 갖고 있다. ViewModel 이 업데이트 되면 ViewController 에서 이를 렌더링한다.

Coordinator - 화면 이동

MVVM-C

MVVM 과 Coordinator 를 섞은 개념이다. 화면 이동 처리, 화면 스택 관리를 수행한다.

SwiftUi

iOS 13 버전 이상부터 지원하는 프레임워크다. 신규 프로젝트 또는 기존 프로젝트에서 부분적으로 도입하는 추세이다.

2023년 07월 18일에 수정됨
YUNSU BAE

YUNSU BAE

주니어 웹 개발자 배윤수 입니다!

예술의 영역을 동경하고 있어요. 🧑‍🎨