iOS/SwiftUI

[SwiftUI] SwiftUI 알아보기

HarryJeonn 2022. 4. 21. 22:44

SwiftUI 알아보기

슬슬 SwiftUI를 사용해봐야겠다고 생각이 들었다.

그래서 프로젝트를 만들기전에 먼저 Storyboard와 어떤 차이점을 가지고 있는지 한번 알아보려고 한다.

SwiftUI?

SwiftUI는 최소한의 코드만으로 Swift의 성능을 사용하여 모든 Apple 플랫폼에서 사용할 수 있는 멋진 앱을 만들 수 있도록 도와줍니다. SwiftUI로 어떤 Apple 기기에서나 단 하나의 도구 및 API 세트를 사용하여 사용자에게 더 나은 경험을 제공할 수 있습니다.

하나의 도구 및 API 세트를 사용하여 모든 애플 기기의 사용자 인터페이스를 만들 수 있게 해준다.

선언적 구문을 사용한다.

// Apple 소개 코드
import SwiftUI

struct Content: View {
	@state var model = Themes.listModel
	
	var body: some View {
			List(model.items, action: model.selectItem) { item in
				Image(item.image)
				VStack(alignment: .leading) {
					Text(item.title)
					Text(item.subtitle)
						.color(.gray)
			}
		}
	}
}

SwiftUI vs Storyboard

Storyboard

  1. 초보자도 배우기 쉽다.
  2. 코드를 작성하지 않고도 프로토타입의 앱을 만들 수 있다.
  3. 라이브러리에서 다양한 요소들을 드래그 앤 드랍으로 사용할 수 있다.
  4. 커뮤니티 지원이 활성화 되어있다.
  5. Storyboard의 코드는 xml 형식이기 때문에 코드를 완전히 이해하고 Merge Conflict를 해결하는 것이 매우매우 어렵다
  6. AutoLayout에 대한 개념을 알고 있어야 한다.
  7. 시간이 지날수록 Storyboard의 사이즈는 급격하게 늘어난다.
  8. 유지보수가 어렵다.

SwiftUI

  1. 여러 iOS 플랫폼 앱을 위한 단일 프레임워크이다.
  2. 자동 라이브 미리 보기 옵션을 제공한다.
  3. AutoLayout 문제가 없다.
  4. 코드가 간단하고 깨끗하다.
  5. View 재사용이 용이하다.
  6. UIKit과 SwiftUI 를 혼합해서 사용 가능하다.
  7. iOS 13, Xcode 11 부터 지원 가능해서 낮은 버전의 앱을 빌드할 수 없다.
  8. 새로운 개발 패러다임이기 때문에 커뮤니티 지원이 적다.

🤔

현재 많은 개발자들이 Storyboard와 UIKit을 사용하여 개발을 하고 있을 것이다.

나도 Storyboard만 사용했고 SwiftUI를 사용하는 프로젝트를 경험해본적이 없다.

두 방식에 대한 여러가지 장단점이 있겠지만, 유지보수와 협업이 용이하다는 점에서 SwiftUI가 굉장히 매력적으로 느껴진다.

또 MVC패턴에서 MVVM패턴으로 개발 패턴을 바꿔보려고 하는 중인데 Storyboard 보단 SwiftUI가 좀 더 맞는 것 같아서 이번 프로젝트에서는 SwiftUI를 선택해야겠다.

결국엔 모두 Storyboard의 단점을 보완한 SwiftUI를 사용할 것이다.

이미 현업에 계시는 분들이라면 기존의 프로젝트를 위해 Storyboard 방식을 사용하고 계시겠지만 나중에 시간이 지날수록 Storyboard보다 SwiftUI를 많이 사용할 것이다.

새롭게 프로젝트를 생성하시는 분이나 이제 막 iOS 개발에 입문하시는 분들이라면 SwiftUI를 사용하는 것도 좋다고 생각한다.

다만 개발에 입문하시는 분이라면 자료가 적은 것은 감안하셔야 할 것 같다.

참고사이트

https://developer.apple.com/kr/xcode/swiftui/

 

SwiftUI개요 - Xcode - Apple Developer

SwiftUI는 Swift의 성능을 바탕으로 모든 Apple 플랫폼에서 사용자 인터페이스를 구축할 수 있는 혁신적이고 간소화된 방법입니다.

developer.apple.com

https://medium.com/technology-nineleaps/swift-ui-or-storyboard-675ff2b40829

 

Swift UI or StoryBoard??

Hi Readers… Today I’m here with a new genre of technical writing, ‘Comparison blogs’. Presenting the: ‘This or that series’. This is going…

medium.com

https://post.naver.com/viewer/postView.nhn?volumeNo=22911266&memberNo=3689364 

 

스위프트UI는 무엇인가? 스토리보드와 무엇이 다른가?

[BY Hohyeon Moon] 애플의 이번 WWDC 19에서는 예상대로 각 운영체제(iOS, iPadOS, macOS, watchOS, tvOS...

m.post.naver.com

https://velog.io/@opaswx1/SwiftWebView-%EB%A7%8C%EB%93%A4%EA%B8%B0

 

SwiftUI? Storyboard?

😁SwiftUI 와 Storyboard의 Interface 차이부터 알아보자. SwiftUI는 모든 애플 플랫폼에서 사용자 인터페이스를 만들게 해주는 새로운 개발 패러다임이다. 쉽게 말해서 , 하나의 도구 및 API로 모든 애플

velog.io