SWIFT
-
Tuist๋ฅผ ํตํด SwiftLint ์ฌ์ฉํ๊ธฐTuist 2023. 4. 25. 11:56
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ Tuist๋ก ํ๊ฒฝ ๊ตฌ์ถ์ ํ๋ฉฐ ์ฝ๋ ๋ฐ ํ์ผ ์ปจ๋ฒค์ ์ ์ก์์ฃผ๊ธฐ ์ํ SwiftLint๋ฅผ ๋์ ํ๋ฉด์ ์กฐ๊ธ ๋ ๋ผ์ดํธํ๊ฒ ์ฌ์ฉํด๋ณด๋ คํฉ๋๋ค๐๐ป ์ฐ์ , swiftLint๋ ๋ง์ด๋ค ์ฌ์ฉํ ๊ฒ ๊ฐ์๋ฐ์. brew๋ก swiftLint๋ฅผ ์ค์นํด์ค ์ ๋ ์๊ณ , CocoaPods์ด๋ Mint๋ก ํด๋น SwiftLint ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์น ํ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ฌํ ๊ณผ์ ๋ค์ ํด๋น SwiftLint๋ฅผ ๋ชจ๋ ์์กด์ฑ ์ค์นํ๊ณ ๊ฐ์ ธ์์ ์ฌ์ฉํ๋ ๊ฒฝํฅ์ด ์์ด Tuist๋ฅผ ์ฌ์ฉํ๋ฉด์ ์กฐ๊ธ ๋ ๋ผ์ดํธํ๊ฒ ํ์ํ ๋ถ๋ถ๋ง ๊ฐ์ ธ์ ์ค์ brew, Cocoapods, Mint๋ก ์ค์น ํ ํ ์ฌ์ฉํ์ง ์๋ ๋ฐฉ๋ฒ์ ๋์ ํด๋ดค์ต๋๋ค๐ ์์ฃผ ๊ฐ๋จ๋ช ๋ฃํ๋ ํ๋ฒ ๋ฐ๋ผ๊ฐ๋ณด์์ฃ ! Tuist๋ฅผ ๊ตฌ์ถํ๋ฉฐ Swi..
-
Tuist์์ Lottie ๋ฆฌ์์ค ์ค์ ํ๊ธฐ (with. JSON)Tuist 2023. 4. 13. 09:42
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ Tuist๋ฅผ ํตํด Lottie ๊ตฌํ์ ์ํ ๋ฆฌ์์ค ์ค์ ์ ํด๋ณด๊ณ ๊ทธ๊ฑธ ์ฌ์ฉํด๋ณผ๊น ํฉ๋๋ค๐ ์ฐ์ Lottie๊ฐ ๋ฌด์์ธ์ง ์์ฃผ ๊ฐ๋ตํ๊ฒ ์ง์ด๋ณผ๊น์? Lottie ๊ฐ๋ตํ๊ฒ ์ง๊ณ ๋์ด๊ฐ๊ธฐ Lottie๋ ์์ด๋น์๋น์์ ๋ง๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฒกํฐ ๊ธฐ๋ฐ ์ ๋๋ฉ์ด์ ๊ณผ ์ํธ๋ฅผ ์ต์ํ์ ์ฝ๋๋ก ์ค์๊ฐ ๋ ๋๋ง ํด์ฃผ๋ iOS/AOS์์ ๋ชจ๋ ์ง์ ๊ฐ๋ฅํ ๋ชจ๋ฐ์ผ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค! Bodymovin JSON ํ์์ผ๋ก ๋ด๋ณด๋ด์ง ์ ๋๋ฉ์ด์ ๊ณผ ๋ฒกํฐ๋ฅผ ๋ก๋ํด ๋ ๋๋ง ํด์ค์. ์ฌ๊ธฐ์ ์ค๋ ์ฐ๋ฆฌ๊ฐ ๋ค๋ค๋ณผ๊ฒ์ด๊ธฐ๋ ํ๋ฐ์. JSON ํ์์ผ๋ก Lottie ๋ฆฌ์์ค ํ์ผ์ด ๊ตฌ์ฑ๋์ด ์๋ค~ ์ ๋๋ง ์ฌ๊ธฐ์ ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.ใ ใ ๊ทธ JSON ํ์ผ์ ๋ฆฌ์์ค๋ก ๋ฐ์ ์ฐ๋ฆฌ๋ ์ ๋๋ฉ์ด์ ์ ๋ง๋ค์ด๋ณผ๊ฑฐ๋ค! ..
-
Safari Web Extensions ํ๊ตฌํด๋ณด๊ธฐ (with. WWDC 20)MacOS 2023. 4. 6. 10:56
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ๋ถํฐ ๋ช์ฃผ๊ฐ์ ์กฐ๊ธ ํน๋ณํ๊ฑธ ํด๋ณผ๊นํด์. ๋ฐ๋ก ์ฌํ๋ฆฌ ํ์ฅ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด๋ณผ๊น ํฉ๋๋ค๐๐ป ๊ทธ๋์ ๋จผ์ WWDC 20์์ Safari Web Extensions์ ๋ํด ๋ฐํ๊ฐ ์์ด์ ์ค๋ ๊ทธ๊ฑฐ๋ถํฐ ํ์ตํด๋ณด๋ คํฉ๋๋ค๐ ์์ macOS ๊ฐ๋ฐ์ด๋ Safari Web Extensions ์ ์ชฝ ๊ฐ๋ฐ์๋ ์ง์์ด ์ ํ ์์ด ์ ๊ฐ ๋๋ผ๊ธฐ์ ๋จผ์ ๋ฐฐ์ฐ๋ฉด ์ข์๊ฒ ์์ฃผ๋ก ํ์ต์ค์ ๋๋ค! ๋ง์ ๋์ ๋ฐ ์ง์ ๋ถํ๋๋ฆฝ๋๋ค๐๐ป ๊ธฐ์กด Safari์ ํ์ฅ ์์ฝ ์์คํ Safari 14 ์ ๋ฒ์ ๋ค์์ ํ์ฅ ์์ฝ ์์คํ ๋ฐฉ์์ ๋ํด ์ค๋ช ํฉ๋๋ค. Content Blockers ๐๐ป iOS / macOS์์๋ง ์๋ํ๋ฉฐ ์ด๋ ์๋์ ์ ์ ๊ฐ์ธ์ ๋ณด๋ณดํธ๋ฅผ ์ํด ๊ณ ์๋์์ต๋๋ค. Share Extensions ๐๐ป..
-
Swift 5.8Swift 2023. 4. 4. 09:27
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์ ์ง๋๋ฌ 30์ผ์ ๋ฆด๋ฆฌ์ฆ๋ Swift 5.8์ ๋ํด ์ด๋ค๊ฒ๋ค์ด ๋ํ๋ฌ๊ณ ๋ณ๊ฒฝ๋์๋์ง ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐๐ป Swift 5.8 2023๋ 3์ 30์ผ ๊ณต์์ ์ผ๋ก Swift 5.8์ด ์ถ์๋์์ต๋๋ค. ์ด๋ฒ ๋ฆด๋ฆฌ์ฆ์์๋ ํฅํ ๊ธฐ๋ฅ์ ๋จํธ์ ์ฑํ์ ์ง์ํ๋ ๊ธฐ๋ฅ, ํฅ์๋ ๊ฐ๋ฐ์ ํ๊ฒฝ, Swift-DocC, SPM ๋ฐ SwiftSyntax๋ฅผ ํฌํจํ Swift ์์ฝ ์์คํ ์ ํด ๊ฐ์ , ํฅ์๋ Windows ์ง์ ๋ฑ ์ธ์ด ๋ฐ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์ฃผ์ ์ฌํญ๋ค์ด ์ ๋ฐ์ดํธ ๋์์ต๋๋ค! ์ฃผ๋ก ๋๊ปด์ง๊ฒ์ ์๋ก์ด ๊ธฐ๋ฅ๋ค์ด ๋ง ์์์ ธ ๋์๋ค๊ธฐ ๋ณด๋ค๋ ๊ธฐ์กด Swift์ ์ฌ์ฉ๋๋ ๊ธฐ๋ฅ๋ค์ ๊ฐ์ ์ด ๋ง์๋๊ฒ ๊ฐ์ต๋๋ค. ๋ฆด๋ฆฌ์ฆ๋ Swift 5.8์ ์ฌ์ฉํ๋ ค๋ฉด ๊ฐ์ ๋ ์ ์ ๋ฐ์ดํธ๋ฅผ ์ ๊ณตํ Xcode 14..
-
์ฟ ํค๋ก ์์ ํ๊ฒ HLS m3u8 ์์ ์ ๊ทผํ๊ธฐiOS 2023. 3. 30. 16:14
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ HLS์ m3u8ํ์ผ์ด ๋ญ์ง ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ์์๋ค์ ์ฟ ํค๋ฅผ ํตํด ์ด๋ป๊ฒ ์์ ํ๊ฒ ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์๋์ง ํ์ตํด๋ณด๊ณ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค๐๐ป ์ฐ์ ์ฟ ํค๋ก ์์ ํ๊ฒ ์์์ ์ ๊ทผํ๊ธฐ์ HLS์ m3u8์ด๋ผ๋ ๊ฐ๋ ์ ๋ํด ์์๋ณด์์ฃ ๐บ๐ป HLS (HTTP Live Streaming) ํ์ค HTTP ๊ธฐ๋ฐ ์คํธ๋ฆฌ๋ฐ ํ๋กํ ์ฝ๋ก HLS๋ผ๊ณ ํํ ๋ถ๋ฆฝ๋๋ค. ์ฆ, ์ฝ๊ฒ ๋งํด ๊ฐ์ฅ ํํ ์ฌ์ฉ๋๋ ๋น๋์ค ์คํธ๋ฆฌ๋ฐ ํ๋กํ ์ฝ์ด๋ผ๊ณ ํ์ฃ . HTTP ํ์ผ ์กฐ๊ฐ๋ค๋ก ๋น๋์ค ํ์ผ์ ๋๋๊ณ ์ด๋ฅผ HTTP ํ๋กํ ์ฝ์ ์ด์ฉํด ์ ์กํฉ๋๋ค. ํด๋ผ์ด์ธํธ ๋จ์์๋ ์ด๋ฐ HTTP ํ์ผ์ ๋ก๋ํ ํ ๋น๋์ค๋ฅผ ์ฌ์์ํฌ ์ ์์ฃ ! ๊ทธ๋ผ ์ HLS๋ฅผ ์ฌ์ฉํ๋๋? ์ด์ ๋ํ ๋ฌผ์์๋ HLS ์ฅ์ ์ค ํ๋๋ก ๋ชจ๋ ์ธํฐ๋ท ..
-
Swift Concurrency - @MainActor ์ฌ์ฉํ๊ธฐConcurrency 2023. 3. 27. 10:47
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ @MainActor๋ฅผ ์ฌ์ฉํด ๋ฉ์ธ ํ์์ UI ์ ๋ฐ์ดํธ๋ฅผ ์๋์ผ๋ก ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐๐ป โ๏ธ UI ์ ๋ฐ์ดํธ๋ ๊ผญ ๋ฉ์ธ ์ค๋ ๋์์ ์งํ๋์ด์ผ ํ๋ค ์ฐ์ ๋ค๋ค ์๋ค์ํผ iOS์์ UI ์ ๋ฐ์ดํธ์ ๊ดํ๊ฑด ๋ชจ๋ ๋ฉ์ธ ์ค๋ ๋์์๋ง ์ ๋ฐ์ดํธ ํด์ผํ๋ค๋ ์ ์ ๋๋ค. ๋ง์ฝ ๋ฉ์ธ ์ค๋ ๋๊ฐ ์๋ ํ ๋ฐฑ๊ทธ๋ผ์ด๋ ๊ฐ์ ์ค๋ ๋์์ UI ์ ๋ฐ์ดํธ๋ฅผ ์น๋ค๋ฉด ์๊ธฐ์น ๋ชปํ ๋์์ด ๋ฐ์ํ ์ ์๊ณ ๋ํ ๊ฒฝ๊ณ ๋ฅผ ๋ด๋ณด๋ด์ฃ ! ๋ฐ๋ผ์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ค๋ ๋์์ ์ง์ ํน์ ๊ฐ์ ์ ์ผ๋ก ์์ ์ ์ํํ ๋๋ง๋ค UI ๋ ๋๋ง๊ณผ ๊ด๋ จํ ์์ฑ ๋ฐ ๋ฉ์๋์ ์ ๊ทผํ๊ธฐ ์ ์ ๊ผญ ๋ฉ์ธ ์ค๋ ๋๋ก ์ด๋์์ผ์ผ ํฉ๋๋ค. ๋ฌผ๋ก ๋น์ฐํ๊ฑฐ ์๋์ผ? ๋ผ๊ณ ์๊ฐ๋ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ค์ ์์ ์ ํ๋ค๋ณด๋ฉด ๋ฐฑ๊ทธ๋ผ์ด๋ ์ค๋ ๋์..
-
Swift Concurrency - ActorConcurrency 2023. 3. 20. 11:16
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ Actor๊ฐ ๋ฌด์์ธ์ง ๊ฐ๋จํ ์ดํด๋ณด๊ณ Swift Concurrency์์ ์ด๋ป๊ฒ ํ์ฉ๋๋์ง ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐๐ป ์ฐ์ Swift์์๋ ๋ค๋ค ์์๋ค์ํผ ๋ค์ํ ์ ํ์ ํด๋์ค, ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐ ํ์ ๋ฑ์ผ๋ก ์ ์ํ ์ ์์ต๋๋ค. ๊ฑฐ๊ธฐ๋ค Swift 5.5์์๋ถํฐ๋ Swift Concurrency๊ฐ ๋์ ๋๋ฉด์ actor๋ผ๋ ์๋ก์ด ์ ํ์ด ์ง ํ๊ณ ๋ํ๋ฌ์ด์โญ๏ธ ๊ทธ๋ผ ์ฐ์ actor ํ์ ์ ์ ์ด๋ป๊ฒ ๊ธฐ์กด ์ ํ์ ๊ฐ์ง๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ์๊น์? ๋ฐ์ดํฐ ๊ฒฝํฉ ๋ฐฉ์ง Swift์ ์๋ก์ด ์ ํ์ธ actor์ ๊ฐ์ฅ ํต์ฌ์ ์ธ ์ฅ์ ์ค ํ๋๋ race condition, ์ฆ ๋ฐ์ดํฐ ๊ฒฝํฉ์ด๋ผ๋๊ฒ์ ๋ฐฉ์งํด์ค ์ ์์ต๋๋ค. ๋ ๊ฐ์ ๊ฐ๋ณ ์ค๋ ๋๊ฐ ๋์์ ๋์ผํ ๋ฐ์ดํฐ์ ์์ธ์คํ๊ฑฐ๋ ๋ณ๊ฒฝํ๋ ค๊ณ ํ ๋..
-
Swift Concurrency - ์ด์ ๋ฒ์ ์์ ๋น๋๊ธฐ ์์คํ API ์ฌ์ฉํ๊ธฐConcurrency 2023. 3. 16. 13:54
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ ๋น๋๊ธฐ ์์คํ API๋ฅผ ์ด์ ๋ฒ์ ์์ ์ฌ์ฉํ ์ ์๋๋ก ๊ตฌํํ๋ ํ์ต์ ํด๋ณด๊ฒ ์ต๋๋ค๐ Swift Concurrency๊ฐ iOS 13๋ถํฐ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ฒ ๋์์ด๋ ๊ณ์ ๋๋ฒจ๋กญ์ ๊ฑฐ์ณ ์์ต๋๋ค. (๋น์ฐํ์ง๋ง!?) ๊ทธ๋ ๊ธฐ์ ์ค๋ ์์๋ก ๋ค์ด๋ณผ iOS 15 ์ด์์์ URLSession ๋คํธ์ํน์์ ํธํ๊ฒ async/await๋ฅผ ์ฌ์ฉํ ์ ์์ง๋ง ๊ทธ ํ์ ๋ฒ์ ์ธ iOS 13, 14๋์์๋ ์ง์ ์ฌ์ฉํ์ง ๋ชปํ๋ ๋ถํธํจ์ด ์์์ด์๐ญ ์ด์ ํฌ์คํ ์์๋ ์ ๊น ๋์๋๋ฐ Swift 5.5 ๋ถํฐ ๋น๋ก์ ๊ธฐ์กด ์ฝ๋์์๋ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๊ฒ ๋ณํํ๋ค๊ณ ํ์ฃ ? ์ฆ Xcode 13.2๋ถํฐ ํธํ์ด ๋์ง๋ง ๊ทธ ๊ธฐ์ค์ด OS๋ก๋ iOS 15, macOS Monterey์ ๋๋ค. ๊ทธ๋์ ์ค๋ ..