일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- reactnative강의
- 패캠강의후기
- 패캠인강후기
- 패캠챌린지
- 패스트캠퍼스
- 오공완
- 자바스크립트
- 직장인인강
- 코딩자격증
- 직장인자기계발
- 30개프로젝트로배우는iOS앱개발withSwift초격차패키지Online.
- 환급챌린지
- 코딩교육
- 패캠
- 자바
- 파이썬
- 패캠reactnative
- 직정인자기계발
- 직장인공부
- 코딩테스트
- 패스트캠퍼스후기
- fastcampus
- 수강료0원챌린지
- Today
- Total
라티의 작은 일기장
[12일차] [명언 생성기 앱] UIKit & UIViewController 본문
오늘을 기점으로 드디어 Swift를 활용해 앱 개발 실습을 진행하게 되었다! 알음알음 공부한 문법을 이제야 써먹어보겠다..!
강의 따라서 구현해볼 앱은 명언 생성기 앱이다.
뭐 근데 말이 명언 생성기지, 갬성 돋는 UI도 없고... 기존에 정의해둔 명언 목록에서 무작위로 명언을 선택해서 화면에 표시해주는 기능만 있는 단순한 앱이다. 그냥 아~ 이렇게 앱이 만들어지는구나를 체감하는 느낌으로 만들어보겠다.
우선 이 앱을 만들기 위해 필요한 기능 또는 컴포넌트 목록이다.
- Storyboard
- AutoLayout
- UILabel
- UIButton
Android Studio 사용 경험이 있다면 뭔가 익숙한 것들이 보인다.
또한 이러한 개념을 알아야 한다고 한다.
- UIKit
- UIViewController
- AutoLayout
- IBOutlet & IBAction
알아야 할 것들이 갑자기 확 늘어난 느낌이다. 일단 오늘은 UIKit과 UIViewController에 대해서만 알아보자.
UIKit?
이름만 들으면 뭔가 UI를 제작하기 위한 도구들이 모아진 프레임워크 같은 느낌이 든다.
우선, UIKit에 대해 이해하기 전에 Cocoa touch Framework에 대한 이해가 필요하다.
일단 이 달콤한 느낌의 이름을 가진 프레임워크는 iOS 개발환경을 구축하기 위한 최상위 프레임워크로서, Storyboard, SwiftUI 등에서 앱을 제작하기 위해 필요한 UIKit, Foundation 등의 라이브러리가 전부 이 프레임워크에 속한다.
여기서 UIKit은 앱의 UI를 구성할 수 있는 거의 모든 클래스를 내포하고 있고, Foundation은 앱의 매커니즘을 구성하기 위한 필수적인 자료구조, 데이터 타입, 구조체 등을 내포하고 있다.
UIKit으로 제작하는 앱의 내부 구조는 우리가 알고있는 MVC(Model-View-Controller) 패턴을 따른다.
MVC 패턴에 대해 좋은 글들이 많으니 자세한 설명은 생략하고, 그냥 Model은 무엇을, Controller는 어떻게, View는 보여준다 정도로 이해하고 넘어가자.
하지만 현실적으로 Apple의 MVC 패턴은 우리가 알고 있는 이상적인 MVC 패턴 구조와는 상이하다.
이렇게 View와 Controller가 거의 하나의 객체(UIViewController)처럼 서로 깊게 관여하고 있어서 어플리케이션의 규모가 커지게 되면 유지보수가 힘들어진다고 한다. 그래서 이를 대체하기 위한 MVVM 패턴, VIPER 패턴 등이 제안되었다.
해당 디자인 패턴들에 대해서는 나중에 다루어보겠다.
그럼 저 문제가 되는 ViewController는 무엇일까?
ViewController?
앱의 근간을 이루는 객체로 모든 앱은 최소 하나 이상의 뷰 컨트롤러를 가지고 있다고 한다.
사용자가 화면을 통해 View에 해당하는 UI컴포넌트를 보고, 이에 대해 조작을 하면 그 컴포넌트에 대해 관리 기능을 제공하는 것이다.
ViewController의 주요 역할을 좀 더 알아보자.
- 데이터 변화에 따라서 view 컨텐츠를 업데이트
- view들과 함께 사용자 상호작용에 응답
- view를 리사이징하고 전체적인 인터페이스의 레이아웃 관리
- 다른 ViewController와 함께 하나의 앱을 구성
우리가 앱에서 조작을 가하면 어느 화면에서 다른 화면으로 넘어가는 경우를 볼 수 있다.
예를 들면 앱의 메인 화면에서 사용자의 프로필 설정 화면으로 넘어가거나, 검색을 통해서 사용자가 찾고 싶어하는 데이터만 모아서 출력해주는 검색 결과 화면으로 넘어간다고 하면 MainViewController에서 ProfileSettingViewController, SearchResultViewController로 넘어가는 것이다. 이렇듯 ViewController는 앱 내에서 하나의 화면 구성과 조작 기능을 담당하는 하나의 단위로 생각하면 된다.
패스트캠퍼스 바로가기 : http://bit.ly/3Y34pE0
> 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'Swift' 카테고리의 다른 글
[14일차] [명언 생성기 앱] IBOutlet & IBAction (0) | 2023.03.05 |
---|---|
[13일차] [명언 생성기 앱] AutoLayout (0) | 2023.03.04 |
[11일차] 클로저 (0) | 2023.03.02 |
[10일차] try-catch (0) | 2023.03.01 |
[9일차] 익스텐션, 열거형, 옵셔널 체이닝 (0) | 2023.02.28 |