궁금한 내용을 검색해보세요!
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
서근 개발노트
티스토리에 팔로잉
SWIFTUI

SwiftUI 튜토리얼 모음

서근
QUOTE THE DAY

-
Written by SeogunSEOGUN

반응형

# SwiftUI를 지금 배워야 하나요?

SwiftUIiOS 13, macOS 10.15, tvOS 13watchOS 6에서 실행되기 때문에 다릅니다. 언급된 OS 만 대상으로 하는 새 앱에서 작업하는 경우 '네'라고 대답합니다. OS 버전을 제어할 수 없는 클라이언트 프로젝트에서 일자리를 찾거나 작업할 계획이라면 SwiftUI로 전환하기 전에 1 ~ 2 년을 기다리는 것이 좋습니다. 대부분의 클라이언트 작업은 가능한 한 많은 사용자를 지원하기를 원하기 때문에 iOS N-1, N-2 을 지원하는 앱에서 작업해야 합니다. 따라서 SwiftUI를 적극적으로 활용하는 시기는 1년 정도 후 가 될 것입니다.

# UIKit을 함께 배워야 하나요?

네! UIKit은 오랫동안 iOS에서 중요한 부분이 됩니다. 현재 SwiftUI 2.0에는 많은 기능이 누락되어있고 SwiftUI가 활발히 사용된다고 해도 UIKit을 사용해야 하는 경우가 많이 생길 것입니다.

# SwiftUI가 UIKit을 대체할까요?

지금은 아니지만 미래에는 그럴 수 있습니다. 현재 Apple에서 SwiftUI를 적극적으로 밀고 있고 업데이트를 하고 있기 때문에 아무 좋은 프레임워크가 될 것입니다. 하지만 UIKitSwiftUI와 함께 오랫동안 공존할것이고 SwiftUIUIKit을 완벽히 대체하려면 몇 년은 걸릴 것입니다.

# SwiftUI에서 뷰 컨트롤러는 어디에 있나요?

이제 SwiftUI에서 View Controller는 사용되지 않습니다. 그 대체제로는 새로운 프레임워크인 Combine이 있습니다. 이 CombineUIViewController을 대체합니다.

# SwiftUI를 사용하기 위한 최소 조건

TIP
 
 

2022년 6월 기준 iOS 16 BetaSwiftUI 4.0, Xcode14 Beta를 출시하였기 때문에 SwiftUI 3.0에서는 더 이상 사용할 수 없는 기능과 새롭게 추가된 기능이 다수 생겼습니다.

 

 

2022 WWDC SwiftUI의 새로운 기능! [ iOS 16, Xcode 14 ]

본 게시글은 Anupam Chugh 님의 게시글을 번역 / 의역 한 자료 입니다. 목차 2022 WWDC 2022 WWDC 이벤트가 6월 7일 오전 2시에 시작했습니다. 이번 WWDC에서도 마찬가지로 SwiftUI 에 다양한 기능이 추가되었

seons-dev.tistory.com

Controls

Alert
ActionSheet

- Animation #1
Animation #2

Animation #3

- Button / onTapGesture

DisclosureGroup

Divider

- EditButton (toolbar, onDelete, onMove)

- Form (disabled / toggle / section)

Group / GroupBox

Gesture

List (listStyle, toolbar, onDelete, onMove)

- Dynamic List using Identifiable

Link

LayoutPriority() - 레이아웃 우선 순위

Lottie Animation(애니메이션)

NavigationView / NavigationLink

ProgressView

Slider
Stepper

ScrollView
Sheet / FullScreenCover (@Environment / presentationMode)
Section

SecureField

- Text

- TextField (textCase, hideKeyboard)
- TextEditor

TabView / TabViewStyle

Toggle (toggleStyle)

- Transition

Layout

AspectRatio / GeometryReader / GeometryProxy

FixedSize

HStack

LazyV(H)Stack
LazyV(H)Grid

List를 이용해서 Grid형식 만들기

ZStack (Spacer, offset, zIndex)
Shape(Circle, Rectangle, Capsule, RoundedRectangle) / Stack 조합
Spacer / frame / minLength

- View LayOut (HStack / VStack / ZStack)

- OutlineGroup

- ScrollViewReader

Picker Controls

- Picker
- DataPicker
- ColorPicker

Others

- UIKit와 SwiftUI 구성요소 비교

- Color / Gradient (Linear, Angular, Radial) - fill / strokeBorder

ForEach

Path

Image

- AsyncImage

Label

Map View / MapView project

Menu

- Mask

- Overlay / background / Alignment
OnAppear()

- PreView

Redacted (콘텐츠 모자이크)

Trim (with timer)

- Treads ( background Treads / Queue )

VideoPlayer- WebView

- Sheet / FullScreenCover / Transition / Animation 비교

- Markups과 Documentation 사용법

- Typealias

- App icon 등록

Passing the Data 

- @State, @ObservedObject / Struct를 Class로
- @State & Binding : 클릭시 배경화면 변경
- @State & Binding : 간단한 날씨앱 및 다크모드 라이트모드

- @Binding #1
- @Binding #2
- @Binding #3
- @EnvironmentObject - 뷰간에 데이터 공유

- @EnvironmentValues

- @Environment 프로퍼티 래퍼

- @Environment로 DarkMode 구현

- @escaping

@FetchRequest 속성 래퍼 [ core Data ]

@Namespace / matchedGeometryEffect() 애니메이션 동기화

- @ObservedObject #1
- @ObservedObject #2
- UserDefault

- 삼항 연산자 / IF

- if let 과 guard let

- @StateObject

 

Widget

- ContainerRelativeShape

Project

- 간단한 프로젝트 리스트

 

 

 


잘못된 내용이 있으면 언제든 피드백 부탁드립니다.


서근


위처럼 이미지 와 함께 댓글을 작성할 수 있습니다.