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
- TCA
- Git
- uikit
- combine
- network
- 모바일
- SWIFT
- Tuist
- Navigation
- tuist #xcodecloud #ios #ci/cd #swiftlint #firebase
- Alamofire
- ios18
- iOS 13.0+
- 정규표현식
- xcode
- github
- 개발
- SWIFTUI
- ObjC
- concurrency
- xcodecloud
- test
- Firebase
- IOS
- navigationsplitview
- regex
- composablearchitecture
- UI
- swiftdata
- iOS 개발자
Archives
- Today
- Total
iOS 개발 기록
SwiftUI의 4가지 원칙 본문
728x90
- 선언형 프로그래밍 :
SwiftUI 는 기존의 명령형(Imperative) 대신 선언형(Declarative) 프로그래밍 방식이다. UI 구성을 단계적으로 만들어나가는 대신 최종적으로 어떤 모습이 되기를 원하는지 결과를 선언하는 형태를 뜻한다. 선언형 프로그래밍은 상태에 따라 바뀌게 되는 제어 흐름을 하나하나 관리해야 하며 이는 버그를 유발하기 쉽고 복잡성이 늘어나는 문제점이 있다.
- 자동화 :
많은 기능이 자동으로 수행될 수 있도록 제공하는 것을 목표로함.
- 조합 :
SwiftUI의 API는 조합과 분리를 간단히 제공함. 예를 들어 큰 뷰를 하나의 기능을 가진 작은 뷰로 분리하거나 조합하는 것을 쉽게 만들 수 있음.
- 일관성 :
UI는 데이터와 항상 동기화되어 일관성 있게 보여야 한다는 것. 데이터가 변경되는 즉시 UI도 자동으로 갱신된다. 코드의 결과를 시뮬레이터를 실행시키지 않아도 캔버스에서도 확인 가능하다. 이는 코드로 개발할지, 스토리보드로 개발할지 고민할 필요가 없어지며, 시뮬레이터를 재실행할 필요가 없다.
이와 같은 장점들은 생산성을 크게 향상시킨다. 예를 들어 UIkit 에서 SwiftUI라는 버튼을 만들기 위한 코드가 SwiftUI에서는 다음과 같이 간단하게 표현된다.
// UIKit
let button = UIButton(type: .system)
button.setTitle("swiftUI", for: .normal)
button.setTitleColor(.black, for: .normal)
button.titleLabel?.font = .preferredFont(forTextStyle: .title1)
button.addTarget(self, action: #selector(buttonDidTap(_:)), for: .touchUpInside)
view.addSubview(button)
button.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
button.centerXAnchor.constraint(equalTo: view.centerXAnchor),
button.centerYAnchor.constraint(equalTo: view.centerYAnchor)
])
// ...
@objc func buttonDidTap(_ sender: UIButton) {
print("Hello, SwiftUI!")
}
//SwiftUI
Button(action: {
print("Hello, SwiftUI!")
}) {
Text("SwiftUI")
.font(.title)
.foregroundColor(.black)
}
'SwiftUI' 카테고리의 다른 글
[iOS] WidgetKit (0) | 2023.02.06 |
---|---|
[iOS] swiftUI에서 UIKit 사용하기 (0) | 2023.02.06 |
SwiftUI - View의 크기를 구하는 방법 (0) | 2022.07.07 |
SwiftUI - Realm (0) | 2022.04.26 |
SwiftUI - 애니메이션 (0) | 2022.04.21 |