SWIFT
-
SwiftUI - Infinity Carousel View (feat. TCA)SwiftUI 2022. 11. 17. 15:51
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ Infinity Carousel View๋ฅผ ๋ง๋๋ ํ์ต์ ํด๋ณด๊ฒ ์ต๋๋ค๐ UIKit์์๋ ์ฝ๊ฒ ๊ตฌํ ๊ฐ๋ฅํ Infinity Carousel View๋ฅผ SwiftUI์์๋ ์กฐ๊ธ ๊น๋ค๋กญ๋๋ผ๊ตฌ์ ๊ตฌํํ๊ธฐ๊ฐ๐ญ ๊ทธ๋์ ์ฌ๋ฌ ๋ ํผ๋ค์ ์ฐธ๊ณ ํ์ฌ TCA์ ๋ น์ฌ ๊ตฌํํด๋ดค์ต๋๋ค. ์ด๋ฒ์๋ ์ค๋ช ์ ํฌ๊ฒ ์๊ณ ์ฝ๋๋ก ๋ณด๋๊ฒ ์ข์๊ฒ ๊ฐ์์! ์ ์ฒด์ ์ผ๋ก Carousel Core/View๊ฐ ์๊ณ ์ด๋ฅผ ์ฌ์ฉํ๋ ๋ถ๋ถ์์ Pullbackํ์ฌ ์น์ด์ค๋๋ค. ์ ์ฝ๋์์๋ Main์์ ์ด๋ฅผ ํด์ฃผ๊ณ ์์ด์. ๊ทธ๋ผ ๋ฐ๋ก ์ฝ๋ ๋ณด์์ฃ ! Carousel View๋ถํฐ ๋ณด๊ฒ ์ต๋๋ค. Carousel View ๋๋ณด๊ธฐ import ComposableArchitecture import SwiftUI..
-
Codility - TriangleAlgorithm 2022. 11. 15. 16:22
์๋ ๋ฌธ์ ๋ ์ฝ๋๋ฆฌํฐ์์ ์ ๊ณตํ๋ Sorting > Triangle์ ๋ฌธ์ ์ ๋๋ค๐ง๐ป๐ป ๋ฌธ์ ์ ์ ๋๋ณด๊ธฐ An array A consisting of N integers is given. A triplet (P, Q, R) is triangular if 0 ≤ P A[R], A[Q] + A[R] > A[P], A[R] + A[P] > A[Q]. For example, consider array A such that: A[0] = 10 A[1] = 2 A[2] = 5 A[3] = 1 A[4] = 8 A[5] = 20 Triplet (0, 2, 4) is triangular. Write a function: public func solution(_ A ..
-
removeArrangedSubview(_:) VS removeFromSuperview()iOS 2022. 11. 14. 17:59
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ ์ค๋๋ง์ UIKit์ ๋ค๋ค๋ณผ๊นํด์! ์ฃผ์ ๋ ํ์ ๊ตฌ์ฑ๋ ๋ทฐ๋ฅผ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ผ๋ก removeArrangedSubview(_:)์ removeFromSuperview()๊ฐ ์์ต๋๋ค. ์ด ๋ ๋ฉ์๋๋ฅผ ์์๋ณด๋ฉฐ ์ฐจ์ด๋ฅผ ์์๋ณด๊ฒ ์ต๋๋ค๐ ์ฐ์ ๊ทธ๋ผ removeArrangedSubview(_:)๋ถํฐ ์์๋ณด์ฃ ! removeArrangedSubview ๋ฐฐ์ด๋ ์์ ๋ทฐ์ ์คํ ๋ฐฐ์ด์์ ํ๋ผ๋ฏธํฐ๋ก ๋์ด์จ ๋ทฐ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. func removeArrangedSubview(_ view: UIView) ์ ์ธ์ ์์ ๊ฐ์ด ํด๋น ๋ฉ์๋์ ์์ ๋ทฐ๋ก๋ถํฐ ์ ๊ฑฐํ ํ์ ๋ทฐ๋ฅผ ์ธ์๋ก ๋ฃ์ด์ฃผ๋ฉด ๋ฉ๋๋ค. ํด๋น ์์ ๋ทฐ์์๋ ์ด์ ๋์ด์ ์ ๊ฑฐ๋๋ ๋ทฐ์ ์์น ๋ฐ ํฌ๊ธฐ ๋ฑ์ ๊ด๋ฆฌํ์ง ์์์. ๊ทธ๋ ์ง๋ง ์์..
-
SwiftUI - ์กฐ๊ฑด์ ๋ฐ๋ผ overlay ํด์ฃผ๊ธฐ (feat. overlayIf)SwiftUI 2022. 11. 10. 14:13
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์ SwiftUI์์ ์กฐ๊ฑด ๋ถ๊ธฐ์ ๋ฐ๋ผ ์ปจํ ์ธ ์ฆ ๋ทฐ๋ฅผ overlay On/Off๋ฅผ ํด์ค ์ ์๋ ViewModifier๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. SwiftUI์์ overlay์ ZStack์ด๋ผ๋ ๊ธฐ๋ฅ๋ค์ ํ์ฉํด ์ค์ฒฉ๋ ๋ทฐ๋ฅผ ๋ํ๋ด์ค ์ ์์ต๋๋ค. ํน์ ํด๋น ๊ฐ๋ ์ด ๊ถ๊ธํ์ ๋ถ๋ค์ ์๋ ํฌ์คํ ์ ๋จผ์ ์ฐธ๊ณ ํ์ฌ overlay ๋ถ๋ถ์ด๋ผ๋ ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง ๋ณด๊ณ ์ค๋ฉด ๋์์ด ๋ฉ๋๋ค๐ https://green1229.tistory.com/173 Overlay & ZStack ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Overlay์ ZStack์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ ์์์ผํ์ฃ ? SwiftUI๋ก ๋ทฐ๋ฅผ ๊ตฌ์ฑํ๋ค๋ณด๋ฉด Overlay์ ZStack์ด ๋น์ทํ ๊ธฐ๋ฅ์ ํด์ค๋ค๋ ์ธ..
-
SwiftUI - ScrollViewReaderSwiftUI 2022. 11. 3. 17:28
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์์ ScrollViewReader๋ผ๋๊ฒ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ SwiftUI๋ฅผ ์ฌ์ฉํ๋ฉด์ ScrollView๋ผ๋ View๋ฅผ ์์ฃผ ๋ง์ด ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค. ์ด๋ ํ์ฌ ์คํฌ๋กค๋ง์ ๊ฐ์งํ๊ฑฐ๋ ์๋์ผ๋ก ์คํฌ๋กค๋์ด ํ์ํ ํฌ์ธํธ๋ก ์์น ๋ณ๊ฒฝ์ ํ๋ ๋ฑ์ ๊ธฐ๋ฅ์ด ํ์ํ ๊ฒฝ์ฐ๊ฐ ๋ง์ฃ ๐ฅฒ ์ด๋ด๋ GeometryReader์ฒ๋ผ ScollView๋ฅผ ์ฝ์ด ๊ฐ์งํ ์ ์๋ ๋ ์์ด ํ์ํด์! ๊ทธ๋ด๋ ์ฌ์ฉํ๋๊ฒ์ด ๋ฐ๋ก ์ด ScrollViewReader์ ๋๋ค๐ ๊ทธ๋ผ ์์ธํ ์ด๋ค๊ฑด์ง ์์๋ณด์์ฃ ๐บ๐ป ScrollViewReader๋? ์์ ์ค๋ช ์์ ์กฐ๊ธ ์ฐ์ฅํด๋ณด์๋ฉด ScrollViewReader๋ ํ์ View, ScrollView๋ฅผ ์คํฌ๋กคํ๊ธฐ ์ํด ํ๋ก์๋ผ๋๊ฒ๊ณผ ํจ๊ป ์์ ํ ์ ..
-
TCA - Testing Effects (feat. unimplemented)TCA 2022. 10. 31. 11:30
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐์ด๋ฒ ํฌ์คํ ์์๋ TCA์์ Effect๋ฅผ ํ ์คํฐ๋ธํ ํ๊ฒฝ์ผ๋ก ๊ตฌ์ฑํ ์ ์๋ unimplemented๋ผ๋ ๋ฉ์๋์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ umimplemented๋ผ๋ ๋ป์ ์ฐ์ implemented์ ๋ฐ๋์ด์ฃ .๊ฐ๋ฐ์๋ค์ ํญ์ ๊ตฌํ์ ํ์์์?๊ตฌํ์ด๋ผ๋ ๋จ์ด์ธ implement๋ ์ต์ํ ๊ฑฐ๋ผ ์๊ฐํด์.๊ทธ์ ๋ฐ๋๋ ๊ตฌํ๋์ง ์์๋ค๋ ๋ป์ unimplement์ ๋๋ค.(๊ทธ๋ฅ ์ ๊ฐ ์์ฆ ์์ด ๊ณต๋ถ๋ ๊ฐ๊ฐํ ํ๋ คํด์ ์ฃผ์ ์ฃผ์ ์จ๋ดค๋ค์..!) ๊ฒฐ๊ตญ "๊ตฌํ๋์ง ์์, ์คํ๋์ง ์๋" ๋ป์ ๊ฐ์ง ๋ฉ์๋์ผ๊ฑฐ๋ผ ์ถ์ธกํฉ๋๋ค. TCA๋ฅผ ์ฌ์ฉํ๋ฉด์ ๋ฆฌ๋์์์ Effect๋ฅผ ๋ฐฉ์ถํ๋ฉด์ ํํ ์์๋ ๊ตฌํ์ผ๋ก ์ฌ์ฉํ์์์?๊ทผ๋ฐ ์ด Effect๋ฅผ ํ ์คํธ ํ๊ฒฝ์์๋ ๊ตณ์ด ๊ฒฐ๊ณผ๊น์ง ํ ์คํธํ ํ์๊ฐ ์์ด ๋์ด๊ฐ๋๊ฒ..
-
TCA - fireAndForgetTCA 2022. 10. 27. 09:40
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ TCA์ fireAndForget์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ ์ฐ์ fireAndForget์ด๋ผ๋ ์ฉ์ด๊ฐ ์์ํ ์ ์์ต๋๋ค! ๊ทธ๋ฅ ๋์ถฉ ์ถ์ธก์ ํด๋ณด๋ฉด "๋ถ์ง๋ฅด๊ณ ์์ด๋ฒ๋ฆฌ๊ธฐ"์ ๋๋์ผ๋ก ๋ฌด์ธ๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ฒฝ ์ฐ์ง ์์๊ฒ ๊ฐ์ ๋๋์ด ๋ค์ด์. ์ค์ ๋ก ๊ตฐ์ฌ์ ์ธ ์ฉ์ด์์๋ Fire And Forget์ด๋ผ๊ณ ํด์ 3์ธ๋ ๋ฏธ์ฌ์ผ ์ ๋ ๋ฐฉ์ ์ค ํ๋๋ผ๊ณ ํ๋ค์. ๋ฐ์ฌ ๋ฒํผ๋ง ๋๋ฅด๊ณ ๋๋ฉด ์ฌ๋์ด ๋ ์ด์์ ๋ฏธ์ฌ์ผ์ ์ ๋ํ๊ฑฐ๋ ๊ฑด๋๋ฆฌ์ง ์์๋ ๋๋ค๋ ๋ป์ผ๋ก ์๋์ผ๋ก ๋ชฉํ๋ฌผ์ ์ฐพ์๊ฐ ๋ช ์คํ๋ฐ์๐ https://ko.wikipedia.org/wiki/ํ์ด์ด_์ค_ํฌ๊ฒ ํ์ด์ด ์ค ํฌ๊ฒ - ์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์ ์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์ . ํ์ด์ด ์ค ํฌ๊ฒ(์์ด: fire-a..
-
TCA - concatenate & merge (์ฌ๋ฌ Effect๋ฅผ ๋จ์ผ Effect๋ก ๋ง๋ค๊ธฐ)TCA 2022. 10. 25. 14:54
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ TCA์ Effectํธ์ ๋๋ค. Effect๋ฅผ ๋ณํฉํ๋ ๋ํ์ ์ธ ๋๊ฐ์ ๋ฐฉ๋ฒ concatenate์ merge์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ ์์ ์ ์ ๊ฐ ํฌ์คํ ์ผ๋ก Rx๋ฅผ ํ์ตํ๋ฉด์ concat๊ณผ merge์ ๋ํด ์๊ฐํ๋ฉด์ ์ฐจ์ด์ ์ ์์๋ณธ์ ์ด ์์ต๋๋ค. TCA์์ Effect๋ผ๊ณ ํด์ ๋ค๋ฅผ๊ฒ ์์ด์. Observable, Publisher๋ ๋์ผํ๊ฒ ์๋ํฉ๋๋ค ์๋ฆฌ๋! ๊ทธ๋ ๊ธฐ์ ๋ง์ฝ TCA์์ ๋ฏ์ ๊ฒ์ฒ๋ผ ๋๊ปด์ง์๋ฉด ์๋ ํฌ์คํ ์ ๋ณด๊ณ ์ค์๋๊ฒ๋ ์ข์์๐๐ป https://green1229.tistory.com/166 concat & merge ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ concat๊ณผ merge์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ผ๋จ ๋ ๋จ์ด์ ์ฌ์ ์ ์ธ ์๋ฏธ๋ถ..