์ ์ฒด ๊ธ
-
Provisioning Profiles ์ค๋ฅ ํด๊ฒฐํ๊ธฐXcode 2022. 4. 14. 00:31
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ค๋์ Provisiong Profiles ์ค๋ฅ๋ฅผ ํด๊ฒฐํด๋ณด๋๊ฑธ ํฌ์คํ ํ๋ คํฉ๋๋ค๐๐ป ๊ฐ์๊ธฐ ์ค๋ ๋น๋๋ฅผ ์ฌ๋ฆฌ๊ธฐ ์ํด fastlane์ผ๋ก ์ฑ ์ปค๋ฅํธ ์ฌ์ดํธ์ ์ ๋ก๋ ํ๋ ๋์ค ์๋์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ง๋ฌ์ด์๐ญ ๋ญ ์๋ฌ์ผ ๋์ฒด... ์ด์ ๊น์ง ์ ๋๋ ๋น๋ ์ ๋ก๋๊ฐ ํ์๊ฐ์? ์ผ๋จ ์์ธ์ ํ์ ํด๋ณด๋ ค๊ณ ์๋ฌ ๋ฉ์์ง๋ฅผ ๋ดค์ด์. ์๋ ์..... ๊ทธ๋์ ์ฒ์์ fastlane ๋ฌธ์ ์ธ๊ฐ ํด์ Xcode๋ก ์๋ ์์นด์ด๋ธํด์ ์ ๋ก๋๋ฅผ ์๋ํด๋ดค์ด์! ใ ใ .. ๋๊ฐ์ด ๋จ๋ค? ๊ทธ๋๋ ๋๊ฐ์ ์๋ฌ๋ฅผ ๋ด๋ฑ์ด์. ์ ๋นจ๊ฐ ํ ๋๋ฆฌ๋ก ๊ฐ์ธ๋์ ๋ฌธ๊ตฌ๊ฐ ์์ฃผ ์ค์ํ ํคํฌ์ธํธ์์ต๋๋ค๐คฏ "Expired Profile signing certificate" ์ ๋ฉ์์ง๊ฐ ํต์ฌ์ธ๊ฒ ๊ฐ์์ต๋๋ค. ํ๋กํ์ผ ์ฌ์ด๋ ์ธ์ฆ์ด ๋ง๋ฃ๋์๋ค...
-
LottieLibrary 2022. 4. 12. 19:00
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Lottie๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์๋ณด๋ คํฉ๋๋ค๐ง ์ ๋๋ฉ์ด์ ์ ํญ์ ์ด๋ ค์ด๋ฐ... ์ ๋ง ์ด๋ ค์ด๋ฐ๐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ํ์์ ์ ๊ณตํด์ฃผ๋ API๋ค๋ก๋ง ํ๊ธฐ์๋ ์ ๋จธ๋ฆฌ๊ฐ ์๋ฐ๋ผ๊ฐ๊ณ ๊ฐ๊ฐ๋ ์๊ณ ๐ญ ๊ทธ๋ด๋ ๋ง์ด ์ฌ์ฉํ๋๊ฒ Lottie๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋๋ผ๊ตฌ์! ๊ทธ๋์ ์ค๋ ํ๋ฒ ์ Lottie๋ฅผ ๊ฐ๋จํ ํด๋ณด๋ คํฉ๋๋คใ ใ Lottie? Lottie๋ airbnb์์ ๋ง๋ ๊ฒ ๊ฐ์์! ์ฐ์ ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฆฌ๋๋ฏธ ์ค๋ช ์ ๋ณด๊ฒ ์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฒกํฐ ๊ธฐ๋ฐ ์ ๋๋ฉ์ด์ ๊ณผ ์ํธ๋ฅผ ์ต์ํ์ ์ฝ๋๋ก ์ค์๊ฐ ๋ ๋๋งํด์ฃผ๋ iOS/Android์์ ๋ชจ๋ ์ง์ ๊ฐ๋ฅํ ๋ชจ๋ฐ์ผ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. Bodymovin JSON ํ์์ผ๋ก ๋ด๋ณด๋ด์ง ์ ๋๋ฉ์ด์ ๊ณผ ๋ฒกํฐ๋ฅผ ๋ก๋ํด ๋ ๋๋งํด์ค๋ค๊ณ ํด์๐ค Bodymovin J..
-
SwiftUI - TabViewSwiftUI 2022. 4. 9. 12:38
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI ๋ด์์ ๊ธฐ๋ณธ ์ ํ์์ ์ ๊ณตํ๋ TabView์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ ์ฃผ๋ก ์ฑ์ ๊ตฌ์ฑํ๋ค๋ณด๋ฉด ํ๋จ์ ํ / ์ค์ ๋ฑ ๋ฉ๋ด๋ก ๊ฐ ์ ์๋ TabBar์ ๋ํด ๊ผญ ๊ตฌ์ฑํ๊ณค ํฉ๋๋ค. ์ด๋ป๊ฒ ๋ณด๋ฉด ์๋ ์ฑ์ ์ฐพ๊ธฐ๊ฐ ๋ ์ด๋ ค์ธ์ ๋์ ๋๋ค๐ฅฒ ๋ฐ๋ก ์๋ฐ๊ฑฐ์! ๊ทธ๋์ ์ด๋ฒ ํฌ์คํ ์์ ์ด๊ฑธ ๊ตฌ์ฑํ ์ ์๋ TabView์ ๋ํด ์์๋ณด๊ณ ๊ตฌํํด๋ณผ๊ป์ใ ใ TabView? ๊ณต์๋ฌธ์๋ฅผ ํํด์ณ๋ณด์ฃ ! ํญ๋ทฐ์ ์ ์๋ ๋ํํ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์์๋ฅผ ์ฌ์ฉํด ์ฌ๋ฌ ํ์ ๋ทฐ ๊ฐ ์ ํํ ์ ์๋๋ก ํ๋ ๋ทฐ์ ๋๋ค. ์ฆ ๋ค๋ค ํํ ์๊ณ ์๋ ํญ๋ฐ์ ํญ๋ชฉ๋ค์ ํด๋ฆญํด ๋ทฐ๋ฅผ ์ ํํ ์ ์๊ฒ ํด์ฃผ๋๊ฒ์ ๋๋ค. TabView ์ ์ธ struct TabView where SelectionValue : H..
-
CasePathTCA 2022. 4. 6. 09:47
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ CasePath์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ ์ ๋ ์ฃผ๋ก ์์ Composable Architecture(TCA)๋ฅผ ์ฌ์ฉํ๋๋ฐ ํ reducer๋ฅผ pullback ๋ฐ์์ฌ๋ keypath์๋ ๋ค๋ฅธ casepath๋ฅผ ๋ณผ ์ ์์๊ธฐ์ ์ด๊ฒ์ ๋ํด ๋ญํ๋ ์น๊ตฌ์ธ์ง ์์๋ณด๋ คํฉ๋๋ค! ์ฐ์ ์ด ์น๊ตฌ๋ ์ด๋ฆ์์๋ ๋๊ปด์ง์ง๋ง keypath์ ๋น์ทํ ์ญํ ์ ํด์ฃผ๋ ์น๊ตฌ๊ฐ์ฃ ? ๊ทธ๋ผ ์ด์ ์์๋ณด์์ฃ ! CasePath? CasePath๋ Swift์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํด์ฃผ๋ keypath๊ฐ์ ์น๊ตฌ๋ ์๋๋๋ค. ์ฆ, TCA๋ฅผ ๋ง๋ pointfreeco์์ ์ปค์คํ ํ๊ฒ ๋ง๋ค์ด์ค ์คํผ๋ ์ดํฐ์ ๋๋ค. ๊ทธ๋ผ์ผ๋ก ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ ๋๋ก ๋ณด๊ฒ ์ต๋๋ค. (์ฌ์ค ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ์ ๋ ํผ๋ฐ์ค๋ ๋ค ๋ฒ์ญ์ ๊ฑฐ์น๊ฒ์ด..
-
DarkModeiOS 2022. 3. 31. 20:51
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ๋คํฌ๋ชจ๋์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค๐๐ป ๋คํฌ๋ชจ๋? ๋คํฌ๋ชจ๋๋ iOS 13 ์ด์์์ ํํ๋ค ๋งํ๋ ์ค์ ์์ ๋๋ฐ์ด์ค ์์ฒด๋ฅผ ๋คํฌ๋ชจ๋๋ก ์ค์ ํ๋ฉด ์ ์ฒด์ ์ผ๋ก ์ด๋์ด ํ ๋ง์ ์์คํ ์ ์ฑํํ๋๋ก ํ ์ ์์ต๋๋ค. ํน์ง์ ์ด๋์์ง๋๋งํผ ๋ ๋ง์ ์๋๊ฐ์ ์ฌ์ฉํด ์ ๊ฒฝ ์ปจํ ์ธ ๋ค์ ๋ ๋ถ๊ฐ์์ผ์ค๋๋ค. ์ฑ์์ ๋คํฌ/๋ผ์ดํธ ๋ชจ๋ ๋์ ์ ์ฃผ์์ 1. ์ฑ๋ ๋คํฌ๋ชจ๋์ ๋ฐ๋ผ ์ ๋ฐ์ํด์ผํฉ๋๋ค. 2. ๋ผ์ดํธ/๋คํฌ ๋ชจ๋์์ ๋์์ธ์ด ์๋ํ๋ฐ์ ๊ฐ์ด ์ ์์ ์ธ์ง ํ ์คํธํด์ผํฉ๋๋ค. 3. ๋๋น ๋ฐ ํฌ๋ช ๋ ๋ฑ ์ ๊ทผ์ฑ ์ค์ ์ ์กฐ์ ํ์๋์๋ ๋คํฌ๋ชจ๋์์ ๊ฐ๋ ์ฑ์ด ์ข์์ง ํ์ธํด์ผํฉ๋๋ค. ๋คํฌ๋ชจ๋ ์์ ๊ด๋ จ ๋คํฌ๋ชจ๋์ ์์์ ์ ํํ ๋๋ ์ค์ํ ์ฌํญ๋ค์ด ์กฐ๊ธ ์์ต๋๋ค. 1. ์์คํ ๋ฐฐ๊ฒฝ์ ์ ํธ - ๋คํฌ๋ชจ๋๋ ..
-
Combine - ConnectablePublisherCombine 2022. 3. 28. 20:20
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ์ ์๊ฐ์์ multicast์ share๋ฅผ ํ์ตํ๋ฉด์ ์ด์ง ์ค์น๋ฏ์ด ๋งํ๊ณ ๊ฐ ConnectablePublisher์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐๐ป ์ฐ์ ๋ง์ฝ ์ด์ ํฌ์คํ ์ธ multicast์ share๋ฅผ ๋ชป๋ณด์ จ๋ค๋ฉด ๋ณด๊ณ ์ค์๋๊ฑธ ์ถ์ฒํด์! https://green1229.tistory.com/230 Combine - multicast / share ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ๋ค์ ์ปด๋ฐ์ธ ์ธ๊ณ๋ก ๋์์ multicast์ share์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐๐ป ์ฐ์ ์ด๋ค๊ฑธ ํ๋ ์น๊ตฌ๋ค์ด๋!? ํ๋์ Publisher๋ก ๋ถํฐ ๊ตฌ๋ ์ ํ ์ฌ๋ฌ Subs green1229.tistory.com ์ด์ ํฌ์คํ ์์ ์ธ๊ธํ ConnectablePublisher์ ๋ํ ..
-
Combine - multicast / shareCombine 2022. 3. 24. 20:01
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ๋ค์ ์ปด๋ฐ์ธ ์ธ๊ณ๋ก ๋์์ multicast์ share์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐๐ป ์ฐ์ ์ด๋ค๊ฑธ ํ๋ ์น๊ตฌ๋ค์ด๋!? ํ๋์ Publisher๋ก ๋ถํฐ ๊ตฌ๋ ์ ํ ์ฌ๋ฌ Subscriber๋ค์๊ฒ ๊ฐ๊ฐ ์ด๋ฒคํธ๋ฅผ ์ฌ๋ฌ๋ฒ ๋ฐํํ๋๊ฒ ์๋๋ผ ํ๋์ ์์์ ํ๋ฒ์ ์ด๋ฒคํธ๋ง ๋ฐ์์์ผ์ค ์ ์๋๋ก ํด์ฃผ๋ ์น๊ตฌ๋ค์ ๋๋ค๐ ์ด๋ฒ๊ฑด ๊ฝค๋ ๊ฐ๋จํ ์ดํด๋ ์ ์์ผ๋ ํ๋ฒ ํด๋ณด์์ฃ ! multicast ๊ณต์๋ฌธ์๋ฅผ ๋ณด๋ฉด ํด๋ก์ ๋ฅผ ์ ์ฉํด ๊ตฌ๋ ์์๊ฒ ์์๋ฅผ ์ ๋ฌํ๋ subject๋ฅผ ๋ง๋ค์ด์ค๋ค๊ณ ํด์. ์ญ์ ๊ณต์๋ฌธ์์ ์ ์๋ ์ด๋ ค์...๐คฏ ์ฐ์ ๊ทธ๋ฌ๋ ค๋~ ํ๊ณ ์ ์๋ ์ฝ๋๋ฅผ ๋ณด์์ฃ ! func multicast(_ createSubject: @escaping () -> S) -> Publishers.Mul..
-
SwiftUI - @State / @Binding / @StateObject / @EnvironmentObjectSwiftUI 2022. 3. 21. 20:15
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ์ ํฌ์คํ ์ ์ด์ด SwiftUI์์ ๊ตฌ์กฐ์ฒด ๋ด๋ถ์์ ๊ฐ์ ๋ณ๊ฒฝํ์ฌ ๋ฐ์ํด์ฃผ๊ฑฐ๋ ์ ์ญ์ ์ผ๋ก ๊ฐ์ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ์ํด์ฃผ๋ ๊ทธ๋ฐ ์น๊ตฌ๋ค์ธ ํ์ดํ์ ์ธ์น๊ตฌ ์ฆ, @State, @Binding, @StateObject, @EnvironmentObject์ ๋ํด์ ํ์ตํด๋ณด๊ฒ ์๋๋ค๐๐ป ์ฐ์ ํ๋์ฉ ์ฐจ๋ก๋๋ก ์งํํด๋ณด๊ฒ ์ต๋๋ค๐ @State ์ ์๋ฅผ ๋จผ์ ๋ณด๋ฉด, SwiftUI์์ ๊ฐ์ ์ฝ๊ณ ์ธ ์ ์๋ ์ ํ์ ์ด๋ ธํ ์ด์ ์ ๋๋ค. @frozen @propertyWrapper struct State ์ญ์ propertyWrapper์ด๊ณ ๊ตฌ์กฐ์ฒด์ ๋๋ค. SwiftUI์์ ์ฐ์ ๋ทฐ๋ ๊ตฌ์กฐ์ฒด์ ๋๋ค. ์ฆ, ๋ด๋ถ ๊ฐ์ ๋ณ๊ฒฝํด์ค ์ ์๋๋ฐ ์ด @State๋ฅผ ์ด์ฉํด ๋ณ๊ฒฝํด์ค ์ ์์ต๋๋ค. ๋ํ ๊ตฌ์กฐ์ฒด์ด๊ธฐ..