Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- IOS
- composablearchitecture
- Alamofire
- test
- 정규표현식
- ObjC
- SWIFT
- github
- 모바일
- Git
- xcode
- Firebase
- uikit
- iOS 13.0+
- concurrency
- Navigation
- iOS 개발자
- TCA
- navigationsplitview
- ios18
- regex
- combine
- UI
- xcodecloud
- Tuist
- tuist #xcodecloud #ios #ci/cd #swiftlint #firebase
- 개발
- swiftdata
- network
- SWIFTUI
Archives
- Today
- Total
iOS 개발 기록
UIKit에서 UI를 제작하는 방법 3가지의 장단점 본문
728x90
1. Storyboard
정의 : 여러 애플리케이션 뷰들의 전환을 레이아웃 하기 위한 방법,
Storyboard 사용 유무 | 설명 |
사용할 때 | - 다수의 서로 연결된 뷰 컨트롤러의 이동할 때에 경우, 네비게이션의 흐름(pop, push, present, dismiss 등)을 쉽게 해줌 - 뷰 컨트롤러가 자동으로 생성되므로 alloc이나 init을 해줄 필요 없음 - 테이블 뷰 컨트롤러의 이점으로는, 셀을 함께 디자인해서 테이블뷰와 함께 둘 수 있으며 여러 형태의 셀 템플릿을 디자인할 수 있음 |
사용하지 않을 때 | - 복잡한 레이아웃을 가진 뷰일 경우 (코드 추천) - 뷰가 이미 XIB이나 코드로 개발 되어 있을 때 |
장점 / 단점 | 설명 |
장점 | - 성능 : 퍼포먼스로는, 최초 뷰컨트롤러 하나만 생성된 후 나머지 연결된 뷰는 세그가 동작할 때 동적으로 객체화 - 프로토타입 제작 : 스토리보드와 코드 몇 줄로 빠른 목업 프로토타입이 가능 |
단점 | - 여러 사람이 작업할 경우 충돌 발생 소지가 아주 높고 머지가 쉽지 않음 - 재사용성 : 단일 뷰 컨트롤러를 추출하여 다른곳에 사용하기 어려움. 스토리보드는 의존하는 모든 뷰 컨트롤러들과 함께 복사 혹은 이동해야 함 - 데이터 흐름 : 스토리보드는 뷰 컨트롤러들 사이의 흐름을 다루지만 데이터의 흐름은 관여하지 않음 |
2) NIB
정의 : 단일 뷰 요소로 인터페이스 빌더에서 레이아웃 할 수 있는 방법. Nib는 바이너리 형태, Xib는 xml 형태. Nib를 컴파일하면 xml이 됨.
NIB 사용 유무 | 설명 |
사용할 때 | - 모달 뷰, 간단한 로그인/회원가입 뷰, 설정, 팝업 윈도우, 재사용 가능한 뷰, 재사용 가능한 테이블 셀 |
사용하지 않을 때 | - 복잡한 레이아웃 - 스토리보드에서는 단순하게 처리할 수 있는 복잡한 화면전환을 가진 뷰 컨트롤러들 |
장점 / 단점 | 설명 |
장점 | - 모듈 : 객체지향 관점에서 뷰를 여러 분리된 모듈로 쪼개서, 개발/테스트/디버그를 쉽게 해줌 - 재사용성 : 여러 클래스에서 동일한 레이아웃을 공유할 경우 좋음 (로그인 뷰와 회원가입 뷰는 패스워드 필드 하나를 감추는 형태로 비슷한 기능과 레이아웃을 공유할 수 있음) |
단점 | - NIB는 필요할 때 로드가 됨 : 필요할 때 외에는 메모리를 사용하지 않으나, 로드 시 지연이 있을 수 있음 |
3) 코드
정의 : UI를 코드로 구현
코드 사용 유무 | 설명 |
사용할 때 | - 다이나믹(변화가 크거나 빈번한) 뷰 - 둥근 모서리나 그림자 등의 효과를 갖는 뷰 - NIB와 스토리보드를 사용하는 것이 복잡하거나 불가능한 경우 |
사용하지 않을 때 | - 보통 코드로 만든 UI는 언제나 사용되며, 좋지 않은 경우는 드뭄 - NIB와 스토리보드가 테이블에 몇 가지 장점이 있지만, 코드 사용을 만류할 만한 목록에 넣을 만한 합당한 단점이 없는 것 같음 |
장점 / 단점 | 설명 |
장점 | - 스토리보드와 NIB으로 할 수 있는 어떤 것도 코드로도 가능 - 스토리보드와 NIB으로 할 수 없는 것들은 언제나 코드로 구현할 수 있음 - 직접 작성해서 그리므로 UI를 코드로 작성하는 법을 알면 그 이면에 어떤 일이 일어나는지 알 수 있음 - 뷰가 이리 저리 움직이는 다이나믹 레이아웃이나 내용물에 기반을 두고 변화하는 레이아웃 등이 있을 때 코드만이 UI 디자인에 있어 유일한 방법인 경우가 있음 - 협업시 충돌 : NIB나 스토리보드보다 충돌을 해결하는 것이 그리 어렵지 않음 - 재사용성 : 코드로 작성하는 뷰는 재사용 가능한 디자인으로 구현할 수 있음 |
단점 | - 프로토타입 제작 : 레이아웃이 화면에 어떻게 보여지고 작동하는지 보여주기 위해 작업해야 하는 시간이 NIB와 스토리보드에 비해 오래 걸림 - 리팩토링 : 누군가 오래 전에 작성한 코드를 리펙토링 하는 것이 훨씬 복잡해지며 구성요소들이 커스텀 메서드나 특정한 숫자들을 이용해 위치와 애니메이션을 결정하면 디버깅에 고통이 수반됨 |
'UIKit' 카테고리의 다른 글
[UIKit]Modern Collection View (0) | 2023.02.21 |
---|---|
[UIKit]UICollectionViewCompositionalLayout (iOS 13.0 +) (0) | 2023.02.21 |
[iOS]Scene, Window, View의 개념 (0) | 2023.02.15 |
View의 라이프 사이클 (0) | 2022.05.31 |
AutoLayout의 특징 (0) | 2022.05.31 |