swiftUI
-
App Tracking TransparencyiOS 2021. 10. 16. 10:51
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ App Tracking Transparency์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ฐ์ App Tracking Transparency๊ฐ ๋ฌด์์ธ์ง ์์๋ณด์์ฃ ! App Tracking Transparency? ์ฑ ์ถ์ ํฌ๋ช ์ฑ์ด๋ผ๊ณ ํด์ํ ์ ์์ต๋๋ค. iOS 14.5๋ถํฐ ์ ํ์์ App Tracking Transparency ํ๋ ์์ํฌ๊ฐ ์ถ๊ฐ๋์์ด์. ๊ธฐ์กด์๋ ์ฑ์์ ์ฌ์ฉ์์ IDFA(IDentifier for Advertising)์ด๋ผ ๋ถ๋ฆฌ๋ ๊ด๊ณ ID์ ์๋ฌด ์ ์ฝ์์ด ์ ๊ทผํ์ฌ ์์งํ ์ ์์์ด์. ๊ทธ๋ฐ๋ฐ ์์๋ค์ํผ ์์ฆ์ ์๋ ์ด๋ฐ ๊ฐ์ธ์ ๋ณด์ถ์ ์ ๋ฏผ๊ฐํ๋ค๋ณด๋ ์ฑ์ ์ต์ด ์คํ ์ ํด๋น ์ฑ์ด ์ถ์ ํ๋๊ฒ์ ๋ํ ํ๊ฐ๋ฅผ ์ฌ์ฉ์๊ฐ ์ ํ ํ ์ ์๊ฒ๋์์ต๋๋ค. ๋น์ฐํ ์ ํ ์ ์ฑ ..
-
SwiftUI - NotificationCenterSwiftUI 2021. 9. 19. 12:06
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ NotificationCenter๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํ๊ฒ ์ต๋๋ค๐ง๐ป๐ป UIKit์์๋ ์ ์๊ฒ ๋๋ฐ ๋์ฒด SwiftUI์์๋ ์ด๋ป๊ฒ ๋ ธํผํฐ์ผ์ด์ ์ผํฐ๋ฅผ ํ์ฉํ ๊น์? ์ ๋ง ์ด๋ฒ ํฌ์คํ ์ ๊ฐ๋จํฉ๋๋ค. ์์๊ฐ์ ์~ํ๊ณ ๋๋๋ฒ๋ฆฌ๋ ๋ ํฌ๊ฒ ๋จ๊ณ ๋ณด์ ์ผ ๋ฉ๋๋ค๐ ์, ์ฐธ๊ณ ๋ก ์ด์ ์ ํฌ์คํ ํ๋ ์คํฌ๋ฆฐ์ท ์บก์ณ/๋ นํ ๊ฐ์ง ๋ฐ ๋ฐฉ์ง์ ๋ํด UIKit์ผ๋ก ๊ตฌํํ๊ฑธ SwiftUI์ NotificationCenter๋ฅผ ํตํด ๊ตฌํํ๋ ์์ ๋ก ๋ณด๊ฒ ์ต๋๋ค๐๐ป NotificationCenter ์์ฑ import SWiftUI struct mainView: View { let screenCapturePublisher = NotificationCenter.defaul..
-
NavigationLinkSwiftUI 2021. 9. 11. 14:43
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ NavigationLink๋ฅผ ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐๐ป NavigationLink? ์ดํ ๋ค๋น๊ฒ์ด์ ๋งํฌ๋ผ ์นญํ๊ฒ ์ต๋๋ค! ๋ค๋น๊ฒ์ด์ ๋งํฌ๋ ๊ฐ๋จํฉ๋๋ค. UIKit ํ๊ฒฝ์์๋ ๋ทฐ๊ฐ ์ ํ๋๋ ๋ฐฉ์์ด ์์ฃ ? SwiftUI์์๋ ๋ค๋น๊ฒ์ด์ ๋งํฌ๋ฅผ ํตํด ๋ทฐ ์ ํ์ ํ ์ ์์ต๋๋ค. NavigationLink ์ ์ธ struct NavigationLink where Label : View, Destination : View ๋ค๋น๊ฒ์ด์ ๋งํฌ๋ ์์ ๊ฐ์ด ๋ผ๋ฒจ๊ณผ ๋ชฉ์ ์ง๋ฅผ ๊ฐ์ง๊ณ ์ ์ธํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์ ๋ผ๋ฒจ์ ์๋ฅผ๋ค์ด ๋ผ๋ฒจ์ ๋๋ฌ์ฃผ์์๋ Destination์ ๋ทฐ๋ก ์ ํ๋๋๊ฑธ ๋งํฉ๋๋ค. ๊ฐ๋จํ์ฃ ? ๊ทธ๋ผ ํ๋ฒ ์์๋ฅผ ๋ณด๊ฒ ์ต๋๋ค. ์์๋ ์ ํ ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ๊ฒ ์ต๋..
-
Overlay & ZStackSwiftUI 2021. 9. 10. 20:00
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Overlay์ ZStack์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ ์์์ผํ์ฃ ? SwiftUI๋ก ๋ทฐ๋ฅผ ๊ตฌ์ฑํ๋ค๋ณด๋ฉด Overlay์ ZStack์ด ๋น์ทํ ๊ธฐ๋ฅ์ ํด์ค๋ค๋ ์ธ์์ ๋ฐ์์ต๋๋ค. ๋์ผํ๊ฒ ๋ทฐ ์์ ๋ค๋ฅธ ์ด๋ ํ UI๋ฅผ ์น์ด์ฃผ๋๊ฒ์ด์ฃ . ๊ทธ๋ฐ๋ฐ ๋ถ๋ช ํ ๋ ๋ฐฉ์์ ์ฐจ์ด๊ฐ ์๋๋ฐ ์์๋ณด๊ธธ ๋ฏธ๋ฃจ๋ค๊ฐ ์ด์ ์ผ ์์๋ณด๊ฒ ๋์์ต๋๋ค๐ฅฒ ๊ทธ๋ผ ์ด๋ค์ ์์ ๋น์ทํ๊ณ ์ฐจ์ด๊ฐ ์๋์ง ๊ทธ๋ฆฌ๊ณ ๋ทฐ๊ฐ ์ด๋ป๊ฒ ์น์ด์ ธ ๋ณด์ด๊ฒ ๋๋์ง ์์๋ณด๊ฒ ์ต๋๋ค! Overlay ์ฐ์ ์ค๋ฒ๋ ์ด์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ์ค๋ฒ๋ ์ด๋ ํ์ฌ ๋ทฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ ๋ทฐ๋ฅผ ์น์ด์ค๋๋ค. ์ฆ ๋ฐ๋ก ์์ ๋ทฐ์ ํ์ ๋ทฐ๊ฐ ์ฐ๊ด์ฑ์ด ์๋ค๊ณ ๋ณผ ์ ์์ผ๋ฉฐ ๋ค๋ฅธ ๋ทฐ์๋ ์ํฅ์ ๋ผ์น์ง ์์ต๋๋ค. ์ฆ ์ ์ฒด์ ์ธ ๋ทฐ์ ์์๋ก ์๋ฆฌ์ก์ ๊ตฌ์ฑ๋๊ธฐ ๋ณด๋ค..
-
Composable Architecture๋ก ๋๋ค ํต์ ๊ตฌํํ๊ธฐTCA 2021. 7. 17. 15:32
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Composable Architecture์ผ๋ก ๋๋คํ ํต์ ์ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ๋ทฐ๋ SwiftUI๋ฅผ ํตํด ๊ฐ๋จํ ๊ตฌํํ์์ต๋๋ค. ์ฐ์ ๊ฐ๋ตํ ๊ธฐ๋ฅ์ ์ค๋ช ๋๋ฆฌ๊ฒ ์ต๋๋ค. Composable Architecture๋ฅผ ์ด์ฉํ์ฌ ๋ทฐ์ ์ํ๋ฅผ ์ด๋ฒคํธ ํ๋ฆ์ ๋ฐ๋ผ ๋ค๋ฃฐ ์ ์๋ ์์ฃผ ๊ฐ๋จํ ์์ ๋ก ํต์ ์ GET์ ID ์ธ๋ฑ์ค๋ฅผ ๋๊ฒจ ํต์ ํ ๋ ํด๋น ์ธ๋ฑ์ค๋ฅผ ๋๋คํ๊ฒ ๋ฝ๊ณ ํต์ ๋ฐ ํ์ฑํ ํ ID์ ํ์ดํ์ UI์ 3์ด๋ง๋ค ์๋ ๊ฐฑ์ ๋๋๋ก ๋ทฐ๋ฅผ ์ ๋ฐ์ดํธ ํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง๋๋ค๐ง๐ป๐ป ๋ํ ์๋/์๋ ๋ณ๊ฒฝ ๋ฒํผ์ ๋์ด ํด๋น ์กฐ๊ฑด์ ๋ฐ๋ผ ํต์ ๋๋๋ก ๊ตฌํํฉ๋๋ค. (์ด์ ์ ReactorKit์ผ๋ก ๋๋ค ํต์ ์ ๊ตฌํํ ์คํ๊ณผ ๋์ผํฉ๋๋ค.) ์ฌ๊ธฐ ํฌ์คํ ์์๋ ํ์ ํ์ผ์ ๋ํ ๊ตฌํ๋ค๋ง..
-
Composable ArchitectureTCA 2021. 6. 11. 13:41
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Composable Architecture์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ ์์๋ณด๊ฒ ๋์๋์ง? ์์ผ๋ก๋ SwiftUI์ ์ฌ์ฉ์ ์ด๋ฒคํธ๋ฅผ ํตํ ๋ทฐ์ ์ ๋ฐ์ดํธ ๋ฑ ์ํ ๊ฐ์ ์ฒ๋ฆฌํ๋ ๋ฐ์ํ์ Combine์ด ๋ง์ด ์ฌ์ฉ๋๊ฒ ๋ ๊ฑฐ๋ผ ์๊ฐํฉ๋๋ค. ์ด์ ์กฐ๊ธ ๋ SwiftUI ํ๋ ์์ํฌ์ ์ ํฉํ๊ณ ์ํ๋ฅผ ๊ด๋ฆฌํจ์ ๋ฐ๋ผ ๋ทฐ์ ๋ณํ๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ํ ์ ์๋ ์ํคํ ์ณ์ด๊ธฐ์ ์ค์ํฉ๋๋ค๐๐ป Composable Architecture? ์ปดํฌ์ ๋ธ ์ํคํ ์ณ? ์ฌ์ ์ ์ผ๋ก ์ปดํฌ์ ๋ธ์ ๊ตฌ์กฐ๋ ๊ตฌ์ฑ์ด๋ผ๋ ๋ป์ ๊ฐ์ง๋๋ค. ์ด๋ฅผ ํ ๋๋ก ํด๋น ์ํคํ ์ณ ํจํด์ ํด์ํ์๋ฉด ํฐ ๊ธฐ๋ฅ๋ค์ ๋ถ๋ฆฌํด ๊ตฌ์กฐ์ ์ธ ๋ชจ๋๋ก ๋๋๊ณ ์ด๋ฅผ ์ด์ฉํ๋๊ฒ์ด๋ผ ํ๋จ๋ฉ๋๋ค. ์๋์ ๊ฐ์ด ์ปดํฌ์ ๋ธ ์ํคํ ์ณ๋ฅผ ์ ์ํด๋ณผ ์ ์์ต๋..
-
CombineCombine 2021. 6. 9. 16:27
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Combine์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป Combine์ ์๊ธฐ์ ! MVVM ํจํด์ ๋ฐ๋ฅด๊ธฐ ์ํด ์คํ ๋ฆฌ๋ณด๋ ์์ ๋์ SwiftUI๋ฅผ ์ฌ์ฉํ๋ฉด์ RxSwift๋ก ๊ตฌํ์ ํด์ฃผ์๋๋ฐ์. WWDC 2019 ์ดํ Combine์ด ๋ํ๋ฌ์ต๋๋ค. Combine์ด ๋ฌด์์ด๋? ์ฝ๊ฒ ์๊ฐํ๋ฉด RxSwift๋ ์จ๋ํํฐ ํ๋ ์์ํฌ์ด๊ณ Combine์ ์ ํ์์ RxSwift์ ์ญํ ์ ์ํด ๋ง๋ ํผ์คํธํํฐ ํ๋ ์์ํฌ์ ๋๋ค. Combine์ ์ ์ฐ๋? RxSwift๋ฅผ ์ฐ๋ ์ด์ ์ ์์ถฉํ๋ค๊ณ ๋ณด๋๋ฐ์. ๋น๋๊ธฐ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ํ๊ธฐ ์ํจ์ ๋๋ค. ๊ธฐ์กด์ ๋น๋๊ธฐ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ์ํด delegate, GCD, notification center, ์ฝ๋ฐฑ ํด๋ก์ ๋ฑ์ ์ฌ์ฉํ์ต๋๋ค. ์ด๋ฌํ ๋ฐฉ์์ ๋ฌธ..
-
SwiftUISwiftUI 2021. 4. 14. 22:55
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ค๋์ ํฌ์คํ ์ SwiftUI์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป SwiftUI? - ์ค์ํํธ ์ธ์ด๋ก ๋ชจ๋ ํ๋ซํผ์์ ์ฑ์ ๋ํ UI์ ๋์์ ์ ์ธํด์ฃผ๋ ํ๋ ์์ํฌ - ์ ๊ทผ์ฑ ๋ฐ ์ง์ญํ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ ์๋์ผ๋ก ์ง์ํด์ค (๋คํฌ๋ชจ๋, ์ ๋์ ๊ธ์ ํฌ๊ธฐ ์กฐ์ ๋ฑ) - UIKit, AppKit, WatchKit ํ๋ ์์ํฌ ๊ฐ์ฒด์ ํตํฉํด ํ๋ซํผ ๋ณ ๋ ๋ง์ ๊ธฐ๋ฅ์ ํ์ฉํ ์ ์์ - ์บ๋ฒ์ค์ ์ฝ๋๊ฐ ๋๊ธฐํ๋์ด MVVM ์ํคํ ์ณ ํจํด์ ์ ํฉ - Xcode12, iOS13 ์ด์๋ถํฐ ์ง์ ๊ฐ๋ฅ - ๋ทฐ ํ๋กํ ์ฝ์ ์ฑํํ๊ณ ๋ฐ๋๋ฅผ ๊ตฌํํด์ฃผ์ด ๋ทฐ๋ฅผ ์ฌ์ฉํ๊ฒํจ - ๊ณต๊ฐ์ ๊ฐ๋ ์ผ๋ก ๋ทฐ๋ฅผ ๋ง๋ค๋ฉด ์ค์๋ถํฐ ์ฐจ์งํ๊ฒ๋จ (์๋์ ์ด ์๋) SwiftUI ์ฅ์ ? - ํ๋ฒ์ ๊ฐ๋ฐ๋ก ๋ชจ๋ ํ๋ซํผ์์ ๋์์ด ๊ฐ๋ฅํ ์ฑ ..