SWIFT
-
Swift Concurrency - Task (3)Concurrency 2023. 3. 2. 10:48
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ Task ์ธ๋ฒ์งธ ์ด์ผ๊ธฐ์ธ Task์ ๋๋ ์ด๋ฅผ ์ฃผ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ฒ ์ต๋๋ค๐ ๋น๋๊ธฐ Swift Task ๋๋ ์ด ์ฃผ๊ธฐ ๋๋๋ก ๋น๋๊ธฐ Task์ ์คํ์ ์์ด ์ด๋์ ๋ ์ง์ฐ์ ์ฃผ๊ณ ์ถ์๋๊ฐ ์์ฃ ! ๊ทธ๋ด๋ ์ฐ๋ฆฌ๊ฐ ์ต์ํ combine์ด๋ผ๋ฉด Debounce๋ฅผ ๊ฑธ์ด ์ฒ๋ฆฌํ๊ณค ํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ Task๋ฅผ ์ฌ์ฉํ๋ Swift Concurrency์์๋ ์ด๋ป๊ฒ ํ๋ฉด ์ข์๊น์? ์์ฃผ ๊ฐ๋จํ๊ฒ ์๋์ ๊ฐ์ด Task์ ์ ๊ณต๋๋ sleep ๋ฉ์๋๋ฅผ ์ด์ฉํ๋ฉด ๋ฉ๋๋ค. Task { // Delay the task by 1 second: try await Task.sleep(nanoseconds: 1_000_000_000) // Perform our operation ... } ์๋ ๊ฒ ๋ง์ด์ฃ ! ..
-
Swift Concurrency - Task (2)Concurrency 2023. 2. 27. 08:41
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ ์ ๋ฒ Task์ ์ญํ ์ ๋ํด ์์๋ดค์๋ค๋ฉด Task์์ async/await๋ฅผ ์ฌ์ฉํ ๋ ์ค์ Swift์์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๊ฐ ์ด๋ป๊ฒ ๋๋์ง ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ ์ด๋ฒ ํ์ต ์๋ฃ๋ ์๋ ๋งํฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ธ์ ์ธ ์ดํด๋ฅผ ๋ฐํ์ผ๋กํ ๋ฒ์ญ์ ํ ๋๋ก ์ด๋ค์ก์ต๋๋ค๐ https://www.swiftbysundell.com/discover/concurrency/ Discover Concurrency on Swift by Sundell Introduced in Swift 5.5, Swift’s built-in concurrency system provides a lightweight, yet highly efficient set of tools for writing concurrent ..
-
Swift Concurrency - Task (1)Concurrency 2023. 2. 24. 08:16
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ๋ถํฐ๋ Swift Concurrency์ ๋ํด ์ฒด๊ณ์ ์ผ๋ก ํ์ตํด๋ณด๋ คํด์๐๐ป ๊ทธ๋์ ์ ๋ชฉ๋ ์ด๋ฒ์ด ์ฒ์ (1)์ ๋ถ์์ต๋๋ค! ์์ผ๋ก ํด๋ณผ ํ์ต๋ค์ ๋ค ์๋ ๋ ํผ๋ฐ์ค ํ ๋๋ก ์ ๋๋ฆ์ ๋ฒ์ญ? ๊ฐ์ ํด์์ ๊ธฐ๋ฐ์ผ๋ก ํ์ตํจ์ ๋ง์๋๋ฆฝ๋๋ค๐ https://www.swiftbysundell.com/discover/concurrency/ Discover Concurrency on Swift by Sundell Introduced in Swift 5.5, Swift’s built-in concurrency system provides a lightweight, yet highly efficient set of tools for writing concurrent code. That a..
-
Get ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ฌํํ ์น API ํด๋ผ์ด์ธํธ ๊ตฌํํ๊ธฐLibrary 2023. 2. 13. 14:18
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ค๋์ Get์ด๋ผ๋ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ ์ฐ๋ฆฌ๊ฐ ์ต์ํ๊ฒ ์๊ณ ์๋ ๋คํธ์ํฌ ํต์ ๋น์ฐํ ๋ง์ด์ง๋ง ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ์ ํ๋ฉด์ API ๋คํธ์ํฌ ํต์ ์ ์ํ ๋์ผ ์ํ ์๊ฐ ์์ต๋๋ค. ๋คํธ์ํฌ ํต์ ์ ์ํด ์ฐ๋ฆฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ํ์์ ์ ๊ณตํด์ฃผ๋ URLSession์ ์ฌ์ฉํ๊ธฐ๋ ํ๊ณ Alamofire๋ Moya์ ๊ฐ์ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋์์ ๋ฐ์ URLSession์ ์ถ์ํํ์ฌ ์กฐ๊ธ ๋ ์ฝ๊ฒ ์ฌ์ฉํ๊ธฐ๋ ํฉ๋๋ค. ์ ๊ทธ๋ผ ์ฌ๊ธฐ๋ค ํ๋๋ฅผ ๋ ์ถ๊ฐํด์ ์์๋ณด๋ ค๊ณ ํฉ๋๋ค. ๊ทธ๊ฒ ๋ฐ๋ก ์ค๋ ํด๋ณผ Get์ด๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ๊ตฌ๊ตฌ์ ์ ์์ธํ Get์ ๋ํด ํํด์ณ๋ณด์์ฃ ! Get ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋? Get์ด๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ async/await๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ถ๋ ๊ฐ๊ฒฐํ Swift ์น AP..
-
compare๊ณผ ComparisonResultSwift 2023. 2. 8. 09:30
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ ๋ฌธ์์ด์ ๋น๊ตํ๋ Compare์ด๋ผ๋ ๋ฉ์๋์ ๊ทธ ๋ฐํ ํ์ ์ธ ComparisonResult์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ ์ฐ์ ์์ฃผ ์๋ ์์ด ์ฌ์ฉํ๊ณ ์๋ Compare์ด๋ผ๋ ๋ฉ์๋๋ถํฐ ์ง๊ณ ๋์ด๊ฐ๋ณผ๊ป์! compare? ํ๋ผ๋ฏธํฐ๋ก ์ง์ ๋ ์ต์ ๋ค์ ์ฌ์ฉํด ๋ฌธ์์ด์ ๋น๊ตํ๊ณ ๋ฒ์์ ๋ํ ์ดํ ์์๋ฅผ ๋ฐํํด์ค๋๋ค. ์ฌ๊ธฐ์ ์ค์ํ๊ฑด ์ดํ ์์์ ๋๋ค. ์ดํ ์์๋ ์์คํค ์ฝ๋๊ฐ์ฒ๋ผ A๋ณด๋ค Z๊ฐ ๋ ํฌ๋ค๊ณ ์ธ์ํด์ฃผ์ฃ . ๊ทธ๋ ๊ธฐ์ ๊ฒฐ๊ตญ compare ๋ฉ์๋์ ์ญํ ์ ๋ ๋ฌธ์์ด์ ์ดํ ์ ์ฆ, ์ ๋ ฌ ์์ ๋ํด ๋น๊ตํด์ค๋๋ค. ํด๋น ๋ฉ์๋๋ NSString์ ์ธ์คํด์ค ๋ฉ์๋๋ก ๋ฌธ์์ด์์ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค. func compare( _ string: String, option..
-
PopupViewLibrary 2023. 2. 6. 16:27
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ PopupView๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ SwiftUI์์ ํ๋กํ /ํ ์คํธ ๋ฉ์์ง ํน์ ํ์ ์ด๋ ๋ฐํ ์ํธ๋ฅผ ๋ ธ์ถํด์ผ ๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ API๋ฅผ ์ฌ์ฉํ์ฌ๋ ๋๊ณ ์๋๋ฉด ์กฐ๊ธ ๋ ์ปค์คํ ํ๊ฒ ๋ง๋ค์ด์ ์ฌ์ฉํด๋ ๋๋๋ฐ ์ ๊ฒ๋ค์ ์กฐ๊ธ ๋ ํธ๋ฆฌํ๊ฒ ์ ๊ณตํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๋ผ๊ตฌ์! ๋ฐ๋ก ์ค๋ ํ์ตํด๋ณผ PopupView์ ๋๋ค๐๐ป PopupView ๋จ์ํ View Modifier๋ก ๊ฐ๋จํ ์ฌ์ฉํ ์ ์๋๋ก ๊ตฌํ๋์ด ์์ด ์ฐ์ ์ฌ์ฉ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. SPM / cocoapods / carthage ๋ชจ๋ ๋ฐฉ์์ผ๋ก ๊ฐ์ ธ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ๋กํ ๋ถํฐ ํ๋ฒ ๋ฐ๋ก ์ฌ์ฉํด๋ณผ๊ป์! import SwiftUI import PopupView struc..
-
CGFloatSwift 2023. 1. 20. 16:54
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ CGFloat์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ ์ฐ์ ์ค์๋ฅผ ํํํ๋ ๊ธฐ๋ณธ ํ์ ์ค Float์ Double์ ์์ฃผ ์ด์ง ์ง๊ณ ๋์ด๊ฐ๊ฒ ์ต๋๋ค๐คซ Float vs Double ๋ค๋ค ๊ธฐ๋ณธ ์๋ฃํ์์ Float์ Double์ ์ ์์ค๊ฑฐ์์. ๋๋ค ๋ถ๋ ์์์ ์ ์ฌ์ฉํ๋ ์ค์๋ฅผ ๋ํ๋ด๋ ํ์ ์ด์ฃ . ํํ Float๋ 32๋นํธ, Double์ 64๋นํธ๋ก ํํํฉ๋๋ค. ์ฆ Float๋ ์ต๋ 6์๋ฆฌ๊น์ง๋ง ํํ์ด ๊ฐ๋ฅํ๊ณ Double์ 15์๋ฆฌ๊น์ง ํํ์ด ๊ฐ๋ฅํ์ฃ . ์ฆ ์ฐ๋ฆฌ๋ ๋๋ถ๋ถ ์ด๋์ ๋ ๋ฒ์๊ฐ ์ฌ์ง ์์ธกํ๊ธฐ ํ๋ค๋๊ฐ ๋ง์ผ๋ Double์ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ผ CGFloat๋ ๋์ฒด ๋ญ๊น์? CGFloat CGFloat๋ Core Graphics ๋ฐ ๊ด๋ จ ํ๋ ์์ํฌ์ ๋ถ๋ ์์์ ์ค์นผ๋ผ ๊ฐ..
-
ArraySliceSwift 2023. 1. 12. 15:20
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐์ด๋ฒ ํฌ์คํ ์ ArraySlice์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ ์ด์ ์ Swift์์ ๋ฌธ์์ด ์ฒ๋ฆฌ์ ๋ํด ํ์ตํด๋ณธ์ ์ด ์์ต๋๋ค.split ๋ฉ์๋๋ก ๋ฌธ์์ด์ ๋ถ๋ฆฌํ ๋ ๋ฐํ๋๋ ํ์ ์ด SubSequence Array ํ์ ์ด์์ด์.์ฆ ์ฌ๊ธฐ์ ๋ค์ ํฌ์คํ ์์ ์ง๊ณ ๋์ด๊ฐ์๊ณ ํ SubSequence๋ผ๋๊ฒ์ ArraySlice์ ๋ณ์นญ์ด๊ธฐ์ ArraySlice์ ๋ํด ๊ฐ๋จํ ์์๋ณด๊ฒ ์ต๋๋ค๐ฅธํน์ ๋ฌธ์์ด ์ฒ๋ฆฌ๋ฅผ ๋จผ์ ๋ณด๊ณ ์ค๊ณ ์ถ์ผ์๋ฉด ์๋ ํฌ์คํ ์ ์ฐธ๊ณ ํด์ฃผ์ธ์!https://green1229.tistory.com/318 Swift์ ๋ฌธ์์ด ์ฒ๋ฆฌ (split vs components)์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ Swift์์์ ๋ฌธ์์ด ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๋ ๋ ๋ฉ์๋ split๊ณผ compo..