Whatโs new? ๐
์ ํ์ ์ฐ๋ก ํ์ฌ์ธ ์ธ๊ณ ๊ฐ๋ฐ์ ์ปจํผ๋ฐ์ค(WWDC) 2019 ์ผ์ ์ด 2019๋
6์ 3์ผ๋ถํฐ 7์ผ๊น์ง ๋งคํค๋๋ฆฌ ์ปจ๋ฒค์
์ผํฐ(McEnery Convention Center)
์์ ์ฑํฉ๋ฆฌ์ ๋ง๋ฌด๋ฆฌ๋์์ต๋๋ค. ์ด๋ฒ ๋ฐํ์์ ์๊ฐ๋ ์๋ก์ด ๋ง์ ๊ธฐ๋ฅ๋ค๊ณผ ์ ํ๋ค์ ๋ฒ์จ๋ถํฐ ์ฌ ๊ฐ์์ ๊ธฐ๋ค๋ ค์ง๊ฒ ๋ง๋๋ ์ค์ด๋ค์. WWDC19์์ ์๊ฐ๋ ์ ์ ํ๊ณผ iOS13
์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ๋ค์ ๊ฐ๋ฐ์ ๋ฟ๋ง์๋๋ผ ์ผ๋ฐ iOS ์ ์ ๋ค์๊ฒ๋ ๋ง์ ํธ์์ ๋ฐ๊ณ ์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์๊ฐ๋ ๋คํฌ๋ชจ๋, ์ฌ์ง์ฒฉ ์๊ณ ๋ฆฌ์ฆ ๊ฐ์ , ์ ํ ์์ด๋ ๋ก๊ทธ์ธ ์ง์์ ์ฌ์ฉ์๋ค์๊ฒ๋ ํธํ ๊ธฐ๋ฅ์ด ๋๊ฒ ์ง๋ง, ๊ฐ๋ฐ์๋ค์ ์๋ก์ด OS์์ ๊ฐ๋ฐ ์ค์ธ ์ฑ์ด ์ ๋์๊ฐ๋์ง ํฌ๋์๋ ๋์ง ์๋์ง ํ ์คํธ๋ ํด์ผ ํ๊ณ ์ง์๋๋ ์๋ก์ด ๊ธฐ๋ฅ์ ๋ฏธ๋ฆฌ ์ตํ์ผ ํ๊ธฐ ๋๋ฌธ์ ์ฆ๊ฑฐ์ ๋ฐ ๊ณ ํต๋ฐ์ ์๊ฐ์ ๋ณด๋ผ ๊ฒ์ด๋ผ๊ณ ๋ฏฟ์ต๋๋ค.
๊ทธ๋์ ๊ธฐ์ฌ๋ฅผ ํตํด ์ ํ ์ ์๋ ๋ด์ฉ ์ด์ธ์๋ ๊ฐ๋ฐ์ ๊ด์ ์์ ๋ฐ๋ผ๋ณธ iOS13์ ์ด๋ ํ ๋ณํ๊ฐ ์๋์ง ์์ ๋ง ์์ ์ ๋ฆฌํด์ ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค.
Signin with AppleId
๋ชจ๋ฐ์ผ ์ฑ์์๋ ๊ฐํธ ๋ก๊ทธ์ธ์ด ์ค์ํ ๊ธฐ๋ฅ ์ค ํ ๊ฐ์ง๋ก ์๋ฆฌ๋ฅผ ์ก์๋๋ฐ์, ์๋ฅผ ๋ค์๋ฉด ์์ ๋ก๊ทธ์ธ ์๋น์ค๋ค ์ค ํ์ด์ค๋ถ, ๊ตฌ๊ธ, ์นด์นด์ค, ๋ค์ด๋ฒ ๋ก๊ทธ์ธ ๋ฑ์ ๊ผฝ์ ์ ์์ต๋๋ค. ์ฌ์ฉ์๋ ๊ธฐ์กด์ ์ด์ฉํ๊ณ ์๋ ์๋น์ค์ธ ์์ด๋ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ก ์ ๊ทผํ๊ณ ์ ํ๋ ์๋น์ค์ ๊ฐํธํ๊ฒ ๊ฐ์ ์ ํ ์ ์๋ ์ข์ ๊ธฐ๋ฅ์ธ๋ฐ ์ต๊ทผ ๊ฐ์ธ์ ๋ณด๋ณดํธ ์ด์๊ฐ ์ฐ์ผ ๋ฐ์ํ๋ฉด์ ์ฌ์ฉ์๋ค์ด ์์ ๋ก๊ทธ์ธ์ ๋ํ ๋ถ์ ์ด ์๊ธฐ๊ณ ์๋ ๊ฒ๋ ์ฌ์ค์ ๋๋ค
์ด๋ฒ WWDC19
์์๋ ํด๋น ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ์ํด ์ผ์ฌ ์ฐจ๊ฒ Sign in With Apple
์ด๋ผ๋ ์๋น์ค๋ฅผ ์๋ก ์คํํ์์ต๋๋ค.
์ฌ์ฉ์๋ ๋ณธ์ธ์ด ์์ ํ ์ ํ ์์ด๋๋ฅผ ๊ฐ์ง๊ณ ๊ธฐ์กด์ ์ฌ์ฉํ๋ ์์
๋ก๊ทธ์ธ๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ด์ฉ์ ํ ์ ์์ต๋๋ค.
์๋ง ์ฌ์ฉ์ iOS ๊ธฐ๊ธฐ๊ฐ ์๋์ด๋ ๊ฐ๋ฅ์ ํ๊ฒ ์ง๋ง iOS
๋ฅผ ์ง์ํ๋ ๊ธฐ๊ธฐ์์๋ FaceID
, TouchID
๋ฅผ ํตํ ๋ก๊ทธ์ธ์ด ๊ฐ๋ฅํด์ง๊ธฐ ๋๋ฌธ์
์ ๋ง ํธํด์ง๊ฑฐ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํ์ง๋ง ๋จ์ ๋ ์์ต๋๋ค.
์์ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ด ์๋ค๋ฉด ๋ฐ๋์ Apple ๋ก๊ทธ์ธ์ ์ง์ํด์ผ ํจ ๐ญ
๋ง์ฝ ์์
์์ด๋ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ด ๋ค์ด ์๋ ์ฑ์ด๋ผ๋ฉด ๋ฐ๋์ Apple Login
์ ์ง์ํด์ผ ํฉ๋๋ค. ์ด๋ฒ ์๋ก ์
๋ฐ์ดํธ๋ ์ ์ฑ
์ ๋ณด๋ฉด ํด๋น ๊ธฐ๋ฅ์ ์ง์ํ์ง ์์ผ๋ฉด ๋ฆฌ์ ์ฌ์ ์ ํด๋นํ๋ค๊ณ ์ ํ์์ด์. ์ด๋ฒ iOS13
์
๋ฐ์ดํธ ์ดํ ๋น ๋ฅด๊ฒ ์ ํ ๋ก๊ทธ์ธ์ ์ ์ ์จ์ ๋์ด๊ธฐ ์ํด ์ ์ฑ
์ ์์ ํ ๊ฒ ๊ฐ์ ๋ณด์ด๋ค์. ํด๋น ๊ธฐ๋ฅ์ด ์๋ ์ฑ์ ๊ฐ๋ฐํ์๋ ๋ถ๋ค์ด ์๋ค๋ฉด ์ฒดํฌ ํ๋ฒ ํด๋ณด์
์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค
https://developer.apple.com/sign-in-with-apple/get-started/
Sign in with apple
์ ๋ํด ๋ ๋ง์ ์ ๋ณด๊ฐ ๊ถ๊ธํ์๋ค๋ฉด ์ด๊ณณ์ ํตํด์ ํ์ธํ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์๋กญ๊ฒ ์๊ฐ๋ SwiftUI ๐
์ด๋ฒ WWDC19
์์ ๊ฐ์ฅ ๋ง์ ๊ด์ฌ์ ๋ฐ๊ณ ์๋ ๊ฒ์ ๋ฐ๋ก SwiftUI
๋ผ๊ณ ํด๋ ๊ณผ์ธ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ ์ด์ ๋ ๊ธฐ์กด์ ์ฌ์ฉํ๋ Storyboard๋ฅผ ๋ฒ๋ฆฌ๊ณ ์๋ก์ด ๋ฐฉ์์ผ๋ก UI๋ฅผ ๋ง๋ค ์ ์๋ SwiftUI
๋ฅผ ์๋กญ๊ฒ ์๊ฐํ๊ธฐ ๋๋ฌธ์
๋๋ค.
์๋กญ๊ฒ ์๊ฐ๋ SwiftUI
๋ ์ด๋ค ์์ผ๋ก ์๋์ ํ๊ณ ๊ธฐ์กด์ UIStoryboard
์๋ ์ด๋ค ์์ผ๋ก ๋ค๋ฅธ์ง ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค.
SwiftUI๋ ๊ธฐ์กด์ ๋ฐํ ๋์๋ Flutter
, React
์ ๋น์ทํ ๋ฐฉ์์ผ๋ก UI๋ฅผ ๊ทธ๋ฆด ์ ์๋๋ก ๋ง๋ค์ด์ง ๊ฒ ๊ฐ์ ๋๋์ ๋ฐ์์ต๋๋ค.
struct ContentView: View {
var body: some View {
Text("Hello World")
}
}
์์ ์ฝ๋์ฒ๋ผ ํํ๋ก ๋ทฐ๋ฅผ ๊ทธ๋ฆฌ๋ ์ฝ๋๋ฅผ ์ถ๊ฐ ํ ์ ์์ผ๋ฉฐ, View์์ ์๋ body๋ฅผ ํตํด์ ํ๋ฉด์ ๊ตฌ์ฑํฉ๋๋ค.
๊ธฐ์กด ๋ฐฉ์๊ณผ๋ ๋ค๋ฅด๊ฒ UI๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ด ๋ฌ๋ผ์ ธ์ ์๋กญ๊ฒ ์ตํ์ผ ํ๋ค๋ ๋ถ๋ด์ ์์ง๋ง, ์์ง ์ง์ ๋ฒ์ ์ด ์ต์ iOS13
๊น์ง๋ ์ฌ๋ผ๊ฐ์ผ
๋ง์ด ํ์ฑํ ๋ ๊ฒ ๊ฐ์ต๋๋ค (์ต์ 2๋
์ดํ์๋ ๋์ธ๊ฐ ๋๊ฒ ์ฃ ๐)
SwitUI
๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด AppDelegate
์ด์ธ์๋ SceneDelegate
ํ์ผ์ด ํ๋ ๋ ์ถ๊ฐ๋ฉ๋๋ค.
ํ๋ฉด์ ๊ด๋ฆฌํด์ฃผ๋ ์๋ช
์ฃผ๊ธฐ๊ฐ ํ๋ ์๊ฒผ์ต๋๋ค ์์ธํ ๊ฒ์ SwitUI
ํํ ๋ฆฌ์ผ ํฌ์คํ
์์ ๋ณ๋๋ก ์๊ฐํด๋๋ฆฌ๋๋ก ํ๊ฒ ์ต๋๋ค.
๋์ ๋๋ ์ ์ ์ค์๊ฐ์ผ๋ก UI๋ฅผ ๊ทธ๋ฆด ์ ์๊ณ ํ๋ฉด์ Drag & Drop์ผ๋ก ๊ทธ๋ฆฐ ํ๋ฉด์ด ์ฝ๋๋ก๋ ๋ฐ์์ด ๋๋ค๋ ์ ์ ๋๋ค. UI๋ฅผ ๊ทธ๋ฆฌ๊ธฐ๊ฐ ์ฌ์์ง ๋งํผ ์์ผ๋ก๋ ํ๋ก ํธ์ค๋๋ง ์ ๋ฌธ์ ์ผ๋ก ํ๋ iOS ๊ฐ๋ฐ์๊ฐ ๋ฑ์ฅํ ๊ฒ ๊ฐ์ ๋๋์ด ๋๋ ๋ถ๋ถ์ ๋๋ค ์ด์ธ์๋ ์๋กญ๊ฒ ์ถ๊ฐ๋๋ฉด์ ๋ง์ ๊ฐ๋ฐ์๋ค์ด ๊ถ๊ธํดํ๋ SwitUI์ ๋ํ์ ์ธ ์ง๋ฌธ 3๊ฐ์ง๋ฅผ ์ ๋ฆฌํด๋ณด์์ต๋๋ค
SwiftUI์ ๋ํด ๊ฐ์ฅ ๊ถ๊ธํดํ๋ ๋ํ์ ์ธ ์ง๋ฌธ 3๊ฐ์ง ๐ค
- ๐ฑ
SwiftUI
๋iOS13
,macOS10.15
์ด์ ๋ฒ์ ์์๋ง ๋์ํฉ๋๋ค. - ๐
SwiftUI
๋AutoLayout
์ด ์์ต๋๋ค, ๋์H/V Stack
๊ณผ ๊ฐ์ด ๊ทธ๋ฃน ์ง์ด ์ฌ์ฉํฉ๋๋คAutolayout Free)
- ๐จ๐ปโ๐ป
UIStoryboard
๋ก ์์ฑ๋ ์ฝ๋ ๋ชจ๋SwiftUI
๋ก ํฌํ ์ด ๊ฐ๋ฅํฉ๋๋ค. - ๐๐ป
UIHostingController
์ ์ด์ฉํด์UIKit
๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค.
SwiftUI๋ฅผ ์ข ๋ ์์ธํ ์๊ณ ์ถ๋ค๋ฉด? ๐
์๋กญ๊ฒ ๋ฐํ๋ SwiftUI
์ ๋ํ ๊ด์ฌ์ด ๋จ๊ฑฐ์ด๋งํผ ๋ง์ ๋ฅ๋ ฅ์ ๋ถ๋ค๊ป์ ํํ ๋ฆฌ์ผ์ ๋ง๋ค์ด์ ๊ณต์ ๋ฅผ ํด์ฃผ๊ณ ๊ณ์ญ๋๋ค
๊ฐ์ฅ ๋จผ์ ์ดํด๋ด์ผ ํ ๊ฒ์ SwiftUI
์ ์ ํ ๊ณต์ ์ธ์
๋น๋์ค์
๋๋ค
์ ํ ๊ณต์ ๋น๋์ค ์ธ์ ๋งํฌ
- Introducing SwiftUI: Building Your First App
- Integrating SwiftUI
- Data Flow Through SwiftUI
- Building Custom Views With SwiftUI
- wwdc2019-video-sessions
์ ์ฉํ ์ํ ํ๋ก์ ํธ ๐งณ
Combine.framework ๐ง
์ด๋ฒ์ ์๋กญ๊ฒ ์ถ๊ฐ๋ combine.framework
๋ ๊ธฐ์กด์ iOS
๊ฐ๋ฐ์๋ค์๊ฒ๋ ์ต์ํ๋ RxSwift
์ ๋ฎ์ ๋ถ๋ถ์ด ๋๋ฌด ๋ง์ต๋๋ค.
์คํธ๋ฆผ์ ๋ค๋ฃจ๋ ๋ฐฉ์์ด๊ธฐ๋ ํ๊ณ ๊ธฐ์กด RxSwift
์์ ์ง์ํ๋ ์คํผ๋ ์ดํฐ๋ค์ ๋น์ทํ๊ฒ ์ฌ์ฉํ ์ ์์ด ๋น๊ต๋ฅผ ํด๋ณด๊ณ ์ ํ๋๋ฐ
์ด๋ฏธ ๋ฅ๋ ฅ์๊ฐ ํด๋์ ํ๋ฅญํ ๋ธ๋ก๊ทธ ๊ธ ๋งํฌ๊ฐ ์์ด ํด๋น ๋งํฌ๋ก ๋์ฒดํฉ๋๋ค.
https://medium.com/gett-engineering/rxswift-to-apples-combine-cheat-sheet-e9ce32b14c5b
๊ทธ ์ธ์๋ iOS13์์ ์ถ๊ฐ๋ ๋ด์ฉ
- SwiftUI
- PencilKit
- RealityKit
- BackgroundTasks
- Combine (RxSwift)
- QuickLookThumbnailing
- Create ML
- Core Audio Types
- Core Haptics
- SoundAnalysis
- VisionKit
- Maps Webs Snapshots
- LinkPresentation
- Apple CryptoKit
- IOUSBHost
- Logging
- MetricKit
- NetworkingDriverKit
- DriverKit
- EndpointSecurity
- ExecutionPolicy
- SystemExtensions
- USBDriverKit
- USBSerialDriverKit
- HIDDriverKit
- WiFi
๋ง์น๋ฉฐ โ๐ป
์ด๋ฒ WWDC19
์์ ๋ฐํ๋ iOS13
์ ๊ฐ๋ฐ์๋ค์๊ฒ ์ ๋ฌผ์ด์ ์๋ก์ด ์์ ๋ฅผ ์๊ฒจ์ค ์
๋ฐ์ดํธ๊ฐ ๋์์ต๋๋ค.
์์ผ๋ก IOS
๊ฐ ์ด๋ป๊ฒ ์
๋ฐ์ดํธ๊ฐ ๋๊ณ ์๋ก์ด SwiftUI
๋ฅผ ํ์ฉํ ์๋ก์ด ํ๋ ์์ํฌ๋ค์ด ๋์ฌ์ง ๊ธฐ๋๊ฐ ๋ฉ๋๋ค
ํน์๋ ์ค๋ช
์ด ํ๋ ธ๊ฑฐ๋ ๋ด์ฉ์ด ๋ถ์กฑํ๋ค ์ถ์ผ์๋ฉด ์๋์ ๋๊ธ ๊ธฐ๋ฅ์ ์ด์ฉํด ๋จ๊ฒจ์ฃผ์ธ์ ๊ฐ์ฌํฉ๋๋ค.