1. Reactorkit ์๊ฐReactorkit์ Swift๋ก ์์ฑ๋ ๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ์ฃผ๋ก ์ํ ๊ด๋ฆฌ์ ๋ฐ์ดํฐ ํ๋ฆ ์ ์ด๋ฅผ ์ฝ๊ฒ ํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ iOS ์ฑ ๊ฐ๋ฐ์์ ๋ฆฌ์กํฐ๋ธ ํจํด์ ์ฑํํ์ฌ ์ผ๊ด๋ ์ํ ๊ด๋ฆฌ์ ๋ฐ์ํ UI ์
๋ฐ์ดํธ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.์ด๋ฒ ๊ธ์์๋ Reactorkit์ ๊ธฐ๋ณธ ๊ฐ๋
๊ณผ ์๋ ๋ฐฉ์, ์ด๋ค ์ฅ์ ์ด ์๋์ง ๋ฆฌ๋๋ฏธ๋ฅผ ๋ฒ์ญํด๋ณด๋ฉฐ ์๊ฐํด๋๋ฆฌ๋ ค๊ณ ํฉ๋๋ค. 2. Reactorkit์ ๊ธฐ๋ณธ ๊ฐ๋
Reactorkit์ ์ ์ ReactorKit์ Flux์ Reactive ํ๋ก๊ทธ๋๋ฐ์ ์กฐํฉ์ด๋ผ๊ณ ํฉ๋๋ค. ์ฌ์ฉ์์ก์
๊ณผ ๋ทฐ์ ์ํ๋ ๊ด์ฐฐ ๊ฐ๋ฅํ ์คํธ๋ฆผ์ ํตํด ๊ฐ ๋ ์ด์ด์ ์ ๋ฌ๋ฉ๋๋ค. ์ด ์คํธ๋ฆผ์ ๋จ๋ฐฉํฅ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. ๋ทฐ๋ ์ก์
๋ง ๋ด๋ณด๋ผ ์ ์๊ณ , ๋ฆฌ์กํฐ..
์ฌ์ด๋ ํ๋ก์ ํธ ์งํ ์ค ์ด๋ฏธ์ง๋ฅผ ์๋ฒ๋ก ์
๋ก๋ ํด์ผํ๋ ํ์คํฌ๊ฐ ์์๋ค! ๊ธฐ์กด์ ๋ชจ๋ API๋ฅผ Alamofire๋ก ํต์ ํ๊ณ ์์๊ธฐ ๋๋ฌธ์ ์ด๋ฏธ์ง ํต์ ์ญ์ Alamofire๋ก ์งํํ๋ค. ๊ตฌํ์ ๋ค ํด๋์๋๋ฐ, ๋ ์ฐพ์๋ณด๋ฉด์ ์ ์ฉํ ๋ด์ฉ์ด ์๋ ์์๋ณด๊ธฐ ์ํด, ๋์ค์ ๋ค์ ๋ณด๊ธฐ ์ํด ๊ธฐ๋กํ๋ ค ํ๋ค. ๐ ๊ณต์ ๋ฌธ์๋ฅผ ๋จผ์ ํ์ธ ๋ณด์! https://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#uploading-data-to-a-server ๊ณต์ ๋ฌธ์๋ฅผ ๋จผ์ ํ์ธํด์ ์ฐธ๊ณ ํ ๋งํ ์ฝ๋๋ฅผ ์ดํด๋ณด๊ณ > ๊ตฌ๊ธ๋ง์ผ๋ก ์ ์ ๋ฆฌํด๋ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํด์ ๊ตฌํ > ๋ค์ ๊ณต์๋ฌธ์ ํ์ธ ์์๋ ๊ธฐ๋ฅ ๊ตฌํ๋ณด๋ค ํ์ต์ ๋ ์๊ฐ์ ๋ค์ด๊ณ ์ถ์ด์ ์ด๋ฐ ๋ฐฉ์์ผ๋ก ..
ํ์ด์ด๋ฒ ์ด์ค๋ก ๊ตฌ๊ธ ๋ก๊ทธ์์/ํ์ํํด ๋ ์ ์ํ ์ ์ ์์๋ณด์. ๋ก๊ทธ์ธ์ ๊ฒฝ์ฐ๋ ๋ค๋ฅธ ๋ธ๋ก๊ทธ์๋ ์ ๋์์๊ณ , ๊ณต์ ์ฌ์ดํธ๋ ์๋์ด์๊ธฐ ๋๋ฌธ์ ์๋ตํ๋ค-!! ์๋์ ๊ฐ์ด ์์ฑํด์ ํ์ฉํ์๋ฉด ๋ฉ๋๋ค ! ํด๋น ์ฝ๋๋ ํ์ด์ด๋ฒ ์ด์ค๋ฅผ ํ์ฉํด์ ๊ตฌ๊ธ/์นด์นด์ค/์ ํ ๋ก๊ทธ์ธ์ ๊ตฌํํ๋ ์์ ์ธ๋ฐ, ๊ตฌ๊ธ์์ ์ฐ์ด๋ ์ฝ๋๋ง ๋จ๊ฒจ๋์๋ค..! import FirebaseAuth import GoogleSignIn final class AuthenticationManager { /// ๋ก์ปฌ Firebase์ ์ ์ฅ๋ ์ ์ ์ ๋ณด๋ฅผ ์ญ์ ํ๊ณ ๋ก๊ทธ์์ func signOut() throws { try Auth.auth().signOut() GIDSignIn.sharedInstance.signOut() } /// disconnect ๋ฉ์..
SVG๋ฅผ SwiftUI์ฝ๋๋ก ๋ฐ๊ฟ์ฃผ๋ ์ฌ์ดํธ ์ฌ์ฉ๋ฒ: ํผ๊ทธ๋ง์์ ๋ํ ์ฐํด๋ฆญ > Copy as SVG > ์ฌ์ดํธ์ ๋ถ์ฌ๋ฃ๊ธฐ https://svg-to-swiftui.quassum.com/ JSON ์ฝ๋ ํ์ฑํด์ฃผ๋ ์ฌ์ดํธ ์ฌ์ฉ๋ฒ: ์ฝ๋ ๋ณต์ฌ ํ ์ฌ์ดํธ ์ผ์ชฝ ํ๋์ ๋ถ์ฌ๋ฃ๊ธฐ https://app.quicktype.io/
iOS์์ API ๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด http ํต์ ์ ํ๊ฒ ๋ ๋๋ ์์ํ
๋ฐ, ์ด์ ๊น์ง๋ App Transport Security policy ๊ด๋ จํ ์ปดํ์ผ ์๋ฌ๊ฐ ๋๋ฉด, Info.plist - App Transport Security Setting์ ์๋์ ๊ฐ์ด ์์ฑํด์ ๋ฐ๊ฟ์ฃผ์๋๋ฐ, ์ด๋ ๊ฒ ํ๋ฉด ๋ฐฐํฌํ ๋ ๋ฆฌ์ ๋นํ๋ค๋ ๋ง์ ๋ฃ๊ฒ ๋์๋ค..! ์๋ฌด๋ ์ง ์๊ฒ ์ฌ์ฉํด์๋๋ฐ, ๋ฐฐํฌํ ๋๋ ์ค์ ์ ์ ํด์ค์ผ ํ๋ ๊ฒ ๊ฐ์๋ค! 1. ATS์ ๊ด๋ จํ์ฌ Apple ํ๋ซํผ์์ ์ฑ ์ ์ก ๋ณด์(ATS)์ด๋ผ๋ ๋คํธ์ํน ๋ณด์ ๊ธฐ๋ฅ์ ๋ชจ๋ ์ฑ๊ณผ ์ฑ ํ์ฅ์ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ๋ฐ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ํฅ์์ํต๋๋ค. ์ฑ์์ ๋ง๋ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ด ์ ๋ขฐํ ์ ์๋ ์ธ์ฆ์์ ์ํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ก ๊ณ์ธต ๋ณด์(TLS) ํ๋กํ ์ฝ์ ์ํด ๋ณดํธ๋๋๋ก ..
Singleton ์ฌ๋ฌ ๊ฐ์ฒด์์ ๊ณต์ฉ์ผ๋ก ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค. ์ผ๋ฐ์ ์ผ๋ก shared๋ผ๋ ์ด๋ฆ์ ์์๋ฅผ ๋ง๋ ๋ค. static ํค์๋๋ฅผ ๋ถ์ธ๋ค. ์ด๋์
๋ผ์ด์ ๋ฅผ private์ผ๋ก ๋ง๋ค์ด์, ์ธ๋ถ์์ ์์ฑ์ ๋ถ๊ฐ๋ฅํ๊ฒ ํด์ผ ํ๋ค. ์์ ํ๊ฒฝ์ค์ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ฒ๋ฆฌ ๋ฐ์ดํฐ ๊ด๋ฆฌ Singleton์ ์ฌ์ฉํ๋ ์ด์ ๋ฐ์ดํฐ ๊ณต์ (ํ๋์ ๊ฐ์ฒด ์ง์์ ์ฐธ์กฐ) ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ ์ฝ๋ ์์ class Singleton { static let shared: Singleton = Singleton() var numOfBook: Int private init() } Singleton.shared.numOfBook = 10 iOS์์ ์ฌ์ฉํ๋ ์ฑ๊ธํค ํจํด์ ๊ฐ์ฒด let application = UIApplication.sh..