ios
-
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..
-
UIKit๊ณผ SwiftUI์์ ํ ์คํธ์ ์๊ฐ&ํ๊ฐ ์กฐ์ ํ๊ธฐSwiftUI 2023. 2. 20. 20:40
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ UIKit๊ณผ SwiftUI์์ ํ ์คํธ์ ์๊ฐ ๋ฐ ํ๊ฐ์ ์ค์ ํ๋ ๊ตฌํ์ ํด๋ณด๊ฒ ์ต๋๋ค๐ ์ฐ์ ์๊ฐ๊ณผ ํ๊ฐ์ด ๋ญ๊น์? ์๊ฐ์ ๊ธ์์ ๊ธ์ ์ฌ์ด ๊ฐ๊ฒฉ์ ๋ปํฉ๋๋ค. ์ฆ Letter Spacing์ด๋ผ๊ณ ๋ ๋ง์ด ํ๊ธฐํ๋ฉฐ ํผ๊ทธ๋ง๋ ์ ํ๋ฆฐ์์ ํด๋น ์์ฑ ๊ฐ์ ์ด๋ฆ๋ ๋ณดํต Letter Spacing์ผ๋ก ํ๊ธฐ๋ฉ๋๋ค. ํ๊ฐ์ ์ค๋์ด๋ผ๊ณ ๋ ํ๋ฉฐ ๊ธ์ํ ์ฌ์ด ๊ฐ๊ฒฉ์ ๋ปํฉ๋๋ค. ํ์ดํฌ๊ทธ๋ํผ์์ ์ธ์ ํ ์ค ์ฌ์ด์ ๊ณต๊ฐ์ ์๋ฏธํ๋ฉฐ ๋ณดํต Line Spacing์ด๋ผ๊ณ ๋ช ์นญํฉ๋๋ค. ์ฐ๋ฆฌ๋ Text, TextField, TextView๋ฅผ ์์ฃผ ์ฌ์ฉํ๋ฉด์ ์ด ํ ์คํธ ๊ฐ ์๊ฐ๊ณผ ํ๊ฐ์ ์กฐ์ ํ ์ผ์ด ๋ง์์ง๋๋ค. ํด๋น ์์ฑ์ ์กฐ์ ํ์ฌ ๋ณด๋ค ๋ ๋ณด๊ธฐ ์ข์ UI๋ฅผ ๋ง๋ค๊ณ ์ฌ์ฉ์๋ค์๊ฒ ์ฝ๊ฒ ์ธ์๋๋๋ก ํด์ค ์..
-
UITextView๋ฅผ SwiftUI์์ ์ปค์คํ ํ๊ฒ ์ฌ์ฉํ๊ธฐSwiftUI 2023. 2. 17. 14:00
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ ํ ์คํธ๋ทฐ ๊ตฌํ์ ์ํด ๊ธฐ๋ณธ ์ ๊ณตํ๋ TextEditor๋ฅผ ์ฌ์ฉํ์ง ์๊ณ UIKit ์ธ์์ UITextView๋ฅผ ๊ฐ์ ธ์ ์ ๋ง๋๋ก ํ ์คํธ๋ทฐ๋ฅผ ์ปค์คํ ํ๊ฒ ๊ตฌํํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค๐ ์ TextEditor ์์ฐ์ฃ !? ์ฐ์ ํ์ฌ ๊ธฐ์ค iOS 16์์ TextEditor๊ฐ ๋ถ๋ช ์ธ๋งํด์ง๊ฒ์ ์ฌ์ค์ ๋๋ค. ๋ค๋ง ์ต์ ๋ฒ์ ์ ์ฌ์ฉํ ์ ์๋ ํ๊ฒฝ์ ์ฒํ ์ฌ๋ฌ๋ถ๋ค์ด ๋ ๋ง์๊ฒ ๊ฐ๊ณ ์ ์ญ์ ๊ทธ๋ ์ต๋๋ค๐ญ 14,15 ๋ฒ์ ๊ธฐ์ค์ผ๋ก ๊ฐ๋จํ ์ง์ด๋ณด๋ฉด ์ฐ์ SwiftUI์ ๊ธฐ๋ณธ ์ ๊ณต๋๋ TextEditor์์๋ ์ฐ๋ฆฌ๊ฐ ํํ ์ฌ์ฉํ๋ placeholder๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ์ง ์์ ํ์ํ๋ฉด overlay๋ก ์ปจํธ๋กค ํด์ค์ผํฉ๋๋ค. ๋ ํ ์คํธ๊ฐ ์ ๋ ฅ๋๋ ์นธ์ Inset์ ์กฐ์ ํ ๋..
-
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..
-
projectedValueSwift 2023. 1. 17. 19:52
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ ProjectedValue์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ ์ด์ ์ Property Wrapper๋ฅผ ํฌ์คํ ํ๋ค ProjectedValue๋ผ๋ ๊ฒ์ ๋ํด ๋ค์์ ์ธ๊ธํ๋ค๊ณ ํ๋๋ฐ ๋ฒ์จ ์๊ฐ์ด ๋ง์ด ์ง๋ฌ๋ค์! ๊ทธ๋์ ์ด๋ฒ์๋ ๊น๋จน์ง ์๊ณ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋คใ ใ Property Wrapper๊ฐ ๋จผ์ ์ ํ์ด ๋์ด์ผ ์ดํดํ๊ธฐ๊ฐ ์์ํจ์ผ๋ก ํน์ ๊ฐ๋ ์ ๋ค์ ๋ณต์ตํ๊ณ ์ถ์ผ์๋ค๋ฉด ์๋ ํฌ์คํ ๋ถํฐ ๋ด์ฃผ์ธ์๐ https://green1229.tistory.com/238 Property Wrapper ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Swift์ Property Wrapper๋ฅผ ์์๋ณด๋ คํฉ๋๋ค๐ Property Wrapper? Swift 5.1์์ ์ฒ์ ์๊ฐ๋์ด ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ผ๋ก ํ๋กํผํฐ..