3. UIKit / App Structure - Resource management

김동현·2022년 12월 21일
0

UI Kit 스터디

목록 보기
3/6

: 앱의 인터페이스를 구현하는 데 사용하는 이미지, 문자열, 스토리보드 및 nib 파일을 관리하는 API 들의 모음집

NIB 파일 = 유저 인터페이스 필드를 저장하기 위한 파일

주제

1) **Storyboards(스토리보드)**

스토리 보드란?

: iOS 애플리케이션의 UI의 흐름을 시각적으로 표한한 것

→ 화면의 내용과 화면과 화면 간의 연결을 보여줌

구성: viewController, view로 이루어진 Scene의 집합

Scene들은 두 개의 viewcontroller의 전환을 나타내는 segue 객체로 연결되어 있음

(Scene: viewController와 view로 이루어진 하나의 화면)

단점 : 팀 프로젝트를 할 때 git에서 merge conflict가 자주 발생

  • segue(세그웨이)

: swift에선 ViewController 간의 전환하는 용도로 사용하는 라이브러리인데 ViewController가 하나의 화면을 담당하므로 화면 전환을 위한 라이브러리

화면 전환 이라고 생각하면 됨

→ 이를 사용하면 코드를 줄일 수 있음, 뷰 컨트롤러의 흐름을 관리하기 쉬움 → 생산성이 높아짐

(segue 를 만드는 과정은 2번째 챕터에 나올 예정)

Segue 종류
Show(Push)가장 일반적인 세그웨이로 새 화면으로 이동함.

| Show Detail
(Replace) | SplitView 구조에서 원래 화면을 Master, 새 화면을 Detail로 표시함. 아이폰에서는 똑같아 보이지만 아이패드로 보면 화면이 둘로 분할되서 보이게 됨.
Show와 비슷하지만 푸시가 아닌 교체된다는 점이 크게 다름. |
| Present Modally | 새 화면이 모달처럼 원래 화면 화면 위 전체를 뒤덮음. 원래 화면은 새 화면 뒤에 그대로 존재하게 됨. |
| Present as Pop over | 아이패드에서 팝업창을 띄움. |
| Custom | 사용자 정의 세그웨이를 만듦 |

아이패드앱 또는 아이폰/아이패드를 동시에 지원하는 유니버셜 앱을 개발할 경우 위와 같은 화면 분할을 지원할 수 있음

빨간색 : 마스터 뷰 / 녹색 : 디테일 뷰

세그웨이로 데이터 전달하는 법

XCode 스토리보드 사용시에 Segue 이용방법 3가지

  • class UIStoryboard

: 앱 뷰 컨트롤러의 보관된 버전을 관리함

선언

@MainActor class UIStoryboard : NSObject

스토리보드 객체 얻기

init(name: String, bundle: Bundle?)

: 지정된 리소스 파일에 대한 스토리 보드 개체를 만들고 반환함

초기 보기 컨트롤러 로드

func instantiateInitialViewController() -> UIViewController?

: 초기 뷰 컨트롤러를 만들고 스토리보드 데이터로 초기화함

func instantiateInitialViewController<ViewController>(creator: ((NSCoder) -> ViewController?)?) -> ViewController?

: 스토리보드에서 초기 뷰 컨트롤러를 만들고 사용자 지정 초기화 코드를 사용하여 초기화함

스토리보드 뷰 컨트롤러 인스턴스화

func instantiateViewController(withIdentifier: String) -> UIViewController

:지정된 식별자로 뷰 컨트롤러를 생성하고 스토리보드의 데이터로 초기화함

func instantiateViewController<ViewController>(identifier: String, creator: ((NSCoder) -> ViewController?)?) -> ViewController

: 스토리 보드에서 지정된 뷰 컨트롤러를 마들고 사용자 지정 초기화 코드를 사용하여 초기화함


UIkit : 사용자의 인터페이스를 위한 하나의 프레임워크[거대한 클래스들의 집합]

→ 다양한 클래스들이 들어있음(사용자에게 보여주고 상호작용할 수 있는 클래스들)

서로 상속관계를 가짐

UIView : 화면에 보인다는 역할에 충실해서 만들어진 클래스

→ 이 외에도 수많은 클래스들이 들어있음 → 모든 걸 외울 순 없음

Declaration → 정의

Overview → 이 클래스로 뭘 할 수 있는지 간단한 설명

Interface Budilder → 이게 어떤 특성들을 조절해줄 수 있는지 설명

Topics → 코드로 어떤걸 설정해줄수있는 포로토티들이 있다는 걸 알 수 있다.

⭐️질문

view controller과 view의 차이점? (동현질문)

MVC?

컨트롤러 안에 뷰를 넣는 느낌

화면 전환 방식 3가지(알면 좋은 것)

profile
디자인과 개발을 모두 할줄 아는 능력있는 개발자가 되고싶습니다.

0개의 댓글

관련 채용 정보