ios
-
YouTubePlayerKit์ ํ์ฉํ ์ผ์ธ ๊ตฌํํ๊ธฐLibrary 2024. 8. 1. 18:44
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ YouTubePlayerKit์ด๋ผ๋ ์คํ์์ค๋ฅผ ์ด์ฉํด ์ ํฌ๋ธ์ ์ผ์ธ ๊ธฐ๋ฅ์ ๊ตฌํํด๋ณด๋ ค ํฉ๋๋ค ๐๐ป ์ด๋๊น์ง๋ ์ด๋ฒ์๋ ํ์ต ๋ชฉ์ ๋ณด๋ค๋ ์์ ์คํ ์์ค๋ฅผ ํ์ฉํด์ ๊ธฐ๋ฅ ๊ตฌํ์ ์ด์ ์ด ์์ต๋๋ค ๐จ๊ทธ๋ ๊ธฐ์, ํฌ๊ฒ ๊ฐ์ด ํ์ตํ๋ค๋ ๋๋๋ณด๋ค ์ด๋ฐ ์ฝ๋๋ก ์ผ์ธ ๋ฅผ ๊ตฌํํ ์ ์๊ตฌ๋ํ๊ณ ๋๊ทธ๋ฝ๊ฒ ๋ด์ฃผ์๋ฉด ์ข์๊ฒ ๊ฐ์์ ใ ใ YouTubePlayerKit?์ฐ์ YouTubePlayerKit์ด๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ด๋ค๊ฒ์ด๊ณ ์ ์จ๋ณด๋์ง ์ค์ํ๊ฒ ์ฃ ?์ ํฌ๋ธ์ ์์์ด๋ ์ผ์ธ ๋ฅผ iOS ์ฑ์์ ๋์์ผ ํ๋ค๋ฉด ์ด๋ป๊ฒ ํด๋ณด์ค๊ฒ ๊ฐ๋์? ์์ฒด AVPlayer๋ฅผ ํ์ฉํ๋ค? WKWebView๋ฅผ ํ์ฉํ๋ค? ๋ณดํต ๋ง์ด๋ค ์์ ๊ตฌํ์ ์ํด์๋ AVPlayer ์์ฒด ํ๋ ์ด์ด๋ฅผ ์๊ฐํ์คํ ๋ฐ์.์ด ๋ฐฉ๋ฒ์ผ..
-
Enhance your UI animations and transitions (feat. WWDC 2024)SwiftUI 2024. 7. 29. 18:33
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ WWDC 2024์์ ์๊ฐ๋ UI ์ ๋๋ฉ์ด์ ๊ณผ ์ ํ ๊ธฐ๋ฅ์ ํฅ์์ํค๋๊ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค ๐๐ป ๊ทธ๋ผ ๋ฐ๋ก ๋ณธ๋ก ์ผ๋ก~ ๐๐ป Enhance your UI animations and transitions์๊ฐ์์๋ ์ด์ SwiftUI, UIKit ๋ฐ AppKit์ ์ ๋๋ฉ์ด์ ์ ์ํธ์์ฉ์ด ๋ ๊ทน๋ํ๋์๋ค๊ณ ํฉ๋๋ค.์๋ง ์ ์ถํด๋ณด๊ฑด๋ฐ, ๊ฐ ๊ธฐ์ ๋ค์์ ์ ๋๋ฉ์ด์ ์ ์์ ๋กญ๊ฒ ์ํธ์ ์ผ๋ก ์ธ ์ ์๋๊ฒ์ ๋ํด ์๋ ค์ค๊ฒ ๊ฐ๋ค์ ๐ค TransitionsiOS 18์์ ์๋ก์ด ํ๋/์ถ์ ์ ํ ๊ธฐ๋ฅ์ด ์๊ฒผ์ต๋๋ค. ์ด๋ ๊ฒ ํน์ ์ ์ ๊ฐ์ง๊ณ ํ๋ฉด์ด ์ ํ๋ ๋ ํ๋/์ถ์ ์ ๋๋ฉ์ด์ ์ด ์ ์ฉ๋๊ณ ๋, ๋๋๊ทธ๋ ๋ง์๋๋ก ํ ์ ์์ฃ .์ฆ, ๋์ผํ UI ์์๋ฅผ ํ๋ฉด์ ์ ์งํ์ฌ ์ฑ์ ์ฐ์์ฑ..
-
UIScrollView์ contentInsetAdjustmentBehavioriOS 2024. 7. 18. 08:15
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ UIScrollView์ contentInsetAdjustmentBehavior์ ๋ํด ์์๋ณด๊ณ ์ ์ฉํด๋ณด๋ ค ํฉ๋๋ค ๐๐ป contentInsetAdjustmentBehavior?์ฐ์ UIKit ํ๋ ์์ํฌ์์ ์ ๊ณตํ๋ UIScrollView์ ์ธ์คํด์ค ์์ฑ์ธ contentInsetAdjustmentBehavior๋ฅผ ๊ณต์๋ฌธ์๋ฅผ ์ดํด๋ณด๋ฉด ์กฐ์ ๋ ์ปจํ ์ธ ์คํ์ ์ ๊ฒฐ์ ํ๊ธฐ ์ํ ๋์์ด๋ผ๊ณ ์๊ฐํ๊ณ ์์ด์ ๐ค ์กฐ์ ๋ ์ปจํ ์ธ ์คํ์ ?? ์ด๊ฒ ๋์ฒด ๋ญ๋ง์ผ๊น์ ๐ค ํด๋น ์ธ์คํด์ค ์์ฑ์ UIScrollView์ get set ํ๋กํผํฐ๋ก ์๋์ ๊ฐ์ด ์ ์๋์ด ์์ต๋๋ค. var contentInsetAdjustmentBehavior: UIScrollView.ContentIns..
-
SwiftUI - ViewThatFitsSwiftUI 2024. 7. 15. 18:20
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์ ViewThatFits ์ปดํฌ๋ํธ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ค๋๋ง์ ์ ๋ง ๊ฐ๋ณ๊ฒ ์๋ฐ๊ฒ๋ ํ์ฉํด๋ณผ ์ ์๊ตฌ๋ ํ๋ ์ฃผ์ ์ด๋ ํธํ๊ฒ ๊ฐ์ด ํ์ด๋ณด์์ฃ ๐ ViewThatFitsํด๋น ์ปดํฌ๋ํธ๋ SwiftUI์์ ํ์ ์์ ๋ทฐ๋ค์ค์์ ํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ์ ์ ์ผ ์ ํฉํ ๋ทฐ๋ฅผ ์ ํํด ํ๋ฉด์ ๋ ๋๋งํด์ฃผ๋ ๋ทฐ ์ปดํฌ๋ํธ์ ๋๋ค.์ฆ, ํด๋น ๋ทฐ ์ปดํฌ๋ํธ๋ ๋๊ฒ ๋ค์ํ ํ๋ฉด ์ฌ์ด์ฆ๋ ๋ ์ด์์์์ ์ ์ฐํ๊ฒ ๋ทฐ๋ฅผ ์ ํํด์ ํ์ํ ๋ ์ด์ฉ๋ฉ๋๋ค.iOS 16.0 ์ด์์ด๋ผ๋ฉด ๋ชจ๋ ์ ์ฉํ ์ ์์ด์! ์ ์ธ์ ๋ณผ๊น์? @MainActor @frozen @preconcurrencystruct ViewThatFits where Content : View ์ด๋ ๊ฒ ์ผ๋ฐ์ ์ธ ๋ค๋ฅธ ..
-
Demystify SwiftUI containers (feat. WWDC 2024)SwiftUI 2024. 7. 11. 19:00
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ WWDC 2024์์ ๋ง์์ฃผ๋ Demystify SwiftUI containers ์ธ์ ์ ๋ํด ๊ฐ์ด ๋ณผ๊น ํฉ๋๋ค ๐๐ป ์ธ์ ํ์ดํ๋ถํฐ ๋๊ปด์ง๋๊ฒ SwiftUI ์ปจํ ์ด๋ ๋ทฐ์ ๋ํด ์์๋ณด๋ฉด์ ์ด๋ป๊ฒ ๋ทฐ๋ค์ด ์ปจํ ์ด๋์ ์ํด ๊ด๋ฆฌ๋๋์ง ์ฐ๋ฆฌ์๊ฒ ์ค๋ช ํด์ค๊ฒ ๊ฐ์์ ๐ ๊ทธ๋ผ ๋ฐ๋ก ๋ค์ด๊ฐ๋ณผ๊น์? ๐๐ป Demystify SwiftUI containersSwiftUI๋ API์์ ๋ฆฌ์คํธ ์ปจํ ์ด๋์ ๊ฐ์ด ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ ๋ค์ํ ์ข ๋ฅ์ ์ปจํ ์ด๋๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ ๊ฒ ์ปจํ ์ด๋ ๋ทฐ๋ ์ปจํ ์ธ ๋ฅผ ๋ํํ๊ธฐ ์ํด์ ํํ ๋ทฐ ๋น๋ ํด๋ก์ฆ๋ฅผ ์ฌ์ฉํฉ๋๋ค.๋ทฐ ๋น๋๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ ์ฝ๋ฉ๋ ํ ์คํธ ๋ทฐ๋ค์ ๋ฆฌ์คํธ์ฒ๋ผ ์ฝํ ์ธ ๋ฅผ ์ ์ ์ผ๋ก ์ ์ํ ์ ์์ฃ ! ๋ํ, ForEach๋ฅผ ์ด์ฉํ์ฌ ๋์ ..
-
What's new in SwiftUI (feat. WWDC 2024)SwiftUI 2024. 7. 8. 18:12
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ๋ถํฐ๋ ์กฐ๊ธ์ฉ ๋ฏธ๋ค์๋ WWDC 2024 ์ธ์ ๋ค์ ๋ค์ ์ดํด๋ณด๋ฉด์ ๊ด์ฌ์๋ ์ฃผ์ ๋ค์ ๋ํด ๋ฆฌ์บก์ ํด๋ณผ๊น ํฉ๋๋ค ๐๊ทธ ์ค์์ ์ฒซ๋ฒ์งธ๋ก ๋ฆฌ์บกํด๋ณผ๊ฒ์ SwiftUI์ ๋๋ค ๐๐ป์ด๋ฒ WWDC 2024์์ SwiftUI์ ์๋ก์ด๊ฒ๋ค์ ์ด๋ค๊ฒ๋ค์ด ๋์๋์ง ํ๋ฒ ์ดํด๋ณด๊ฒ ์ต๋๋ค! ๋ฌผ๋ก , ์ฌ๊ธฐ์๋ ๋ฅํ๊ฒ ๋ค์ด๊ฐ๋ ๋๋์ด ์๋ ์ ๋ฐ์ ์ผ๋ก ์ด๋ค๊ฒ๋ค์ด ์๊ฒจ๋ฌ๋์ง ํบ์๋ณด๋๊ฒ์ด๊ณ ๊ทธ์ ๋ํด ๋ ๋ฅํ ์ฃผ์ ๋ค์ ๋ณ๋ ์ธ์ ์ผ๋ก ๋ ๋ง๋ จ๋์ด ์์ต๋๋ค. ์ฆ, ์ ๋ ํ๋ฒ ๊ฐ๋จํ ํบ์๋ณธ ํ ์ดํ ํฌ์คํ ๋ค์์ ํ๋์ฉ ์๊ฒจ๋๊ฒ๋ค์ ๋ํด ๋ฅํ ์ธ์ ์ ์ ๋ฆฌํด๋ณผ๊นํด์ โบ๏ธ ๊ทธ๋ผ ํจ์ถ๋๊ฒ์ผ๋ก ์์๋ณด์์ฃ ๐ What's new in SwiftUIFresh apps์ด์ SwiftUI๋ฅผ ํตํด ์๋ก์ด ํญ ๋ทฐ ๊ทธ๋ฆฌ๊ณ ..
-
Tuist v4 ์ค์น ๋ฐ ์ฌ์ฉ (with. ์๋ํ)Tuist 2024. 7. 1. 18:52
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ Tuist v4์ ๊ธฐ์ค์ผ๋ก ์ค์นํ๊ณ ๊ฐ๋จํ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป Tuist v4ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํ๋ฉฐ ๋ชจ๋ํ์ ๋์์ ์ฃผ๋ ์ฐ๋ฆฌ ์ต์ํ Tuist๊ฐ 3 ๋ฒ์ ๋์์ 4 ๋ฒ์ ๋๋ก ์ค๋ฉด์ ๋ณํ๊ฐ ์๊ฒผ์ฃ .๋ก๊ณ ๊ฐ ๋ฐ๋์์๋ฟ๋ง ์๋๋ผ, ๊ธฐ์กด curl์ด๋ homebrew๋ฑ์ ์ด์ฉํด ์ค์นํ์๋ Tuist๊ฐ ์ด์ ๋ mise๋ฅผ ์ด์ฉํด ์ค์นํ๋ผ๊ณ ๊ถ์ฅํ๊ณ ์๊ฒจ๋ฌ์ต๋๋ค๐ ๋ฌผ๋ก , ์์ง๊น์ง๋ homebrew ๋ฐ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ค์นํ ์ ์์ง๋ง mise๋ฅผ ํ์ฉํ๋ผ๊ณ ๊ถ์ฅํ๋ค์.mise๋ ๋ง์ด์ค? ๋ง์ด์ฆ๋ก ์ฝ๋์ค ์์๋๋ฐ ๋ฏธ์ฆ๋ผ๊ณ ์ฝ๋๋ผ๊ตฌ์ ใ ใ ๋ฟ๋ง ์๋๋ผ, ํ๋ก์ ํธ ์์ฑ์ ์ํ ์์กด์ฑ๋ค์ ๊ด๋ฆฌํ๋๊ฒ๋ค๊ณผ ํ๊ฒ ๋ฐ ํ๋ก์ ํธ ์์ฑ์ ์ํด ์์ฑํ๋ ์ฝ๋๋ค์ ์ผ๋ถ๋ถ๋..
-
TCA - Dependency ์ค๊ณTCA 2024. 6. 29. 15:53
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ TCA์์ Dependencies ์ค๊ณ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค ๐๐ปDesigning dependencies์ข ์์ฑ์ ๊ธฐ๋ฅ์ ์ฃผ์ ํ๊ณ ํ ์คํธ๋ฅผ ์ํด์ ์ฌ์ ์ํ๋๋ฐ ๋์์ด ๋๋ ์ค๊ณ๊ฐ ํ์ํฉ๋๋ค.์ฆ, ํต์ฌ์ ์ผ๋ก ๊ฐ์ ธ๊ฐ์ผํ ๊ฒ์ ์ข ์์ฑ์ ์ ์ดํ ์ ์๊ฒ ๋ง๋ค๊ธฐ ์ํด์ ๊ฒฉ๋ฆฌ ๋ฐ ํ ์คํธ๊ฐ ๊ฐ๋ฅํ๊ฒ ๋ง๋๋๊ฒ์ด์ฃ ! ํ๋จ๊ณ์ฉ ์์๋ณผ๊น์? Protocol-based dependenciesSwift์์ ์ข ์์ฑ์ ์ค๊ณํ๋ ๋ฐฉ๋ฒ ์ค ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋๊ฒ์ด ํ๋กํ ์ฝ์ ์ด์ฉํ๋๊ฒ์ ๋๋ค.์์๋ก, ์๋์ ๊ฐ์ด ์ค๋์ค ํ๋ ์ด์ ๋ํ ํ๋กํ ์ฝ์ ์ค๊ณํด๋ณธ๋ค๊ณ ๊ฐ์ ํด๋ด ์๋ค. protocol AudioPlayer { func loop(url: URL) async throws func play(u..