์ ์ฒด ๊ธ
-
Access Photo Library & Delete AssetiOS 2021. 10. 3. 09:58
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ๋๋ฐ์ด์ค ์ฌ์ง ์จ๋ฒ์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ ๋ฐ ์์ ์ ์ญ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ด์ ์ ์ ํฌ์คํ ์ค์์ ํ๋ฉด ์บก์ณ ๋ฐ ๋ นํ ๋ฐฉ์ง์ ๋ํด ํ์ตํด๋ณธ์ ์ด ์์ต๋๋ค! https://green1229.tistory.com/169 ํ๋ฉด ์บก์ณ ๋ฐ ๋ นํ ๋ฐฉ์ง ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ํ๋ฉด ์บก์ณ ๋ฐ ๋ นํ ๋ฐฉ์ง์ ๋ํด ํฌ์คํ ํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ ๊ณตํ๋ ์ฑ์์ ํ๋ฉด ์บก์ณ์ ๋ นํ๋ฅผ ์์ฒ์ ์ผ๋ก ์ฐจ๋จํ ์ ์์๊น์? ์ฐ์ , ๊ฐ๋ฅ green1229.tistory.com ๊ทธ๋ฐ๋ฐ ํ๋ฉด ์บก์ณ์ ๋ นํ ๋ฐฉ์ง๋๊ฒ์ ์ผ๋ฟ๋ง ๋์์ฃผ๋๊ฑธ ๋ณด์๋๋ฐ์. ๋ ๋ฐ์ ์์ผ์ ์ฌ์ฉ์๊ฐ ์ํ๋ค๋ฉด ์บก์ณ ๋ฐ ๋ นํ๋ ์ฌ์ง๊ณผ ์์์ ์ญ์ ํ ์๋ ์์ด์ผ ๋ ๊ฒ ๊ฐ์์. ๊ทธ๋ ๋ค๋ฉด ๋๋ฐ์ด์ค ์ฌ์ง ์จ๋ฒ์ ์ ..
-
RxSwfit - Debounce & ThrottleRxSwift 2021. 10. 2. 10:29
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ RxSwift์์ ์ฌ์ฉ๋๋ debounce์ throttle์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์์ธํ ํ์ตํ๊ธฐ์ ๊ฐ๋จํ๊ฒ debounce์ throttle์ด ์ด๋ค๊ฑธ ํด์ฃผ๋ ๋ฉ์๋์ธ๊ฐ์? Rx์์๋ ์ฌ์ฉ์์ ์ก์ ์ด๋ ์ ์ํด์ค๊ฒ์ ๋ฐ๋ผ observable์ด ๋ฐฉ์ถ๋ฉ๋๋ค. ๊ทธ ์๋ฆฌ๋ ๋ง์ฝ ๋์๋ค๋ฐ์ ์ผ๋ก ์ฌ๋ฌ ์ก์ ์ ์ทจํด์ฃผ๋ฉด observable์ด ๋ฐ๋ฅ๋ฐ๋ฅ ๋ถ์ด์ ๋ฐฉ์ถ๋๊ฒ ์ฃ ? debounce๋ ๊ฐ๋ตํ ํ์ด๋จธ๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค. ํ์ด๋จธ๋ฅผ ๋๊ณ ์ผ์ ์๊ฐ ํ ๋ง์ง๋ง์ ๋ค์ด์จ observable์ ๋ฐฉ์ถํด์ค๋๋ค. throttle๋ ๋น์ทํ๋ฏ ๋ค๋ฅธ๋ฐ์. throttle์ ์ด๋ฒคํธ๊ฐ ๋ฐฉ์ถ๋๋ฉด ํ์ด๋จธ๋ฅผ ๋๊ณ ํด๋น ํ์ด๋จธ ์ดํ์ ์ด๋ฒคํธ๋ฅผ ๋ ๋ค์ ๋ฐฉ์ถํ๋ ์ฐจ์ด์ ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ด์ ๋ณธ๊ฒฉ์ ์ผ๋ก ..
-
Swift 5.5 - async & awaitConcurrency 2021. 9. 25. 11:33
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Swift 5.5์์ ์๋กญ๊ฒ ๋์จ async & await์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ฌ์ค ๋์จ์ง๋ Swift 5.5๊ฐ ๋์จ 3์? ์ ๋์ง๋ง ์ด๋ฒ์ Xcode13์ผ๋ก ์ ๋ฐ์ดํธํ๋ฉด์ ๊ฐ์ด ํ์ตํด๋ณด๊ฒ ๋์์ต๋๋ค๐ async์ await๊ฐ ์ด๋ฒ Swift 5.5์์ ์ธ๊ธฐ๋ผ๊ณ ํ๋๋ฐ ์ ๊ทธ๋ฐ์ง ์์๋ณด๊ฒ ์ต๋๋ค! async & await๊ฐ ๊ฐ๋ตํ ๋ญํด์ฃผ๋์? ๋ค๋ฅธ ์ ํ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ์์ ์ ํด์ฃผ๋ ์ฝ๋๋ก ๋น๋๊ธฐ ์ฒ๋ฆฌ ์ฝ๋๋ฅผ ๋๊ธฐ ์ฒ๋ฆฌ์ฒ๋ผ ๋ณด์ผ ์ ์๋๋ก ์ง์ ์ด์ ๋น๋๊ธฐ ์ฒ๋ฆฌ์ ๋ฌธ์ 1. ๋น๋๊ธฐ ์ฒ๋ฆฌ ์ ํด๋ก์ ๋ฐ ์ฝ๋ฐฑ์ ํตํด ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ค ๋ณด๋ ๋ณต์ก๋ ์ฆ๊ฐ 2. ํ๋์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ์ผ๋๋ ํฌ๊ฒ ๋ฌธ์ ์์ง๋ง ์ฌ๋ฌ ๋น๋๊ธฐ ์ฒ๋ฆฌ์ ์ค๋ฅ ์ฒ๋ฆฌ๊ฐ ์์ด๋ฉด์ ๋ง์ ์ค์ฒฉ..
-
SwiftUI - NotificationCenterSwiftUI 2021. 9. 19. 12:06
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ NotificationCenter๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํ๊ฒ ์ต๋๋ค๐ง๐ป๐ป UIKit์์๋ ์ ์๊ฒ ๋๋ฐ ๋์ฒด SwiftUI์์๋ ์ด๋ป๊ฒ ๋ ธํผํฐ์ผ์ด์ ์ผํฐ๋ฅผ ํ์ฉํ ๊น์? ์ ๋ง ์ด๋ฒ ํฌ์คํ ์ ๊ฐ๋จํฉ๋๋ค. ์์๊ฐ์ ์~ํ๊ณ ๋๋๋ฒ๋ฆฌ๋ ๋ ํฌ๊ฒ ๋จ๊ณ ๋ณด์ ์ผ ๋ฉ๋๋ค๐ ์, ์ฐธ๊ณ ๋ก ์ด์ ์ ํฌ์คํ ํ๋ ์คํฌ๋ฆฐ์ท ์บก์ณ/๋ นํ ๊ฐ์ง ๋ฐ ๋ฐฉ์ง์ ๋ํด UIKit์ผ๋ก ๊ตฌํํ๊ฑธ SwiftUI์ NotificationCenter๋ฅผ ํตํด ๊ตฌํํ๋ ์์ ๋ก ๋ณด๊ฒ ์ต๋๋ค๐๐ป NotificationCenter ์์ฑ import SWiftUI struct mainView: View { let screenCapturePublisher = NotificationCenter.defaul..
-
Codility - CountDivAlgorithm 2021. 9. 12. 14:30
์๋ ๋ฌธ์ ๋ ์ฝ๋๋ฆฌํฐ์์ ์ ๊ณตํ๋ CountDiv์ ๋ฌธ์ ์ ๋๋ค๐ง๐ป๐ป ๋ฌธ์ ์ ์ Write a function: public func solution(_ A : Int, _ B : Int, _ K : Int) -> Int that, given three integers A, B and K, returns the number of integers within the range [A..B] that are divisible by K, i.e.: { i : A ≤ i ≤ B, i mod K = 0 } For example, for A = 6, B = 11 and K = 2, your function should return 3, because there are three numbers divisible by ..
-
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 ์ฐ์ ์ค๋ฒ๋ ์ด์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ์ค๋ฒ๋ ์ด๋ ํ์ฌ ๋ทฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ ๋ทฐ๋ฅผ ์น์ด์ค๋๋ค. ์ฆ ๋ฐ๋ก ์์ ๋ทฐ์ ํ์ ๋ทฐ๊ฐ ์ฐ๊ด์ฑ์ด ์๋ค๊ณ ๋ณผ ์ ์์ผ๋ฉฐ ๋ค๋ฅธ ๋ทฐ์๋ ์ํฅ์ ๋ผ์น์ง ์์ต๋๋ค. ์ฆ ์ ์ฒด์ ์ธ ๋ทฐ์ ์์๋ก ์๋ฆฌ์ก์ ๊ตฌ์ฑ๋๊ธฐ ๋ณด๋ค..
-
KeyPathSwift 2021. 9. 4. 10:34
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ KeyPath์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป KeyPath? ์.. ๊ณ์ ์์ด๋ก ์น๊ธฐ ๊ท์ฐฎ์ ํ๊ตญ์ธ์ด๋ผ ์๊ธฐ์๋ถํฐ ๋ณธ๋ฌธ์ ํคํจ์ค๋ผ๊ณ ํ์ดํํ๊ฒ ์ต๋๋ค! ํคํจ์ค๋ฅผ ์ ํ์ตํ๊ฒ ๋์๋ํ๋ฉด Composable Architecture๋ฅผ ์ค๋ฌด์์ ์ฌ์ฉํ๋ฉด์ ํ์ ๋ฆฌ๋์๋ฅผ ์์ ๋ฆฌ๋์์์ ๊ฐ์ ธ์ ์ก์ ์ ๊ตฌํํ ๋๊ฐ ์์ต๋๋ค. ์.. ์๋ฅผ๋ค์ด ๋ชจ๋ ํ ๋ชจ๋์ ์ง๋๋ทฐ ๋ชจ๋๋ ์๊ณ ๋ฆฌ์คํธ ๋ชจ๋๋ ์๋ค๊ณ ์ณค์๋ ์ง๋๋ทฐ ๋ชจ๋์์ ์ด๋ค ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด ํ ๋ชจ๋์์ ์ผ๋ฟ์ ๋์์ค์ผ ํ๋ ๊ฒฝ์ฐ๋ฅผ ๊ฐ์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋๊น ๋ชจ๋๊ฐ ์ข ์์ ๋ณด๋ฉด ์ด๋ ๊ฒ ๋๊ฒ ๋ค์! ์ผ.. ๋ง๋ค๊ณ ๋ณด๋ ์ง๊ทธ๋ฝ์ง๋ง ๋ฌดํผ ์ด๋ ์ต๋๋ค. ๋ค์ํ ํ์ ๋ชจ๋์ด Home ๋ชจ๋์ ์ํด์์ฃ ? ์ด๋ด๋ ํ ๋ชจ๋์์ ํ์ ๋ชจ๋์ ์..