-
Notifications
You must be signed in to change notification settings - Fork 5
SwiftUI
dochoi edited this page Nov 29, 2020
·
23 revisions
ToDo
- ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ
- AutoLayout์ ๋ฌด์์ผ๋ก ๋์ฒดํ ์ ์๋๊ฐ
- ๋ด๋ถ๋ AutoLayout์ผ๋ก ๊ตฌ์ฑ๋์ด์์ง๋ง ๊ฐ๋ฐ์๊ฐ ์ด๋ฅผ ๋ค๋ฃฐ ํ์๋ ์๋ค -> ์กฐ๊ธ ๋ ์์๋ณด์
- StoryBoard์ ๋น๊ตํ์ฌ ์ ์ฒด์ ์ธ ๊ตฌ์กฐ๋ ์ด๋ป๊ฒ ๋ฐ๋์ด์ผํ๋๊ฐ
- ContentView๊ฐ VC๋ฅผ ๋์ฒดํ์ฌ, MVC -> MVํจํด์ผ๋ก ๋ณํ, ํ ์คํธ์ฝ๋ ์ด๋ป๊ฒ ํ ์ง ์๊ฐ
- ํ ์คํฌ๋กค๋ทฐ์์ ์ฌ๋ฌ์ ํ์ ๋ ์ด์์์ด ์์ ๋ UIKit์ CompositionalLayout์ ๋์ฒดํ ์ ์๋๊ฐ
- ํดํน์ค์ํํธ๋ฅผ ์ฐธ๊ณ ํ๋ฉด SwiftUI 2.0๋ถํฐ๋ CollectionView๋ฅผ ๋์ฒดํ Grid ๋ฑ ์ฌ๋ฌ๊ฐ์ง๊ฐ ๋์์ง๋ง ์์ง CompositionalLayout๋ฅผ ๋์ฒดํ ์ ์๋ค -> Grid๋ฅผ ์กฐํฉ vs UIKit์ ๊ฐ์ด ์ฐ๋๊ฑฐ๋ ๊ณ ๋ ค
- ๋ทฐ์์ ์ผ์ด๋๋ ์ด๋ฒคํธ๋ฅผ ์ด๋ค์์ผ๋ก ์ฒ๋ฆฌํด์ผ ํ๋๊ฐ
- ๋ฐฐํฌํ ๋๋ preview ์ฝ๋๋ฅผ ์ง์์ผ ํ๋๊ฐ
- ๋ฆด๋ฆฌ์ฆ ๋ชจ๋์์๋ ์๋์ผ๋ก ํ๋ฆฌ๋ทฐ ๊ด๋ จ ์ฝ๋๊ฐ ๋ฌด์๋๋ค๊ณ ํจ
- ์์ SwiftUI๋ก ๋ชจ๋ ๋ทฐ๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํด์ ํ๊ฒ์ด iOS 14.0์ด์์ผ๋ก ํด์ผํจ
- some์ ๋ฌด์์ธ๊ฐ? Opaque Type์ด๋ค. reverse generic Type๋ผ๊ณ ๋ ๋ถ๋ฆฌ์ฐ๋ฉฐ, ํธ์ถ๋ ์ฝ๋๊ฐ ํธ์ถํ ์ฝ๋์ ํ์ ์ ๊ฒฐ์ , ์์ธํ ํ์ ๊ณผ ๊ตฌํ์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ ์๊ฒ ์จ๊ธฐ๊ณ , ํน์ ํ๋กํ ์ฝ์ ๋ฐ๋ฅด๋ API์ธ๊ฑธ ์ ๋ฌํ๊ณ ์ถ์๋ ์ฌ์ฉ, ๋ฐํ๊ฐ์ ๋ฌด์กฐ๊ฑด ๊ตฌ์ฒด ํ์ ์์ ๊ฐ์ ํจ. ๋์ผ ํจ์์ ๋ํ ๋ชจ๋ ํธ์ถ์ด ๊ฐ์ ํ์ ๋ฐํ์ ๋ณด์ฅํจ. https://medium.com/@PhiJay/whats-this-some-in-swiftui-34e2c126d4c4
Tools
- @State
- ์์
- ํด๋น ๋ทฐ๊ฐ ์์ ํ๊ณ ๊ด๋ฆฌํ๋ ๊ฐ๋ ์ ๋ช ์์ ์ผ๋ก ๋ํ๋ด๊ธฐ ์ํด ๋๋ถ๋ถ private ๋ช ์
- Binding ํ์ ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌ ํ๊ธฐ ์ํด์ $๋ฅผ ๋ถ์ธ๋ค.
- ๋ณ๊ฒฝ์ฌํญ์ด ๊ฐ์ง๋ ๋๋ง๋ค ์๋์ผ๋ก ๋ทฐ๋ฅผ ์ ๋ฐ์ดํธํด์ค๋ค.
- @Binding
- ์ฐธ์กฐ
- ObservableObject, @ObservedObject
- ๋ทฐ๊ฐ ๋ชจ๋ธ์๊ฒ ์์กด์ฑ์ ๊ฐ์ง๋ค๋ ๊ฒ์ ๋ช ์, ์ด๋ค ๊ฐ์ด ๋ณํ๋์๋์ง์ ๋ฐ๋ผ ๋ทฐ๋ฅผ ๊ฐฑ์ ํ๋์ง๋ ์๋ ค์ค์ผํจ
- @Published
- ๋ทฐ๋ฅผ ๊ฐฑ์ ํ๋ ๊ฐ์๋ํด ๋ช ์
- objectWillChange๋ฅผ ์ด์ฉํ์ฌ ์์ ์ ์ปค์คํ ํ ์์์
- @EnvironmentObject
- ๊ฐ์ ์ ์ธ ์์กด์ฑ์ ๋ง๋ ๋ค. Binding์ผ๋ก ๋งค๋ฒ ์์๋ทฐ์๊ฒ ๋์ผ ๋ชจ๋ธ์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ฃผ๋๊ฒ์ด ์๋๋ผ, ํ๊ฒฝ ์์๋ก ๋ฑ๋กํ์ฌ ์์๋ทฐ๋ผ๋ฉด ๋ชจ๋ ์ฐธ์กฐํ ์ ์๊ฒ ๋๋ค.
๋ฐ์ดํฐ ํ๋ฆ์ด UIKit๊ณผ ๋ง์ด ๋ค๋ฅด์ง๋ง,์ ์ดํดํ๋ฉด ํจ์ฌ ํจ์จ์ ์ด๊ณ ๊ฐํธํจ
propertyWrapper๋ฅผ ์ดํดํด์ผ SwiftUI's state๋ฅผ ์ดํดํ ์ ์๋ค. (projectedValue, ๋ฐ์ธ๋ฉ์ $๊ธฐํธ๊ฐ ๋ถ๋ ์ด์ )
- @State๋ฅผ ๋ช ์ํ๋ฉด 3๊ฐ์ง value๊ฐ ์๊ธด๋ค.
โ 2020. Project01-C-User-Event-Collector [J028_๊น๋๊ท , J089_๋ฐ์งํ, J139_์ด์๊ฒฝ, S059_์ต๊ดํ, S060_์ต๋๊ท] all rights reserved.