ํ๋ก์ ํธ ๐ ๏ธ/ํธ๋ฌ๋ธ ์ํ
๋ฌธ์ ์ํฉ ํ๋ก์ฐ ํ๋ก์ ๊ธฐ๋ฅ์ ๊ตฌํํ ๋์๋ค. ์ ๋ฒ๊ณผ ๊ฐ์ ๊ตฌ๋
ํ๊ธฐ๊ฐ ๋ฐ์์ด ์๋๋ ์ด์์ด๋ค. ํ์ง๋ง ์ํฉ์ด ์กฐ๊ธ ๋ค๋ฅด๋ค..! ์ ๋ฒ ์ด์์ ์์ธ์ onAppear์ onDisappear์ ์๋ชป๋ ํธ์ถ ์์๋ก ๊ตฌ๋
ํ๊ธฐ ๋ฒํผ์ ๋๋ ์๋, ๋ทฐ๋ฅผ ๋๊ฐ๋ค ๋ค์ด์ค๋ฉด ๋ฐ์์ด ๋์ง ์์๋ ๊ฒ์ด์๋๋ฐ ์ด๋ฒ์๋ ๋น์ทํ ์ํฉ์ด์ง๋ง ์กฐ๊ธ ๋ค๋ฅธ ๊ฒฝ์ฐ์๋ค. ์ด๋ฒ ์ด์์ ์์ธ์ ForEach ์๋ค. ๋ฌธ์ ๋ ์๋์ง๋ง ,, ๋ฌธ์ ๊ฐ ๋๋ ์ฝ๋๋ฅผ ํ๋ฒ ๋ณด๋ฉด // 1๋ฒ ์ฝ๋ ForEach(0..
ํ๋ก์ ํธ ๐ ๏ธ/ํธ๋ฌ๋ธ ์ํ
๋ฌธ์ ์ํฉ ํ๋ก์ ํธ๋ฅผ ํ๋ ์์ค ํ๋ก์ฐ ํ๋ก์ ๊ธฐ๋ฅ์ ๋ฃ๋ ๊ณผ์ ์์ ์ด์๊ฐ ๋ฐ์ํ๋ค ๐จ ์ด๋ค ์ด์๋๋ฉด!!?? ์ค๋ช
์์ ๋ฉ๊ฑฐ์ง๋ํ
์ผ๋ทฐ๋ฅผ “1๋ฒ ๋ทฐ”, ์ ์ ํ๋กํ๋ทฐ๋ฅผ “2๋ฒ ๋ทฐ”๋ก ํ๊ฒ ์ต๋๋ค. 1๋ฒ๋ทฐ → 2๋ฒ๋ทฐ๋ก ๊ฐ๋ ๋ค๋น๊ฒ์ด์
๋ทฐ ๊ณ์ธต์์ 1๋ฒ๋ทฐ์์ 2๋ฒ๋ทฐ๋ก ๋ค์ด๊ฐ ๊ตฌ๋
ํ๊ธฐ ๋ฒํผ์ ๋๋ฅธํ์ ๋ค๋ก๊ฐ๋ค๊ฐ ๋ค์ 2๋ฒ๋ทฐ๋ก ๋ค์ด๊ฐ๋ฉด ๋ด๊ฐ ํด๋น ์ฌ์ฉ์๋ฅผ ๊ตฌ๋
ํ๊ณ , ๊ทธ ์ ๋ณด๋ฅผ ์
๋ฐ์ดํธ๋ฅผ ์์ผ์ค์๊ธฐ ๋๋ฌธ์ “๊ตฌ๋
์ค” ๋ฒํผ์ด ๋์์ผํ๊ณ , ๊ตฌ๋
์์๋ 1๋ช
์ด ๋ ์์ด์ผํ๋ค. ์ด๋ ๊ฒ ..! ๊ทผ๋ฐ ๋ฌธ์ ๋ 2๋ฒ๋ทฐ์์ ์
๋ฐ์ดํธํ์ 1๋ฒ๋ทฐ๋ก ๋ค๋ก๊ฐ๊ธฐ ํ ๋ค์ 2๋ฒ๋ทฐ๋ก ๋ค์ด๊ฐ์๋ ๋ฐ์์ด ์๋๋ ์ด์๊ฐ ๋ฐ์ํ๋ค…! ์ผ๋จ ๊ตฌ๋
ํ๊ธฐ ๋ก์ง์ ๋ํด ์ค๋ช
ํ์๋ฉด, ๊ตฌ๋
ํ๊ธฐ ๋ฒํผ์ ๋๋ฅธ๋ค. ๊ตฌ๋
์ ๋๋ฅด๊ณ , 2๋ฒ๋ทฐ์์ 1๋ฒ๋ทฐ๋ก ๋ค๋ก๊ฐ๊ธฐ ๋ฒํผ์ ๋๋ฅผ๋, o..
ํ๋ก์ ํธ ๐ ๏ธ/ํธ๋ฌ๋ธ ์ํ
๋ฌธ์ ์ํฉ Combine ์ผ๋ก ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํ๋ ๊ณผ์ ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํจ. ๋น๋๊ธฐ ์ฝ๋๋ก ๋ทฐ๋ชจ๋ธ์ ์๋ ๋ฐฐ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ํ ๊ทธ ๋ฐฐ์ด์ ์ถ๋ ฅ์ ํด๋ณด๋ ๋น๋ฐฐ์ด์ด ์ถ๋ ฅ๋๋ ์ํฉ ํ๋ทฐ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ์์
์ ํ๋ฉด์ onAppear ๋ด์์ communityVM.fetchCommunity ๋ผ๋ ์ปค๋ฎค๋ํฐ ๊ฒ์๋ฌผ์ ๊ฐ์ ธ์ค๋ ๋น๋๊ธฐ ์ฝ๋๋ฅผ ์คํํ๊ณ communityVM.communities (๊ฐ์ ธ์จ ์ปค๋ฎค๋ํฐ ๊ฒ์๋ฌผ๋ค) ๋ฅผ ์ถ๋ ฅํด๋ณด๋ .onAppear { print("onAppear ์์") communityVM.fetchCommunity() print(communityVM.communities) // [] ์ถ๋ ฅ } ๊ฒฐ๊ณผ๋ ? “ [ ] “ ๋น๋ฐฐ์ด์ ์ถ๋ ฅํ๋ค. ์๊ฐํด๋ณด๋ฉด ๋๋ ๋น์ฐํ ๊ฒฐ๊ณผ์๋ค. ^^ ์์ธ fu..
ํ๋ก์ ํธ ๐ ๏ธ/iOS
@Stateobject ์ @ObservedObject ๋๋์ฒด ๋ญ๊ฐ ๋ค๋ฅด๊ณ ์ด๋ป๊ฒ ์ฌ์ฉํด์ผํ ๊น? SwiftUI๋ก ๊ฐ๋ฐ์ ํ๋ฉด์ ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๊ณ , ๋๋ฅผ ๊ฐ์ฅ ๋ง์ด ๊ดด๋กญํ๋ ,, ๋๋์ฒด ์ด ๋์ ๋ญ๊ฐ ๋ค๋ฅธ๊ฒ์ด๋ฉฐ, ๋ ์ด๋ป๊ฒ ์! ์ฌ์ฉํด์ผํ ๊น ? ์์๋ฑ ์ ๋ฆฌํด๋ณด๊ฒ ๋ค..!! ๐ค ๋จผ์ Apple ์ ๊ณต์๋ฌธ์๋ฅผ ์ดํด๋ณด๋ฉด, @ObservedObject ๋ observable object ๋ฅผ subscribe(๊ตฌ๋
)ํ๋ Property wrapper ์ด๊ณ , observable object ๊ฐ ๋ณํํ๋ฉด ๋ทฐ๋ฅผ ๋ฌดํจํ ์ํจ๋ค๊ณ ํ๋ค. ⇒ ์ฆ, ๋ทฐ์์ observable object๋ฅผ ๊ตฌ๋
ํ๊ณ ์ง์ผ๋ณด๋ฉด์ ์ด ๊ฐ์ฒด์ ๋ณ๊ฒฝ์ด ๊ฐ์ง๋๋ฉด ๋ทฐ๋ฅผ ๋ค์ ๊ทธ๋ ค์ ์๋ก ์
๋ฐ์ดํธํ๋ค. @Stateobject ๋? observable obje..
ํ๋ก์ ํธ ๐ ๏ธ/iOS
Firebase๋ฅผ ์ฌ์ฉํ ๋ค์ด์ด๋ฆฌ ์ฑ ๋ง๋ค๊ธฐ ํ๋ก์ ํธ์ "๋ค์ค์ด๋ฏธ์ง ์
๋ก๋" ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๊ณผ์ ์์ ๋ค์ด์ด๋ฆฌ ๊ฒ์๋ฌผ์ ๋ค์ค์ด๋ฏธ์ง๋ฅผ fetch (๋ถ๋ฌ์ค๊ธฐ) ํ๋ ๋ฉ์๋๋ฅผ async/await ์ผ๋ก ๊ตฌํํด๋ณด์๋ค. ๋จผ์ ๋ค์ค์ด๋ฏธ์ง ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด Firebase Storage ์ ์ฅ์๋ฅผ ์ฌ์ฉํ์๊ณ , DB๋ Firebase firestore๋ฅผ ์ฌ์ฉํ์๋ค. ๋ด๊ฐ ๋ค์ค์ด๋ฏธ์ง ์ฒ๋ฆฌ๋ฅผ ์ํด ์ฒ์์ ๊ตฌํํ๋ fetchImage ๋ฉ์๋์ด๋ค. func fetchAllImage(_ magazine: Magazines) { // ๋น๋๊ธฐ ์์
1 let _ = storage.reference().child("\(magazine.id)").listAll { result, error in if let result = resul..