2022 Monthly I Learned - kirseia/study GitHub Wiki
2022. 12
- Metal Shading Language Spec.
- AnyCodable Value
- ์ฌ๋ฐ๋ (?) ์์ด๋์ด ๊ฐ์์ ๊ธฐ๋ก
- How to use GeometryReader without breaking SwiftUI layout
- JSON ๊ฒฐ๊ณผ๋ฌผ์ swift struct๋ก ๋ณ๊ฒฝํด์ฃผ๋ ํด
2022. 11
- SwiftUI Charts Tutorial
- TestFlight์์ ๋งค๋ฒ ํ์๋๋ '์์ถ ๊ท์ ์ค์ ์์' ์ค์ ์ ์๋ตํ๋ ๋ฐฉ๋ฒ
- ๋งค๋ฒ ์๋์ผ๋ก ํ๋ค๊ฐ ์ต๊ทผ์ ์ ํ ์ฌ์ดํธ์ ํด๋น ๋ด์ฉ์ ๋ํ ๊ฒฝ๊ณ ๊ฐ ์์ด์ ์ถ๊ฐํ๋๋ฐ, ์ ๋ฆฌ๋ ๊ธ์ด ์์ด์ ๋จ๊น.
- SwiftUI Redraw ๋ถ์, 2
- ์ฝ๋๋ง ๋ฐ๋ก ๋นผ๋์ ๊ฒฝ์ฐ๋ identity๊ฐ ๋ณ๊ฒฝ๋์ด ๋ค์ ๊ทธ๋ ค์ง, struct ๋ฅผ ์์ ๋ถ๋ฆฌํด์ view๋ฅผ ๋ณ๋๋ก ๋ง๋ค๋ฉด identity ๊ฐ ๋ณ๋๋ก ๋ถ์ฌ๋์ด ๊ด๋ จ ์๋ ๊ฒฝ์ฐ redraw ๋์ง ์์
- ์ฝ๋๋ ๊ฐ๋ฅํ๋ฉด ๋ณ๋ struct view๋ก extract ํ์, ์ฐ๊ฒฐ๋๋ ๊ฐ์ ํต์ผ๋ก ๋๊ธฐ์ง ๋ง๊ณ ๊ฐ๋ฅํ๋ฉด ๊ฐ๋ณ๊ฐ์ ๋๊ฒจ์ ์ ๋ฐ์ดํธ๋ฅผ ์ต์ํ ์ํค์.
- SwiftUI - NavigationLink in .sheet ๋๋ .sheet in NavigationLink ์์ ํ์ถํ๊ธฐ
- ์์ ์ ๊ฐ์ ์ฝ๋์์ ํ์ถ์ฒ๋ฆฌ ํ ๋ ์ต์ข ์ ์ผ๋ก ํ์ถ ํ ๋ค๋ฅธ ๋ทฐ๋ก ์ด๋์ฒ๋ฆฌํ๊ฑฐ๋ ํ๋ฉด, ์ด๋๋์ง ์๋ ๊ฒฝ์ฐ ์์, ๋จ๊ณ๋ณ๋ก disappear ์ค์ ๋ค๋ฅธ ๋ทฐ๋ก ์ด๋์์ผ๋ฒ๋ฆฌ๋ฉด disappear ์ค๊ฐ์ ๋ฃจํธ๊ฐ ์ฌ๋ผ์ ธ๋ฒ๋ ค์ ๋ทฐ๊ฐ ๋จ๋ ๊ฒฝ์ฐ๊ฐ ์๊น. animation ์ ๋๊ณ view๋ฅผ ์ฌ๋ผ์ง๊ฒ ํ๊ฑฐ๋ ๋๋ dismiss ์ ๋๋ฉ์ด์ ์ด ๋๋ ๋๊น์ง ๋๊ธฐ ํ view ์ด๋ ์ฒ๋ฆฌ๋ฅผ ํด์ค์ผ ํจ.
2022. 10
- SwiftUI List - badge
- SwiftUI TabView - color change
- Public APIs
- api ์ฌ์ดํธ๋ค ์ ๋ฆฌ. ๋ค ๋ฌด๋ฃ์ธ๊ฒ๋ ์๋๊ณ ์ ๋ฃ/๋ฌด๋ฃ ์์ ์ฌ์ฉ ๋ถ๊ฐ ๋ฌด๋ฃ ๋ฑ๋ฑ ์์ฌ ์์, ์ฌ์ฉ์ ์ ์ฒดํฌ ํ์
- SwiftUI + Keyboard shortcuts
- Xcodes: Xcode
- xcode ์ ๋ฐ์ดํธ๋ก ๊ณ ํต๋ฐ๋ ์๊ฐ ์๋ . ๋ณ๋ ฌ ๋ค์ด๋ก๋ + ๋น ๋ฅธ ์์ถ ํด์ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ ๋ฐ์ดํธ ๊ณ ํต์์ ๋ฒ์ด๋์!
- ๋์ ์ฃฝ์
- ๊ฐ๋ฐ๊ณผ ๊ด๋ จ ์๋ ์ฒ ํ์ ์ธ ์ด์ผ๊ธฐ, ๋์ฒด์ '์ ์ ์ฃฝ์๋ค.'๋ก๋ถํฐ ์๋ณธ์ฃผ์๊น์ง ์ด์ด์ง๋ ์๊ท ๋์ ๊ธ. ์ฌ๋ฐ๊ฒ ์ฝ์์.
- Toss์ ๊ฐ์ ํ๋ฉด UX ๊ฐ์ , Toss์ ์ข์ ์๋ฌ ๋ฉ์์ง ๋ง๋ค๊ธฐ 6์์น
2022. 9
- CloudKit Product๋ก ๋ก๋ ์ค์
- Xcode ์์ svg ํ์ผ์ gradient ์ฒ๋ฆฌ๋ฅผ ํ์ง ๋ชปํจ. ๋ฒกํฐ ๋์ png ๊ฐ์ ์ด๋ฏธ์ง๋ก ๋ณ๊ฒฝํด์ ์ฌ์ฉํด์ผ ํจ
- SwiftUI Markdown ์ฒ๋ฆฌํ๊ธฐ
- swiftui markdown ์ ์์ง๊น์ง ๋ฌธ๋จ์ด๋, ์ค๊ฐ์ color ๋ฅผ ๋ฐ๊พผ๋ค๊ฑฐ๋ ํ๋๊ฑด ๋ถ๊ฐ๋ฅ, ๊ธฐ์กด์ attributed string ์ ํ์ฉํด์ผ ๊ฐ๋ฅ.
- github ์ผ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ฌธ๋จ ์ ๋๋ ์ง์ํ๊ธฐ๋ ํ๋ ์ปฌ๋ฌ ๋ณ๊ฒฝ ๋ฑ์ ์ฌ์ ํ attributed string ์ ํ์ฉํด์ผ ๊ฐ๋ฅ...
- ์์ฃผ์จ์ ์์์ ๋ช ์งธ์๋ฆฌ๊น์ง ํ์ํ ๊น
- ๋์ฌ์์๋ ํ์ฑ๊ฐ ์ฌํ ํ ๋ ์์์ 15์๋ฆฌ๊น์ง, ์ฐ์ฃผ ํฌ๊ธฐ ๊ณ์ฐ์ ์์์ 40๋ฒ์งธ์๋ฆฌ ๊น์ง ์ฌ์ฉํ๋ฉด ์์ ์์ ํ๋์ ์ง๋ฆ๋ณด๋ค ์์ ์ค์ฐจ๊ฐ ๋๋ค๊ณ ํจ.
- ๊ฐ๋ฐ ์ด์ผ๊ธฐ๋ ์๋๋ฐ ์ฌ๋ฐ์ด์ ๋จ๊น.
- addObserver ์ดํ์ Remove ํด์ผ ํ ๊น
- block ๊ธฐ๋ฐ ๋ฑ๋กํ์ผ๋ฉด removeํ์, ๊ทธ๋ ์ง ์์ผ๋ฉด ์ํด๋ ๋จ.
- SwiftUI ๊ทธ๋ฆผ์ ๊ด๋ จ
- .background(Color.yellow.shadow...) ์ด๋ ๊ฒ ํด๋ ๋๋๊ฑธ๋ก ๊ธฐ์ต
- ์
๊ธฐ ํ๋ ๋ง๋ค๊ธฐ
- ๋ง์ดํฌ๋ก ์ ๋ ฅ๋ฐ์ ๊ฒ์ fft ๋ก ์ฃผํ์ ๋ถ์ํด์ ์ฝ๋๋ฅผ ์ฐพ๋ ๋ฐฉ์. ๋ง์ดํฌ -> ๋ฒํผ -> ๋ฉ๋ชจ๋ฆฌ๋ก ์ฝ์ด์ fft ์ฒ๋ฆฌ๊น์ง ๊ณผ์ , ์ธ์ ๊ฐ ์จ๋จน์์ง๋
- iOS 16 ์์ ฏ ๋์๋ฒ
- Xcode 15์ single size icon
- ๋ฆฌ์ฌ์ด์ฆ ์๊ณ ๋ฆฌ์ฆ ์ฌ์ฉํ๋ฏ๋ก ๋ํ ์ผ ๊นจ์ง ์ ์์, ๊ธฐ์กด์๋ icon generator ๊ฐ์๊ฑธ ์ด๋ฏธ ์ฐ๊ณ ์๋ค๋ฉด single size icon ์ฐ๋๊ฒ ๋์.
- ๋ํ ์ผ ์ ๊ฒฝ ์ด๋ค๋ฉด ๊ธฐ์กด์ฒ๋ผ ๋ชจ๋ ์์ด์ฝ ๋ฐ๋ก ๋ง๋ค์ด์ ์ฐ๋๊ฒ ์ข์.
2022. 7
-
๊ฐ๋ฐ์์ ์ผ ๋งค๋ญ์ง๊ธฐ - ๊ฐ๋ฐํ์ ์๋์ง๋ง ๊ฐ๋ฐ์๋ผ๋ฉด ์ฝ์ด๋ณด์~
-
CloudKit ๋ณ๊ฒฝ ์ฌํญ subscription ์ ์๋ฎฌ๋ ์ดํฐ์์๋ ๋์ ์ํจ
-
CloudKit ์ฌ์ฉ์ฒ์ ๋ํ ๊ณ ๋ ค - ๊ฐ๊ฒฉ/์ด๋น์์ฒญ/์ฉ๋ ๋ฑ๋ฑ
2022. 6
- Apple apps schemes
- ๋ชจ์
์ผ์๋ฅผ ํ์ฉํด ๋ฒํผ์ ๊ทธ๋ฆผ์ ์ดํํธ ์ฃผ๊ธฐ
- ์์ ์ ํ ์์ ์ฑ ๊ฐ์๋ฐ ๋ฒํผ์ ๋น์ทํ๊ฒ ์ ์ฉ๋์ด์์๋๋ฐ ์์ ์๊ฐ์ด...
- ์ฑ ๊ฐ์ ํต์ - ์ค์น ์ฌ๋ถ ํ์ธํ๊ธฐ
- SwiftUI ์ถ๊ฐ ๋ณ๊ฒฝ๋๋ ๊ฒ๋ค
- Swift Charts ์ข๋ค. Bottom sheet ์ด๊ฑธ ์ ์ด์ ์ผ...
- Xcode 14์์ ๋ณ๊ฒฝ๋ ์
- Swift 5.7์์ ์งง์์ง option-unwrapping
- if let value = value { ... } -> if let value { ... } ๊ฐ ๋์๋ค. ์ด์-_-)
- Swift 5.7
- Debug / Release Phase์ ๋ฐ๋ผ ์ฑ ์์ด์ฝ ๋ณ๊ฒฝํ๊ธฐ
- ์ฒซ ์๋๋ fastlane ์ ์ฌ์ฉํด๋ดค๋๋ฐ ์ผ๋ฐ ๋น๋ ์์ ์์ ์ ์ฉํ๊ธฐ ์ ๋งคํด์ (๋ฐฐํฌ๊ฐ ์๋) ํจ์ค
- ๋๋ฒ์งธ ์๋๋ https://www.raywenderlich.com/1716-how-to-change-your-app-icon-at-build-time ๋ฅผ ๋ฐ๋ผํด๋ดค๋๋ฐ, ์๊ฐ์ด ์ง๋์ ๋น๋ ๊ตฌ์กฐ๊ฐ ๋ฐ๋๊ฒ ๋๋ฌธ์ธ์ง ์๋จ
- ๋ง์ง๋ง ์๋๋ ์ ๋ชฉ์ ๋งํฌ ๋ฐฉ๋ฒ, ๊ฐ๋จํ๊ณ ์ข๋ค. ์ง์ ์์์ด์ผ ํ๋๋ฐ.; (๋ฐฐํฌ ๋ฒ์ ๊น์ง ์์ด์ฝ์ ๋จ๊ธธ ํ์๋ ๊ตณ์ด ํ์์์ด์ ์ด ๋ฐฉ๋ฒ ์ฌ์ฉ, ๋ฐฐํฌ์์๋ fastlane add_badge ๋ฅผ ํ์ฉํ๋๊ฒ ์ข์ ๋ฏ.)
- Launch screen ์ด ๊ฒ์ ์์ผ๋ก ๋์ฌ ๋
- ๋์ ๊ฒฝ์ฐ๋ vc ์ค์ ์ initial vc ์ฒดํฌ์ launch screen vc ์ฒดํฌ๊ฐ ์๋์ด์์์
- AdMob ipad multi scene ๋์ํ๊ธฐ
- viewDidAppear() ์์ ๋ก๋ํด์ผํ๋๊ฒ ํต์ฌ
- Binding Value์ ๋ณํ๋ฅผ .onChange() ๋ก ์ฒดํฌํ๊ธฐ -> ๋ถ๊ฐ๋ฅ -> .onReceive(Just(BindingValue), perform: { value in }) ์ ํ์ฉํด์ผ ํจ
2022. 5
- AdMob prepare ๋ SwiftUI ๊ธฐ์ค app ์ .task ๊ฐ ์๋๋ผ .onAppear ๋๋ onChange(phase - scene)์์ active ๋์ ๋ ์ฒ๋ฆฌํด์ผ ์์ดํจ๋์์ ํฌ๋์ ๋์ง ์์.
- SwiftUI alert -> View.alert(isPresented: ...).alert(isPresented: ...) ์ค์ฒฉํ๋ฉด ์ค๋์ํจ (๋์ ์ํ๊ฑฐ๋...) -> View.alert(item: )์ ํ์ํ์.
- Xcode shortcut
- Color Generator - Figma plugin
- SwiftUI pattern image ๋ฐฐ๊ฒฝ ์ฒ๋ฆฌ
- SwiftUI preferredColorScheme ๋์์ด ์๋๋ ๊ฒ
- Color ๋์ ์ UIColor("lightColor") ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ UIColor ๋ colorScheme ์ ๋ฐ๋ผ ๋์ํ์ง ์์.
- UIColor๋ UIColor(color)?.resolvedColor(with: .init(activeAppearance: ...)) ์ ์ฌ์ฉํด์ผ color scheme ์ ๋ฐ๋ผ ๋์ํจ
- ๊ทธ๋ฅ Color("lightColor")๋ฅผ ์ฌ์ฉํ๋ฉด colorScheme ์ ๋ฐ๋ผ ๋์ํจ.
- ํ๋ฉด ์บก์ณ ์ dark mode / light mode ๋ฐ์ ์๋๋ ๊ฒ - ์บก์ณ ํ window ์ window.overrideUserInterfaceStyle = userInterfaceStyle ์ค์ ํด์ค์ผ ํจ
2022. 4
- SwiftUI preview ์๋ ๋ ์ฒ๋ฆฌ
- if [ $ENABLE_PREVIEWS == "NO" ] ๋ฅผ ํ์ฉํด์ script run ์ ๋ง๋๋ค.
2022. 3
-
ProcessInfo.isiOSAppOnMac - iOS์ฑ์ด mac ์์ ์คํ๋๋์ง ์ฒดํฌํ๋ ๊ฐ
-
์ ๋๋ชน native ๊ด๊ณ ๊ด๋ จ ์ ๋ฆฌ
-
์ต๊ทผ ์ถ์ ์ฑ ๊ธฐ์ค ์ ๋๋คํธ์ํฌ ํจ๊ณผ ๋ถ์ - ์ ๋๋ชน 80, ์ฑ๋ก๋น 15, ํ๋ถ 4, ์ ๋์ฝ๋ก๋ 1 ์ ๋์ ํจ๊ณผ๊ฐ ์๋ค.
- CalMaker+ ๊ธฐ์ค, ๋ค๋ฅธ์ฑ์๋ ๋ถ์ฌ๋ณด๊ณ ์ถ๊ฐ ์ ๋ณด ์ฌ๋ฆด ์์
-
iOS ์บก์ณ์ ๋ค๋ฅธ ์ด๋ฏธ์ง๋ก ๋์ฒดํด์ ๋ทฐ ๋ณ๊ฒฝํด์ฃผ๊ธฐ. ๋ค๋ฅธ ์ฑ์์๋ ๋๋๋ฐ... ์บก์ณ์ ์๋ต ๋ฐ๋ ๋ฐฉ๋ฒ์ didScreenshot ์ฒ๋ผ ์บก์ณ ํ์๋ง ์ ์ ์์. willScreenshot ์ ์์ด์ ๋์ฒด๊ฐ ์๋จ. ์ถํ์ ์์๋ณด๊ธฐ. - ์บก์ณ ํ์ธ ํ ์ฌ์ง ์ ๊ทผํด์ ๋ง์ง๋ง ์ฌ์ง ์ญ์ ํ๋ ๋ฐฉ๋ฒ์ด ์์ง๋ง ๊ด์ฐฎ์๋ณด์ด์ง ์๋๋ค.
-
UIActivityViewController sheet์ ์์ด๋ก๋ง ๋์ค๋ ๊ฒฝ์ฐ
-
UIActivityViewController ์ฌ์ฉ ์ image to save ๊ฐ ๋จ์ง ์๋ ๊ฒฝ์ฐ, ์ฑ์ privacy ์ค์ ์์ ํ๊ธฐ - NSPhotoLibraryAddUsageDescription](https://stackoverflow.com/questions/39743492/ios-10-app-crashes-when-trying-to-save-image-to-photo-library)
2022. 2
- What is the iOS version global market share
- async await ์ฌ์ฉ ์ ํน์ ๋ผ์ธ๋ง main thread์์ ๋์์ํค๊ธฐ - MainActor.run
- Redacted view - swiftui
- deep linking url scheme ios
- Font fallback cascading
- SwiftUI ์์ Font ๋ Font(uiFont as CTFont) ์ด๋ฐ์์ผ๋ก ์บ์คํ ํด์ ์์ฑํ๋ฉด ๋จ. ๋ด๋ถ ๋๋ฒ๊น ์ ์๋จ... uiFont์ ๋ด๋ถ๋ฅผ ํ์ธํด์ผ ํจ