์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- MongoDB
- String.Index
- components
- ios
- Reduce
- ์ง๋ฒ๋ณํ
- UIRefreshController
- Codable
- Firestore
- RxSwift
- Core Data
- Cloud Firestore
- map
- ์๊ณ ๋ฆฌ์ฆ
- Decodable
- Filter
- ์ฑ๋์์ธ
- Figma
- AVAudioPlayer
- mongoose
- ExpressJS
- Encodable
- Mac
- ํ๋ก๊ทธ๋๋จธ์ค
- nodejs
- SWiFT
- ์ฑ๋ง๋ค๊ธฐ
- Firestore CRUD
- DispatchQueue
- CRUD
- Today
- Total
๋ชฉ๋กiOS [Swift]/๊ธฐ์ด๋ฅผ ํํํ! (32)
Focus On Develop ๐ค๐ค
์ง๋ ํฌ์คํ ์์๋ ๊ฐ๋จํ๊ฒ Cloud Firestore์ ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ์ ์ฅ๋๋์ง ์ ์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ดํด๋ณด์๋๋ฐ์~!! ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ๋ชจ๋ฅด๋ฉด ๋จผ์ ๊ตฌ์กฐ๋ถํฐ ํ์คํ๊ฒ ์๊ณ ์ค์ต์ ์์ํ๋๊ฒ ์ข์ต๋๋ค ๐๐ ๐ 2021/02/08 - [iOS [Swift]/๊ธฐ์ด๋ฅผ ํํํ!] - [Swift] Cloud Firestore(1) ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ด๋ฒ์๋ ์ค์ ๋ก XCode์์ ์ด๋ป๊ฒ Firestore๋ฅผ ํตํด CURD๋ฅผ ํ ์ ์๋์ง ์ค์ตํด๋ณผ๊ฑฐ์์. ๋จผ์ ์ค์ต์ ์ํด์, Firestore๋ฅผ ๋น์ด์๊ฒ ์ค๋นํ๊ณ , Console์ ๋ฐ๋ก๋ฐ๋ก ํ์ธํ ์ ์๋๋ก ๋์์ค์๋ค! Database ์ฐธ์กฐ ๋ณธ๊ฒฉ CRUD ์ค์ต์ ์์, ์ฐ๋ฆฌ๊ฐ Cloud์ Firestore์ด ์ด๋์๋์ง ์์น์ ๋ณด๋ฅผ ์์์ผ CRUD๋ฅผ ์งํํ๊ฒ ์ฃ ~? ์๋ ์ฝ๋๋ก..
์ค๋์ Google Firebase Cloud Firestore์ ๋ํด์ ๊ณต๋ถํด๋ณด๋ ค๊ณ ํฉ๋๋ค! ์๊ธฐ ๋ค์ด๊ฐ์ ๊ตฌ๊ธ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํ๊ณ ๋๋ฌ๋ณด์๊ธธ!! ใ ใ ใ console.firebase.google.com/ ๋ก๊ทธ์ธ - Google ๊ณ์ ํ๋์ ๊ณ์ ์ผ๋ก ๋ชจ๋ Google ์๋น์ค๋ฅผ Google ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ accounts.google.com ์ฐ๋ฆฌ๊ฐ ์ฑ์ ๊ฐ๋ฐํ ๋ ๋ก์ปฌ ์ ์ฅ์์ธ UserDefault, CoreData๋ง ํ์ํ ๊ฒฝ์ฐ๋ ์ ์ธํ๊ณ , ๋ถ๋ช ํ ์๊ฒฉ Database๊ฐ ํ์ํ๊ฒ ์ฃ ? ์๋ฅผ ๋ค์ด์ ์นด์นด์คํก ์ฑํ ์ด๋, ๊ณต์ ๋ฌธ์ํจ ๋ฑ์ ์ฌ์ฉ์ A์ B๊ฐ ์๋ก ๋๊ธฐํ๋๋ ์ฑํ๋ฉด์ ๋ด์ผํ๋ค๋ฉด, ๋ก์ปฌ ์ ์ฅ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฒ๋ง์ผ๋ก๋ ๋ถ๋ช ํ ๋ถ์กฑํ๊ฒ ์ฃ ! A๊ฐ ์ฑํ ์ ๋ณด๋ด๋ฉด ์ด๋๊ฐ Database์ ๋ด์ฉ์ด ์ ์ฅ๋..
Storyboard์ ๋ณด๋ฉด pageControl์ด ์๋๋ฐ, ๊ทธ๊ฒ๋ง ๋ฃ์ผ๋ฉด ์๋์ผ๋ก ์ข/์ฐ๋ก swipeํ ์ ์๊ฒ ๋๋?? ์ถ์๋๋ฐ.. ์๋๋๋ผ๊ตฌ์ ใ ใ ใ ์.. ๊ทธ๋ผ ์ด๊ฑฐ๋ ์ด๋ป๊ฒ ์ฐ๋๊ฑฐ์ง? ํ๋ค๊ฐ Tutorial Sample์ ๋ง๋ค์ด๋ดค์ด์~ ScrollView + PageControl์ด๋, CollectionView + PageControl์ ๋ง์ด ์ฐ๋ ๊ฒ ๊ฐ๋๋ผ๊ตฌ์. ๊ทธ ์ค์ ScrollView๋ฅผ ์ฌ์ฉํด์ ๊ฐ๋จํ๊ฒ ๊ตฌํํด๋ดค์ต๋๋ค. Storyboard๋ ๊ฐ๋จํ ์ด๋ ๊ฒ ๊ตฌ์ฑํ์ด์. ScrollView ์์ View๋ฅผ ๋ฃ๊ณ Constraint๋ฅผ ๋ง์ถ๋๋ ๋ญ๊ฐ ์๋ฌ๊ฐ ๋ง์ด ๋ฐ์ํ์์ฃ ?ใ ใ ์ด๋ฒ์๋ ๋ฐ๋ก ๋ฐ์ดํฐ ์์ด ๋ทฐ๋ง ๋ฑ ์ก์์ฃผ๊ธฐ!! ์ ๊น ํ์๋ก ์ฌ๊ธฐ์ ScrollView์ View๋ฅผ ๋ฃ์๋ Constra..
๊ณต๋ถ๋ฅผ ํ๋ฉด ํ ์๋ก Interface Builder ๋ก๋ง UI์์ ์ ํ๋๊ฒ ํ๊ณ๊ฐ ์๋๋ผ๊ตฌ์! ๐ Storyboard vs Programmatic UI ๋ฐ๋ก๋ณด๊ธฐ ๊ทธ๋์ ์ ๋ Programmatically AutoLayout์ ์ ๋ฌธํ์ต๋๋ค!! ์ด๋ฐ ์ ๋ฐ ์์ค๋ฅผ ๋ณด๋ฉด CG ์ด์ฉ๊ตฌ ์ ์ฉ๊ตฌ..๊ฐ ๋์ค๋๋ฐ, ๋ด๊ฐ ์๋ CG๋ ์ํ๋ณด๋ฉด์ "์์ด~์ ๊ฑฐ CG๋ค" ๋ผ๊ณ ํ๋ ๊ฒ ๋ฟ์ธ๋ฐ..๐๐ ๊ทธ๋์ ํ๋ํ๋ ๊ธฐ์ด์ ์ธ ๊ฒ๋ถํฐ ์ ๋ฆฌํด๊ฐ๋ ค๊ณ ํฉ๋๋ค!! ๋จผ์ , CG CG ํ๋๋ฐ CG๊ฐ ๋ญ๊น์~? ๊ทธ๋ ๋์. ๊ฐ๋จํ ๋งํ๋ฉด Swift์์ 2์ฐจ์์์ ํ๋ฉด์ ๊ทธ๋ฆด๋ ์ฌ์ฉํ๋ Framework๋ผ๊ณ ํฉ๋๋ค! ๋ง์ด ๋ค์ด๋ณธ CGFloat, CGPoint, CGSize, CGRect, CGColor, CGFont ๋ฑ๋ฑ ๋ค์ํ ์์๊ฐ ์ Fra..
์ ๋ ์์ด๋ณด์ด๋ณด๋ผ์, ๋ฐฐ์ด๋๋ก ์ถฉ์คํ๊ฒ Storyboard๋ฅผ ํตํ UI์์ ๋ง ํด์๋๋ฐ์~! ๊ณต๋ถ๋ฅผ ํ๋ฉด ํ ์๋ก ๋ณต์กํ๊ฑฐ๋ ๋ค์ํ User Interaction(swipe ๋ฑ)์ด ํ์ํ ํ๋ฉด๋ค์ ๋ง๋๊ฒ ๋๊ณ , ๊ทธ๊ฒ๋ค์ ๋ ์ ๊ตฌํํ๋ ค๋ฉด Code Base๋ก Programaticํ๊ฒ UI๋ฅผ ๊ทธ๋ฆด ์๋ ์์ด์ผ ๊ฒ ๋๋ผ๊ตฌ์! ๊ทธ๋์ ์ด๋ฒ์๋ CodeBase๋ก๋ UI๋ฅผ ์์ฑํ ์ ์์ด์ผ ํ๋ ์ด์ ๋ฅผ ํฌ์คํ ํด๋ณผ๊ฑฐ์์! Storyboard๋ก ๊ฐ๋ฐํ ๋ ์ฅ/๋จ์ ์ฅ์ ๊ฒฐ๊ณผ๋ฌผ์ ๊ดํด ์์ธกํ๊ธฐ ์ฌ์ (๋น์ฐํ ๋์ผ๋ก ๋ณด๋ฉด์ ํ๋ฉด์ ๊ทธ๋ฆฌ๋๊น..?) ์์ฑ ํ์ธ ๊ฐ๋ฅ (inspector ํ๋ฉด์ ๋ณด๋ฉด์ ํ๋ฉด ํด๋ฆญ ๋ธ๊น ๋ธ๊น์ผ๋ก ๊ฐ๋จํ๊ฒ ํ์ธ ๊ฐ๋ฅํ์ฃ !) ์์ค์ฝ๋๋ฅผ ํ๋ํ๋ ๊ธฐ์ตํ์ง ์์๋ ๋ฌด๊ด ๋จ์ ๋ฌด๊ฑฐ์ ๐ฉ (์๋ง ๋ณต์กํ ํ๋ฉด ์์ ..
๋จผ์ ARC์ ๊ฐ๋ ์ ๋ํด์ ์ง๊ณ ๋์ด์์ผ ์์ฐ์ค๋ฝ๊ฒ ๋ฉ๋ชจ๋ฆฌ ๋์์ ๋ํ ์ด์ผ๊ธฐ๊ฐ ๋ ๊ฒ ๊ฐ์ต๋๋ค ๐ ๐ 2021/01/29 - [iOS [Swift]] - [Swift] ARC (Automatic Reference Counting) ์ ๊น ์์ฝํ๋ฉด ARC๋ Swift์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋์ผ๋ก ๊ด๋ฆฌํด์ค๋ค๋ ๊ฐ๋ ์ธ๋ฐ, ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์๋์ผ๋ก ํด์ฃผ์ง๋ง ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ๋ฐ์ํ๋ ํฌ์ธํธ๊ฐ ์์์ฃ . ๊ทธ ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ๋ฐ์ํ๋ ํฌ์ธํธ๋ ์ธ์ ์ด๋ฉฐ, ์ด๋ป๊ฒ ๋ฐฉ์ง๋ฅผ ํด์ผ ํ ์ง์ ๋ํด์ ์์๋ณด๋ ค ํฉ๋๋ค. ** ์ฌ๊ธฐ์๋ถํฐ๋ Swift ๊ณต์ Document๋ฅผ ์ฐธ๊ณ ํด์ ์์ฑํ์ต๋๋ค ** [Swift Docs] docs.swift.org/swift-book/LanguageGuide/AutomaticReferenceCounting.htm..
Swift์์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ํ ๊น์~? Swift์์ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ๋ฐฉ์งํ๊ณ ์ฑ๋ฅ์ ํ๋ฅผ ๋ง๊ธฐ์ํด ARC ๋ฐฉ์์ ์ฌ์ฉํ๊ณ ์๋๋ฐ์! ์ด ARC์ ๋ํด์ ํ๋ฒ ์์๋ณด๋ ค๊ณ ํด์! RC๋ Reference Counting์ ์ฝ์๋ก ์ ํ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ผ๋ ๊ธฐ๋ณธ์ ์ธ Rule์ด๋ผ๋ ์ ์ ๋ฅผ ๋ก๋๋ค. MRC๋ Manual Reference Counting์ ์ฝ์๋ก Object-C์์ ๊ฐ๋ฐ์๊ฐ ์ง์ ! ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น/ํด์ ํด์ค์ผ ํ ๋ ์ฐ๋ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ํ๋๋ฐ, ์ด ๋ถ๋ถ์ ์ฟจํ๊ฒ ์์ ๋๋ก ํจ์คํฉ๋๋ค.ใ ์ด๋ฏธ Swift๊ฐ ๋ณดํธํ ๋์๊ณ , ์ ๋ํ Object-C๋ 1๋ ๋ชจ๋ฅด๊ณ ํ์ฌ ์ฌ์ฉ๋ ์ํ๊ธฐ ๋๋ฌธ..ใ ๐๐ ์ ์ด์ ๋ณธ๋ก ์ผ๋ก ๋ค์ด๊ฐ์, ARC๋ Automatic Reference Counting์..
์ด ํ์ด์ง๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๋ ์์ฃผ(?) ์ฐ์ด๋ ์คํฌ(?) ๊ฐ์ ๊ฒ๋ค์ ๊ฐ๋ตํ๊ฒ ์ ๋ฆฌํด๋ ์์ ์ ๋๋ค. ์๋ฅผ ๋ค์ด์ ์..? root๊ฐ ์ด๋ป๊ฒ ๊ตฌํ์ง.. ์ง๋ฒ๋ณํ ์ด๋ป๊ฒ ํ์ง.. ๋ฑ๋ฑ! (๋งค๋ฒ ๊ตฌ๊ธ๋งํ๊ธฐ ๋ ๊ท์ฐฎ..๐) ์ ~๋ง ๊ฐ๋จํ๊ฒ ์ฌ์ฉ๋ฒ๋ง ์ ๋ฆฌํ ์์ ์ด๋๋๋ค ๐ ๋ฌธ์ ํ๋ฉด์ ๋ ์์ฃผ ๋ณด์ด๋ ๊ฒ์ ์ด ํ์ด์ง์ ์ถ๊ฐํด๋๊ฐ ์์ ์ ๋๋ค ๐๐ - ๋ฐฐ์ด ์ด๊ธฐ๊ฐ ๋ฃ์ด์ ๋ง๋ค๊ธฐ var array = Array(1...5) // [1,2,3,4,5] - ํฌ๊ธฐ๊ฐ ์ ํด์ง ๋ฐฐ์ด ๋ง๋ค๊ธฐ var arr = Array(repeating: 0, count: 3) // [0,0,0] - 2์ฐจ์ ๋ฐฐ์ด ๋ง๋ค๊ธฐ let array: [[Int]] = Array(repeating:Array(repeating:1, count: 4), c..