ios
-
FlexLayout (1)Library 2022. 5. 4. 09:00
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ FlexLayout์ ๋ํด ํ์ตํด๋ณด๋ คํฉ๋๋ค! ์ด ์ฃผ์ ๋ ์ด๋์ ๋ ๋ฒ์๊ฐ ์ปค์ ์กฐ๊ธ ๋๋ ์ ํด๋ณด๋ คํด์! ์ด๋ฒ ํฌ์คํ ์์๋ ์ด๋ค๊ฑด์ง ์๊ฐ์ ์ ์ฌ์ฉ๋๋์ง ์๋ก ๊ฐ์ ๋๋ ๊ทธ๋ฆฌ๊ณ ๋์๊ฐ ๊ธฐ์ด์ ์ผ๋ก๋ ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง ํด๋ณด๊ฒ ์ต๋๋ค๐ ๋ทฐ ๋๋ก์ ๋ฐฉ์์ผ๋ก ์ด๋ค๊ฑธ ์ฑํํ์๋์? ์๋ก ์ฑ์ ๋ง๋ค๋ ๋ทฐ๋ฅผ ์ด๋ป๊ฒ ๊ทธ๋ฆด์ง์ ๋ํ ๊ณ ๋ฏผ์ ํญ์ ์์ต๋๋ค. SwiftUI๋ฅผ ์ธ์ง UIKit์ผ๋ก ์ฌ์ฉํ ์ง ๋ญ ๊ทธ๋ฐ ๋น์ฐํ ๊ณ ๋ฏผ..? ์ ๋ ๊ธฐ์ค์ ๋ฏธ๋๋ฉ ํ๊ฒ์ด ์ด๋ป๊ฒ ๋๋๋๋ฅผ ์ฐ์ ์ ์ผ๋ก ๊ธฐ์ค์ ์ผ์ต๋๋ค. SwiftUI๋ฅผ ์จ๋ณด๋ฉด์ ๊ต์ฅํ ์ ์ธํ์ผ๋ก ์ง๊ด์ ์ด์ฌ์ ์ฐ๊ธฐ ํธํ๊ณ ์ถํ ๋๋ฃ๊ฐ ํ๋ก์ ํ๊ธฐ์๋ ๊ฑฐ์ ๋ฌ๋์ปค๋ธ์์ด ์ดํดํ๊ธฐ ์ข์์ด์. ๋ค๋ง ์ ๊ฐ ํ๋จํ๊ธฐ๋ก๋ SwiftUI๋ฅผ ์ ๋ง ๋ฌด๋ฆฌ์์ด ์ํ๋..
-
Swift5.6 - existential anySwift 2022. 5. 2. 10:30
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Swift5.6์์ ์๊ฐ๋ existential any์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ ์ฐ์ existential any๊ฐ ๋ญ๊น์? existential์ ๋ป์ ์ค์ ๋ก ์กด์ฌํ๋ ์ฆ, ์ค์กด์ด๋ผ๋ ๋ป์ ์ฌ์ ์ ์ผ๋ก ๊ฐ์ง๊ณ ์์ต๋๋ค! ๊ทธ๋ฌ๋ฉด existential any๋ ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ any ํ์ ์ ๋ํด ์ค์กดํ๋ any ํ์ ์ด๋ผ๋ ๋๋์ผ๋ก ๋ค๊ฐ์ค๋ค์๐ค ๊ทธ๋ผ ์กฐ๊ธ ๋ ์์ธํ ์์๋ณด์ฃ ! https://www.hackingwithswift.com/swift/5.6/existential-any Introduce existential any – available from Swift 5.6 Link copied to your pasteboard. www.hackingwithswift..
-
AlamofireLibrary 2022. 4. 28. 10:48
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Alamofire(์๋ผ๋ชจํ์ด์ด)์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐๐ป ์ฐ์ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ํ์ตํ ๋ ์์ฃผ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด ์๋ผ๋ชจํ์ด์ด๋ ๋ง์ด ๋ค์ด๋ณด์ จ์๊ฑฐ์์! ์ฆ ์์์ค ๊ฐ๋ฐ์ํํ ๋๋ฆฌ ์ฌ์ฉ๋๊ธฐ๋ ํ๊ณ ์น์ํ๊ธฐ๋ํ๊ณ ๋ญ ๊ทธ๋ฐ..?! ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค๐ ์๋ผ๋ชจํ์ด์ด ๊นํ ๋ ํฌ๋ก ๊ฐ๋ณด๋ฉด ์คํ๊ฐ ๋ฌด๋ ค 3๋ง7์ฒ๊ฐ๊ฐ ๋๊ณ ํฌํฌ๋ ๋ง์ด ๋ฐ๊ฐ์ จ์ด์๐ฅณ ๊ทธ๋ผ ์ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ฑ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌํ๋ฉด ๋ ์ค๋ฅด๊ณ ํํ๋ค ์ฌ์ฉํ๊ณ ์์๊น์?๐ค ์ฐ์ ์ด์ ๋ฅผ ์ฐพ์ผ๋ ค๋ฉด ์ด ์๋ผ๋ชจํ์ด์ด๊ฐ ๋ญํ๋ ์น๊ตฌ์ธ์ง ์๋๊ฒ์ด ์ฐ์ ์ผ๊ฒ ๊ฐ์์. Alamofire? ๊ณต์ ๊นํ ๋ ํฌ ๋ฆฌ๋๋ฏธ์์ ์๋ผ๋ชจํ์ด์ด๋ฅผ ์ด๋ ๊ฒ ์๊ฐํ๊ณ ์์ต๋๋ค. Alamofire๋ Swift๋ก ์์ฑ๋ HTTP ๋คํธ์ํน ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ์ด๋ง..
-
Result (With. Composable Architecture)Swift 2022. 4. 25. 10:03
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Result์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐๐ป ๋๋ถ์ด ์ปดํฌ์ ๋ธ ์ํคํ ์ณ์์ ์ด๋ฐ Result ํ์ ์ ์ด๋ป๊ฒ ํ์ฉํ๋์ง ๋ณด์์ฃ ! Result? ์ฐ์ ์ ์ธ๋ถ๋ ์ด๋ ์ต๋๋ค. @frozen enum Result where Failure : Error ์ผ๋ฐ์ ์ธ ์ด๊ฑฐํ์ด๋ฉฐ ๊ฐ ๊ฒฝ์ฐ์ ์ฐ๊ฒฐ๋ ๊ฐ์ ํฌํจํด ์ฑ๊ณต ํน์ ์คํจ๋ฅผ ๋ํ๋ด๋ ์ด๊ฑฐํ ํ์ ์ ๋๋ค! Result์ ํ์์ฑ? ์ฐ๋ฆฌ๋ ์ด๋ฏธ do, catch, try, throws์ ๊ฐ์ ์๋ฌ ์ฒ๋ฆฌ์ ๋ํ ๋ฌธ๋ฒ์ ์๊ณ ์๋ค๊ณ ๊ฐ์ ํฉ์๋ค! ํด๋น ๋ฌธ๋ฒ๋ค๋ก ์๋ฌ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ง๋ง ๋ชจ๋ ๊ฒฝ์ฐ์์ ๋ค ์ฒ๋ฆฌํ๊ธฐ์ ์ด๋ ต๊ณ ๋ณต์กํฉ๋๋ค. ์ด๋ฌํ ์น๊ตฌ๋ค์ ์๋ฌ์ ๋๊ธฐ์ ์ธ ์ฒ๋ฆฌ๋ฅผ ํ๋๋ฐ ๋์์ด ๋ฉ๋๋ค. ๋ค๋ง ์ฐ๋ฆฌ๋ ํต์ ๊ณผ ๊ฐ์ ์ํฉ์์ ์๋ฌ๋ฅผ ๋น๋๊ธฐ ์ฒ๋ฆฌ..
-
Property WrapperSwift 2022. 4. 21. 10:11
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Swift์ Property Wrapper๋ฅผ ์์๋ณด๋ คํฉ๋๋ค๐ Property Wrapper? Swift 5.1์์ ์ฒ์ ์๊ฐ๋์ด ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ผ๋ก ํ๋กํผํฐ๋ฅผ ๊ฐ์ธ ํน๋ณํ ํ์ ์ผ๋ก ๋ง๋ค์ด์ฃผ๋ ์น๊ตฌ์ ๋๋ค. ๋ค์์ ์ฒ์ฒํ ๊ฐ์ด ํ์ตํด๋ณด๊ฒ ์ง๋ง ์ฐ์ ์ฐ๋จนํด๋ณด๋ฉด ํ๋กํผํฐ์ ์ปค์คํ ํ ์ด๋ค ๋ก์ง๋ค์ ๋งค๋ฒ ๋์ผํ๊ฒ ์ง์ ํด์ฃผ์ง ์๊ณ Property Wrapper๋ก ๋ง๋ ํ์ ์ผ๋ก ํ๋กํผํฐ๋ฅผ ์ ์ธํด ๋์ผ ๋ก์ง์ ์ํํ๋๋ก ํฉ๋๋ค! Property Wrapper๋ ํนํ ์ง์ญ๋ณ์์์๋ง ์ฌ์ฉ๊ฐ๋ฅํฉ๋๋ค๐ ์๋ง ๋ค๋ค ๋ง์ด ๋ณด์ จ์๊ฒ ๊ฐ์ @UserDefaults, @State, @Binding ๋ฑ๋ฑ ๋๊ฒ ๋ง์ ์ด๋ฌํ ํํ๋ฅผ ๋ ์น๊ตฌ๋ค์ด Property Wrapper๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค. ์ ๋ ํน..
-
์ ํ ๋ก๊ทธ์ธ (Sign In with Apple)iOS 2022. 4. 18. 11:44
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ iOS์์ ์ ํ ๋ก๊ทธ์ธ์ ์ฐ๋์ํค๋ ํ์ต์ ํด๋ณด๊ฒ ์ต๋๋ค๐๐ป ์ ํ ๋ก๊ทธ์ธ? ์ฌ๋ฌ ์ฑ์ ๋ณด๋ฉด ์์ ๋ก๊ทธ์ธ(์นด์นด์ค, ๊ตฌ๊ธ, ๋ค์ด๋ฒ)๋ฑ์ ์ฐ๋ํ์ฌ ํด๋น ์์ ๊ณ์ ์ผ๋ก ์ฑ์ ๋ก๊ทธ์ธ ํ ์ ์๋๋ก ์ง์ํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ 2019๋ ์ ์ ํ์ด ๋์ผํ๊ฒ ์ ํ ๊ณ์ ์ผ๋ก ๋ค๋ฅธ ์ฑ์ ๋ก๊ทธ์ธํ ์ ์๋ ๊ธฐ๋ฅ์ ๋ง๋ค์์ด์. ๋๊ตฐ๋ค๋ ์ฐ๋ฆฌ์ ์ ํ์ ๋ค๋ฅธ ์์ ๋ก๊ทธ์ธ์ ๋ถ์ธ๋ค๋ฉด ๊ผญ ์ ํ ๋ก๊ทธ์ธ๋ ๋ถ์ฌ์ผ๋๋ค๊ณ ๊ถ์ฅ ์๋ ๊ถ๊ณ ๋ฅผ ํฉ๋๋ค! ๊ทธ๋์ ์ ํ ๋ก๊ทธ์ธ์ ๊ผญ ๋ถ์ฌ์ผํ๋ ์ํฉ์ด๋ ์์๋ณด์์ฃ ! ์ ํ ๋ก๊ทธ์ธ ์ต์ OS ์ง์ ์ ํ ๋ก๊ทธ์ธ์ iOS์์๋ 13.0 ์ด์ ๋ฒ์ ์์๋ง Sign In With Apple ๊ธฐ๋ฅ ๊ตฌํ์ ์ฌ์ฉํ ์ ์์ผ๋ ์ฐธ๊ณ ํด์ฃผ์ธ์. ๊ทธ ๋ฐ ๋ฒ์ ๋ค์ ํด๋น ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํด๋ณด์๋ฉด..
-
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..