λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
🍎 iOS

[SwiftUI] SwiftUIλž€?

by hyebin (Helia) 2023. 3. 15.
λ°˜μ‘ν˜•

SwiftUI

  • WWDC2019μ—μ„œ λ°œν‘œν•œ ν”„λ ˆμž„μ›Œν¬
  • λͺ¨λ“  μ• ν”Œ ν”Œλž«νΌ(iOS, iPadOS, macOS, watchOS, tvOS)μ—μ„œ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ§Œλ“€ 수 있게 ν•΄μ£ΌλŠ” 개발 νŒ¨λŸ¬λ‹€μž„
  • μ΅œμ†Œν•œμ˜ μ½”λ“œ 만으둜 Swift의 μ„±λŠ₯을 μ‚¬μš©ν•˜μ—¬ λͺ¨λ“  μ• ν”Œ ν”Œλž«νΌμ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” 앱을 λ§Œλ“€ 수 μžˆλ„λ‘ λ„μ™€μ€Œ

SwiftUI 4κ°€μ§€ 원칙

  • μ„ μ–Έν˜• ν”„λ‘œκ·Έλž˜λ° 방식
    • 각 과정을 μ–΄λ–»κ²Œ μˆ˜ν–‰ν•΄μ•Ό ν• μ§€κ°€ μ•„λ‹Œ 무엇을 ν•˜κ³  싢은지λ₯Ό μ •μ˜ν•˜λŠ” 방식
    • κ°œλ°•μžκ°€ μ›ν•˜λŠ” UIλ₯Ό ν”„λ ˆμž„μ›Œν¬μ— μ„€λͺ…ν•˜λ©΄ μ„ΈλΆ€ κ΅¬ν˜„μ€ ν”„λ ˆμž„μ›Œν¬κ°€ λŒ€μ‹  처리
  • μžλ™ν™”
    • λ§Žμ€ κΈ°λŠ₯을 μžλ™μœΌλ‘œ μˆ˜ν–‰λ  수 μžˆλ„λ‘ 제곡
    • autolayout μ½”λ“œλ“€μ΄ 제거, ν™”λ©΄ μ „ν™˜κ³Ό κ΄€λ ¨λœ κΈ°λŠ₯듀도 μžλ™ν™”λ‘œ λ‹¨μˆœν•˜κ²Œ κ΅¬ν˜„ κ°€λŠ₯
  • μ‘°ν•©
    • 큰 viewλ₯Ό μž‘μ€ view둜 λ‚˜λˆ„κ±°λ‚˜, viewλ₯Ό μ‘°ν•©ν•΄ μ›ν•˜λŠ” viewλ₯Ό λ§Œλ“€μ–΄λ‚Ό 수 μžˆλ„λ‘ 지원
    • viewλ₯Ό μˆ˜μ •ν•˜κ³  μž¬μ‚¬μš© 용이
  • 일관성
    • 데이터가 λ³€κ²½λ˜λŠ” μ¦‰μ‹œ UI도 μžλ™μ‹ κ°±μ‹ λ˜λ©° 항상 일관성 μžˆλŠ” κ²°κ³Ό λ„μΆœ κ°€λŠ₯

SwiftUI κ΅¬μ„±μš”μ†Œ

  • (product name)App: μ•±μ˜ μœˆλ„μš°λ₯Ό κ΄€λ¦¬ν•˜λŠ” 파일(UIKit - sceneDelegate, AppDelegate)
  • ContentView: SwiftUI둜 ν”„λ‘œμ νŠΈλ₯Ό λ§Œλ“€μ—ˆμ„ λ•Œ 기본적으둜 μƒμ„±λ˜λŠ” κΈ°λ³Έ ν™”λ©΄ View
    • ContentView: 화면을 κ·Έλ¦¬λŠ” ꡬ쑰체
    • ContentView_Previews: Previewλ₯Ό κ·Έλ¦¬λŠ” ꡬ쑰체
  • “.”을 μ‚¬μš©ν•˜μ—¬ 속성 λ‚˜μ—΄ ⇒ modifier
  • ContentViewλŠ” bodyλΌλŠ” ν”„λ‘œνΌν‹°λ₯Ό κ°€μ§€λŠ”λ°, bodyλŠ” 단 ν•˜λ‚˜μ˜ View만 리턴
  • View의 생애주기 κ΄€λ¦¬λŠ” .onAppear, .onDisappear modifierλ₯Ό 톡해 μ‚¬μš© κ°€λŠ₯
λ°˜μ‘ν˜•

'🍎 iOS' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[SwiftUI] Property Wrappers  (0) 2024.04.04
[비동기 처리] 비동기 μ²˜λ¦¬λž€?  (0) 2023.09.18
Pinch Gesture  (0) 2023.01.13
Swipe Gesture  (0) 2023.01.12
Tap Touch  (0) 2023.01.11