2024 Monthly I Learned - kirseia/study GitHub Wiki
-
iPhone 16 ์๋ฆฌ์ฆ์ ์ถ๊ฐ๋ ์บก์ณ ๋ฒํผ ๊ธฐ๋ฅ ๋์ํ๊ธฐ
-
SwiftUI์์ ์ธํฐ๋ํฐ๋ธ ํธ์ ๋ค๋น๊ฒ์ด์ ์ฌ์ฉํ๊ธฐ
-
Cursor๋ก iOS ์ฑ ๊ฐ๋ฐํด๋ณด๊ธฐ
- ํซ๋ฆฌ๋ก๋๊น์ง ์ฐ๊ฒฐํ๋ฉด... xcode ๋์ ์๋ ๊ฐ๋ฐ์ด ๊ฐ๋ฅ์ ํ๊ฒ ๋๋ฐ ์์ง ๋ชจ๋ฅด๊ฒ ์.
-
์ธ๋ถ url ์ด๋ฏธ์ง๋ฅผ ๊ฐ๋ฐ ๋จ๊ณ์์๋ ๋์ฒดํด๋ณด๊ธฐ
-
์ค๋๋ง์ ๋ค์ ์ ๋ณตํด๋ณด๊ธฐ - ์ข์ ์ฝ๋ ์์ฑํ๊ธฐ
-
iOS - MeshGradient
-
- // ???: (์ ๋ชจ๋ฅด๋ ํจ์, ์ทจ์ง ๊ธฐ๋ก ์ฉ... , // !!!: (์ฃผ์๊ฐ ํ์ํ ์ฝ๋)
-
SwiftUI - ObservableObject -> @Observable ๋ก migration ํ๊ธฐ (์๋๋ ์ฐธ๊ณ ๋ฌธ์)
- https://www.avanderlee.com/swiftui/observable-macro-performance-increase-observableobject/
- https://eunjin3786.tistory.com/search/observable
- https://useyourloaf.com/blog/migrating-to-observable/
- https://developer.apple.com/documentation/swiftui/migrating-from-the-observable-object-protocol-to-the-observable-macro
- https://xerathcoder.tistory.com/274
-
PyTorch -> CoreML ๋ณํ ์ ์ฐธ๊ณ ํ ๋ฌธ์๋ค
-
https://rockyshikoku.medium.com/convert-rmbg1-4-to-core-ml-model-2e226f053c2b
-
https://github.com/Picsart-AI-Research/MI-GAN - ์ฌ๊ธฐ์ ์๋ ๋ณํ script ๋ค ์ฐธ๊ณ ํด์ ์์ ํ์.
-
https://apple.github.io/coremltools/docs-guides/source/image-inputs.html
-
https://apple.github.io/coremltools/source/coremltools.converters.mil.input_types.html
-
๊น๋จน์๊น๋ด ์ฐ๋ ๊ฒ
- conda ์จ์ ํ๊ฒฝ๊ด๋ฆฌํ๊ธฐ. pytorch-to-coreml ๊ฐ์ ์ด๋ฆ์ผ๋ก ๋ง๋ค์ด์ ๊ฐ์ด ๊ด๋ฆฌํด๋ ๋ ๋ฏ. coremltools, torch, torchvision ๋ฑ๋ฑ ๋ฒ์ ๊ด๋ฆฌ์์ ๋ฒ์ด๋์;
- ์ ๋ ฅ, ์ถ๋ ฅ ๊ด๋ฆฌ๊ฐ ํต์ฌ.
- ๊ฒฐ๊ณผ๋ฌผ์ ๋น ๋ฅด๊ฒ ๋น๊ตํ ์ ์๋ ๋ฐฉ๋ฒ ๋ฐ ์ฑ๋ฅ ๋น๊ตํ ๋ฐฉ๋ฒ์ ์ ๋ง๋ค์ด๋ฌ์ผ ํจ.
-
- SwiftUI - Create custom visual effects (feat. WWDC 2024) - ripple shader effects
- [Swift] Typed throws
- SwiftUI - ViewThatFits
- Infinite Four-Direction Scrollable Pager with SwiftUI
- Demystify SwiftUI containers (feat. WWDC 2024) ํ๊ธ
- Pytoch(.pt) ํ์ผ CoreML๋ก ๋ณํํ๊ธฐ
- Flutter - ์ฑ ์ธํ ํ๊ธฐ ์ ๋ฆฌ
- Flutter - Future.wait ๋์ Future<T1,T2> wait ์ ์ฌ์ฉํ๊ธฐ
-
What's new in SwiftUI (feat. WWDC 2024)
- wwdc24 ๋ณด๋ค๊ฐ ๋์ณค๋๊ฒ ๋ณด์ฌ์ ๋งํฌ, shader ๋ฅผ ๋ฏธ๋ฆฌ ์ปดํ์ผ ํด์ ์ธ ์ ์๊ฒ ๋๋ค๋ ์ข๋ค!
- Flutter - UI ๊ด๋ จ ์ง์
- iOS18 Translation API
- WWDC24 Recap
- iOS18 ์ ์ถ๊ฐ๋๋ SwiftUI ๊ธฐ๋ฅ๋ค
-
WWDC24 - ์ธ์
๋ชจ์
-
#1์ผ์ฐจ
-
Bring your appโs core features to users with App Intents
- App Intents framework ์ค๋ช - intents, entities, queries...
- AppIntent ๋ฅผ (๋จ์ถ์ด) ๋ฐ์๋ค ์ผ ์ ์๊ฒ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฒ. ์ด๋ค Paramter ๋ฅผ ๋ฐ๊ณ , ์ฑ์ ์คํํ ์ง ์ฌ๋ถ๋ฅผ ์ ํ๊ณ , ์ด๋ค ๋์์ ํ๊ณ , ์ด๋ค ๊ฒฐ๊ณผ๋ฅผ return ํ๊ณ ...
- ์ ์ด์ผํฐ์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ, ๊ฒ์์ ๋ ธ์ถํ๋ ๋ฐฉ๋ฒ ๋ฑ๋ฑ.
-
- ๊ฐ์ธํ๋ ํ๋ฉด ์ธ์, ๋ ์์ฐ์ค๋ฌ์ด ๋ชฉ์๋ฆฌ, ๋ ํ๋ถํ ์ธ์ด ์ดํด.
- ์ฑ ๊ฐ์ ์ก์ ์ ์ํด app intents ๋ฅผ ๋ ๋ง๋ค์๋ค. 12๊ฐ ๋๋ฉ์ธ์ผ๋ก ์ผ๋จ ์์. (์ฌ์ง, ๋ฉ์ผ ๋ฑ๋ฑ)
- ์ด์ ๋๊ตฌ๋ ์ฐ์ ์ฌ์ง์ ์ด๋ค ์ฑ์ผ๋ก ํํฐ๋ฅผ ์ ์ฉํด์ค. ๊ฐ์ ๋ช ๋ น์ด ๊ฐ๋ฅํด์ง.
- assistant schemas -> @AssistantEntity(schema: ...) ๋ก ์์ํด์ ์์ฑ ๊ฐ๋ฅ.
- ๊ฐ์ธํ๋ context ์ฒ๋ฆฌ ๊ฐ๋ฅ. (๋ด ์ฌ์ง์ ์๋ ๋ญ๊ฐ๋ฅผ ๊ฒ์ํด์ ์ฑ์ ์ฐ๋ค๊ฑฐ๋...)
-
- Building Blocks - ํ ์คํธ ์์ฑ์ XCTest ๋์ ์ SwiftTesting ์ ์ ํํด์ ๋ง๋ค์ด์ผ ํจ.
- import Testing, ๊ทธ๋ฆฌ๊ณ @Test ๋ก ํ ์คํธ๋ฅผ ๋ง๋ค๊ธฐ. async / throws ์ง์. ๊ฒฐ๊ณผ ์ฒดํฌ๋ #expect() ๋ก ํ๋ค.
- ์ ๋ฆฌ -> ํ ์คํธ ํจ์๋ @Test , ๊ฒฐ๊ณผ ์ฒดํฌ๋ #expect() ๋ก
- ๊ฒฐ๊ณผ๋ฅผ ์์ธํ ๋ณด์ฌ์ค๋ค... ! ๊ตณ!
- #require() ๋ก not nil ์ฒดํฌ,
- ์กฐ๊ฑด ์ค ์ ์์. @Test("์ ๋ชฉ", .enabled() , .disabled(), .timeLimit(.minute(3)) ๋ฑ๋ฑ
- @Suite ๋ก ๊ทธ๋ฃนํ ๊ฐ๋ฅ
- @Test(arguments: []) ๋ก ์ฌ๋ฌ ๋ฒ ๋ฐ๋ณตํ Input์ ํ ์คํธ ๊ฐ๋ฅ ํจ. - ๋ฐ๋ณต์ด ์๋๋ผ ๋์์ ๋์๊ฐ = ํ ์คํธ ์๊ฐ ๋จ์ถ (!!!)
-
- ๊ธฐ์กด ์ฑ์ Swift6 ์ผ๋ก ๋ฆฌํฉํ ๋ง ํ๋ ๊ณผ์ ์ ๋ณด์ฌ์ค.
- concurrency check ๋ complete ๋ก ํด์ ๋ฐ์ํ๋ ์๋๋ค์ ์ ๋ฆฌ,
- global shared ๋ณ์ ๊ฐ์๊ฑฐ๋ read-only ๋ก ๋ฐ๊พธ๊ฑฐ๋, global actor (์- @MainActor) ๋ก ๋ฐ๊ฟ์ค๋ค. ๋๋ nonisolated(unsafe) ๋ก ํ๋ค.
- best ๋ read-only ๋ก ์ฒ๋ฆฌ. (๊ฐ๋ฅํ๋ฉด)
- ๋ค๋ฅธ thread ๋ก ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐ๋ ค๋ฉด sendable ๋ก ๋ง๋คํ์๊ฐ ์์.
- ๋ด๋ถ ๋ณ์๊ฐ ์ ๊ทผ ๋ถ๊ฐํ๊ฑฐ๋ ํ๋ฉด nonisolate(unsafe) ์ฒดํฌ๋ฅผ ๋ถ์ฌ์ค ์๋ ์์. ๊ทธ๊ฒ ์๋๋ฉด ๋ด๋ถ ๋ณ์๋ sendable ๋ก ๋ง๋ค๊ธฐ.
-
- SwiftUI ๊ฐ๋จํ ์๊ฐ. ๊ธฐ์กด์ ์๋ ์ฌ๋์ ๊ตณ์ด ์๋ด๋ ๋ ๋ฏ.
- Text().contentTransition(.numericText(value: ...))
-
Whatโs new in StoreKit and In-App Purchase โ
- SubscriptionStoreView() / group / marketingCOntent - feture ๋ฑ๋ฑ์ ์ถ๊ฐํด์ค ์ ์์.
- ์ด๋ป๊ฒ ๋์์ธ ํ ์ ์๋์ง ์ต์ ๋ค ๋ณด์ฌ์ฃผ๊ณ ์์.
- win-back offer (์ด์ ๊ตฌ์ ์/๊ตฌ๋ ์์๊ฒ ์ฐ์ฅ์ ์ํ ํ๋ก๋ชจ์ ๊ฐ์๊ฑฐ) ์ ๊ณต ์ฒ๋ฆฌ ๊ฐ๋ฅ
- storekit2 - ios 15 ๋ถํฐ ๊ฐ๋ฅ!
-
- ์๋์ ์๋ก์ด view ๋ค์ด ์ถ๊ฐ๋์์
- TabView()
- ControlWidget() - ์ ์ด์ผํฐ์ ์ถ๊ฐ๋ ์ ์๋ ์์ ฏ
- TableView()
- MeshGradient()
- ...
- @Previewable @State ๊ฐ ์ถ๊ฐ๋์ด preview ์์ @state ๋ฅผ ๋ฐ๋ก ์ฌ์ฉ๊ฐ๋ฅํด์ก๋ค.
- ์คํฌ๋กค ๊ด๋ จํด์๋ ์ถ๊ฐ๋๊ฒ ๋ง์. (scroll position ์ผ๋ก ๋์ ์ฒ๋ฆฌ ๊ฐ์๊ฑฐ)
- TextRenderer - ํ ์คํธ์ metal / shader ๋ฑ์ ์ฒ๋ฆฌ ๊ฐ๋ฅ
-
- Live Activities ๋ฅผ ์์นOS ์์ ๋ณด์ฌ์ค ์ ์๊ฒ ๋์.
- interactive widget ๋ ์ฌ์ฉ๊ฐ๋ฅํด์ก์.
- double tap ์ก์ ์ด ์ถ๊ฐ๋จ. ํ๋ฉด์์ ๋๋ฅด๋ฉด main ๊ธฐ๋ฅ์ (์ง์ ํ) ์คํํ ์ ์์. (์์น os ์์ ์ฌ์ฉํ๋ quick button ๊ฐ์ด ์ฌ์ฉ ๋ ๋ฏ)
-
#2์ผ์ฐจ
-
Bring expression to your app with Genmoji
-
Personalized content ๊ฐ ์ด๋ชจ์ง ํค๋ณด๋์ ์ถ๊ฐ๋จ. (์คํฐ์ปค, genemoji ...)
-
Genmoji ์ด๋ฏธ์ง ๊ธฐ๋ฐ์ (NSAdaptiveImageGlyph)
-
Square aspect ratio, multiple resolutions
-
์ฑ์ ์ ์ฉํ๊ธฐ
- rich text view ๋ ๊ฐ์ด ๋์ํจ. supportsAdaptiveImageGlyph ๋ฅผ ํ์ฑํ ํ๋ฉด ๋จ (UITextView, TextView ...)
- NSAttributedString.DocumentType.rtfd
- not Unicode ! ํ์ํธํ์ฑ ๊ณ ๋ คํด์ผํจ.
-
Genemoji ๋ ์ด๋ชจ์ง ํค๋ณด๋๋ก ์์ฑ๋์ด ์ ๋ ฅ๋ ์ ์๊ณ (๋ณ๋ api ๋ ์๋๋ฏ) ๊ทธ ๊ฐ์ rtfData ๋ก ์ฝ๊ณ ์ฐ์ฌ์ง.
-
์ด๋ฏธ์ง๋ก ๋ณํ ๊ฐ๋ฅํ๋๊น ์์ฑ ์ด๋ฏธ์ง๋ฅผ ๋ฐ๋ก ์ธ ์๋ ์์ ๋ฏ.
-
-
Enhance your UI animations and transitions
- View Navigation ํ ๋ hero ์ฒ๋ผ ์ ๋๋ฉ์ด์
์ฒ๋ฆฌ ๊ฐ๋ฅํด์ง.
- SwiftUI - .navigationTransitionStyle() ๊ทธ๋ฆฌ๊ณ .matchedTransitionSource(id: ,in: )์ผ๋ก ๊ฐ๋ฅ.
- view appear / disappear ์์ ์ ๋ฆฌ ์ ๋์ด์์. (Appearance callbacks ๋ด์ฉ)
- uikit ์ swiftui ์ฒ๋ผ ์ ๋๋ฉ์ด์ ์ ์ฉ์ด ๊ฐ๋ฅํด์ง. (๋ ์ด์ด ์ ์ฉ ๊ตฌ์กฐ๊ฐ ๋ฐ๋ ๋ฏ...)
- View Navigation ํ ๋ hero ์ฒ๋ผ ์ ๋๋ฉ์ด์
์ฒ๋ฆฌ ๊ฐ๋ฅํด์ง.
-
Extend your appโs controls across the system
- ์ ์ด์ผํฐ์ WidgetKit ์ ์ฌ์ฉํ ์ ์๊ฒ ๋์์.
- ํ ๊ธ / ๋ฒํผ 2๊ฐ์ง ํ์ ์ผ๋ก ์ ์ด ๊ฐ๋ฅํด์ง. (์ฌ๋ผ์ด๋๋...? -_-?)
- symbol / title / value 3๊ฐ์ง ์ ๋ณด๋ฅผ ์ ๊ณต ๊ฐ๋ฅ
- StaticControlConfiguration ...
- ๋ฏธ๋ฆฌ ์ ์๋ ํ์์ผ๋ก ๋ง๋ค๋ฉด ์ ์ด์ผํฐ, ์์ ฏ, ์๋จ ๋ผ์ด๋ธ ์กํฐ๋นํฐ ๋ค ์ ์ฉ...? ํ ์ ์์. (๋ณ๋ ๊ตฌํ ํ์)
- ๊ธฐ์กด ์์ ฏ์ฒ๋ผ configuration ์ ๊ณต ๊ฐ๋ฅ, ์ก์ ๋ฒํผ์ผ๋ก ํน์ ๋์์ On / off ํ ์ ์์. (controlWidgetActionHint)
-
Get started with Writing Tools
- ํ ์คํธ๋ทฐ์ ๊ธฐ๋ฅ (๋ณต์ฌ, ์ญ์ ๋ฑ์ ํดํ ๊ธฐ๋ฅ)์ writing tools ๊ฐ ์ถ๊ฐ ๋จ.
- ๊ต์ , ์์ฝ ๋ฑ ๊ฐ๋ฅ.
- TextKit2 ์ delegate ๊ฐ์๊ฑธ๋ก ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ถ๋, writingTools enter / exit ์ฒดํฌ ํ ์ ์๊ณ , ๊ธฐ๋ฅ ์ ํ์ ํ ์ ์์.
- ๊ต์ / ์์ฝ ๊ธฐ๋ฅ์ด ๋ณ๋ API๋ก ์คํ๋์ด์์ง๋ ์์ ๋ฏ
-
- Meet Swift Testing ์ธ์ ์ ์ด์ด์ง ๋ด์ฉ.
- error cache -> #expect(throws: AAAError.specificError) ...์ด๋ฐ์์ผ๋ก ์ฒ๋ฆฌ ๊ฐ๋ฅ.
- known issues -> withKnownIssue { }
- parameter ๋๊ธฐ๋ ๊ฒ, multiple types ์ ๋๊ธธ ์ ์์. zip(2๊ฐ ํ์ ) ๋๊ธฐ๋ฉด -> 2๊ฐ ์กฐํฉ์ (combination) ๋ค ํ ์คํธ ํจ.
- @Suite ๋ ๋ค๋ฅธ @Suite ๋ฅผ ํฌํจํ ์ ์์.
- @Tag ๋ก ๊ฒฐ๊ณผ ๊ตฌ๋ถ ๋์์ค
- @Suite('', .serialized) ๋ก ํ๋ฒ์ ํจ๋ฌ๋ด ๋ง์ ์ ์์, await confirmation() ์ผ๋ก async ํจ์ ํ ์คํธ ๊ฐ๋ฅ
-
- Sportlight integration
- CSSerchableItem - indexedEntity ์ถ๊ฐ. ์คํ๋ผ์ดํธ์ ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ๋ ธ์ถ๋๊ณ , siri๊ฐ ์ดํดํ๊ณ ์ฐพ์ ์ ์๊ฒ ๋์์ค
- TrailEntity ...
- Entities and files
- Transferable ์ ํตํด์ ๋ค๋ฅธ ์ฑ์ ๋ฐ์ดํฐ ์ ๋ฌ์ด ๊ฐ๋ฅํด์ง. (์์๋ ์ด๋์ฑ์์ ์ด๋ ํต๊ณ/์์ฝ ๋ฑ๋ฑ์ png / txt ๋ฑ์ผ๋ก ์ ๋ฌํด์ ๋ฉ๋ชจ์ฅ์ ์ฐ๋ ํํ)
- WWDC22 ์์ Transferable ์ ์ฐพ์๋ณผ ์ ์์.
- AppIntent ๊ตฌํ์ผ๋ก ๋ค๋ฅธ ์ฑ์์ ๋ณด๋ธ ๋ฐ์ดํฐ๋ฅผ ์ด๋ค ํ์ ์ ๋ฐ์์ง ์ ํด์ ๋ฐ๋ ๋์์ ๊ตฌํํ ์ ์์.
- Universal links
- URLRepresentableEntity/Enum/Intent 3๊ฐ์ง๊ฐ ์ถ๊ฐ.
- Sportlight integration
-
#3์ผ์ฐจ
-
Build a great Lock Screen camera capture experience
- ๊ธฐ๊ธฐ ์ ๊ธ ์ํ์์ ์ดฌ์์ ํ ์ ์๋ (๊ธฐ์กด ๊ธฐ๋ณธ ์นด๋ฉ๋ผ์ฒ๋ผ) capture extension ์ด ์ถ๊ฐ๋จ.
- ์ ๊ธ ์ํ์์ ์ดฌ์์ ๋ณด์์ด ์ ์ด๋ค์ง ์ํ์์ ์งํ๋๋ค (์ฌ์ง ์์ญ ๋ถ๋ฆฌ, ๋คํธ์ ์๋จ, shared preferences ์ ๊ทผ ์๋จ ๋ฑ)
- (๋ญ ํ ์ ์์์ง ์์ด๋์ด๊ฐ ๋ ์ค๋ฅด์ง ์๋ค...;)
-
- text.localizedStandardRange(of: search) ์ด๋ฐ์์ผ๋ก ์ธ์ด๋ณ๋ก ๋ค๋ฅธ๊ฑธ ์ฒ๋ฆฌ
- typesettingLanguage
- formatted
-
let nameComponents = PersonNameComponents
(givenName: "็็บ", familyName: "ๆฑช", nickname: "็บ็บ")
// Short Name (respects settings like โPrefer Nicknamesโ)
let shortName = โจ nameComponents.formatted(.name(style: .short)) // ็บ็บ
// Abbreviated Name (can be used for monograms)
let monogram = โจ nameComponents.formatted(.name(style: .abbreviated)) // ๆฑช
-
Discover Swift enhancements in the Vision framework
- ๊ธฐ์กด visionkit ๊ทธ๋ฅ ์๊ฐ. (api ๋ฌธ์์๋ ios18์์ ์๋ก ๋ง๋ค์ด์ก๋ค๊ณ ํ๋๋ฐ ๊ฒ์ ๋น์ท, ๋ด๋ถ์ ์ผ๋ก ๊ฐ์ ์ด ๋ ๊ฒ์ผ๋ก ๋ณด์)
-
- Translation.framework ์ถ๊ฐ - 17.4์ ์ถ๊ฐ๋๊ณ , ๊ธฐ๋ฅ ์ถ๊ฐ ๋จ.
- 17.4์ swiftui ์ .translationPresentation(isPresented: $show, text: inputText) ์ด๋ฐ๊ฒ ์ถ๊ฐ๋์์.
- TranslationSession ์ on-device model ์.
- ๋ฒ์ญํ ๋ configuration ์ธํ ์ผ๋ก ๋ฒ์ญํ๊ธฐ
- view appears ํ ๋ ๋ฒ์ญํ๊ธฐ
- ์ 2๊ฐ์ง๋ก ๋งค์ฐ ๋น ๋ฅด๊ฒ ๋ฒ์ญ ์ฒ๋ฆฌ๋ฅผ ํ ์ ์์ ๋ฏ
- simulator ๋ง๊ณ ๊ธฐ๊ธฐ๋ฅผ ์จ์ ๊ฐ๋ฐํด๋ผ. ์ด๊ฒ best practice
-
- Custom layout ๊ด๋ จ, ForEach(subviewOf: ), ForEach(sectionOf ), Group(subviewOf: ) <- ์๋ก ์ถ๊ฐ ๋จ.
- Environment values (flow down), preference values (flow up) (์ฌ๊ธด ๊ธฐ์กด)
- Ccontainer values (stay contained) <- ์๋ก ์ถ๊ฐ ๋จ.
-
- animation presets ์ถ๊ฐ, wiggle, rotate, ...
- color variables
- ์๋ก์ด feature๋ sf symbols 6 ์ฑ์์ ํ์ธ๊ฐ๋ฅ. + ์๋ก์ด symbols ์ถ๊ฐ
-
Whatโs new in location authorization
- CLServiceSession ! ์์๋ก ๊ถํ์ ํ๋ํ๊ธฐ ์ํด์...?
-
Support semantic search with Core Spotlight
- ์์ฐ์ด๋ก ๊ฒ์ํ์ ๋ ์๋ฏธ์ ๋ฐ๋ฅธ (๋น์ทํ ์๋ฏธ๊น์ง) ๊ฒ์์ด ๊ฐ๋ฅํ๊ฒ ๋ง๋ค๋ ค๋ฉด ์ด๋ป๊ฒ ํ ๊ฒ์ธ๊ฐ..๋ฅผ ์ค๋ช ํด์ค.
- Searchable content donation - (ํ
์คํธ, ๋ฏธ๋์ด์ ์๋ฏธ ๊ฒ์์ด ์ ๋์ํจ.)
- CoreSpotlightDelegate extension ์ ์ถ๊ฐํด์ ๋ง๋ค ์ ์์.
-
Design App Intents for system experiences
- Anything your app does should be an App Intent
- Get / Edit / Create / Delete / Open . ์ด๋ ๊ฒ๊ฐ ์ฃผ์ ๊ธฐ๋ฅ ์์ฑ
- ํ๋์ ๊ธฐ๋ฅ์ ์ฌ๋ฌ intent ๋ก ๋ง๋ค์ง ๋ง ๊ฒ, ๋์์ intent๋ก ๋ง๋ค์ง ๋ง ๊ฒ (swipe down something, cancel something...)
- App Intents ๊ตฌ์กฐ ๋ง๋ค๊ธฐ : Parameter Types / Options/Required parameters / Toggles / Open Intents
-
#4์ผ์ฐจ
-
- Accessibility audit tools ์ด ์์. ํฐํธ ์ปค์ก์ ๋ ์๋ฆฌ๋๊ฑฐ๋, ์์ฑ ์๋ด๋ฅผ ์ํ text label ์ด ๋น ์ก์ ๋ ์๋ ค์ค.
- dynamic layout ๋ ๊ณ ๋ คํ ํ์ ์์. (ํฌ๊ธฐ ์ปค์ก์ ๋ ๊ณต๊ฐ์ด ๋ถ์กฑํ๋ฉด ๋ค๋ฅธ ๋ ์ด์์์ ์ด๋ค๊ฑฐ๋)
- Flutter ๋ก๊ทธ ๊ธฐ๋กํ๊ธฐ ์ ๋ฆฌ + Firebase Crashlytics/Analytics
- What's new? Swift 5.10
- What's new? Swift 6.0
- UX - ๋ก๊ทธ์ธ/ํ์๊ฐ์ flow
- SwiftUI - Search / searchSuggestions / SearchScope
- SwiftUI - transformEnvironment
-
SwiftUI - Data-flow
- ios17 ๊ธฐ๋ฐ์ผ๋ก ์ฑ์ ๋ง๋ค ์ ์๊ฒ ๋์ด @Observable ์ ๋ํด ๋ค์ ์ฐพ์๋ดค์.
- Flutter - MobX Cheat Sheet
-
์๋ํ๋ ์๋๋ก์ด๋ ์ฑ ์ค๋ชจํฌ ํ ์คํธ
- flutter์ฑ์ ๋ง๋ค๋ฉด ์ด๊ฑธ ๋๋ ค๋ณผ ์ ์์๊ฑฐ ๊ฐ๋ค.
-
- ๋จธ์ ๋ฌ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํด์ ์ฃผ๋ก ์ฌ์ฉ๋๋ json ๊ธฐ๋ฐ์ db ์ธ๊ฑฐ ๊ฐ์๋ฐ ๋ณต์กํ์ง ์์ db๋ก ์ธ ๋ชจ ์์ ๋ฏ ์ถ๋ค.
- swift๋ก ๋ง๋ค์ด์ง๊ฒ๋ ์์
- ์ฐธ๊ณ 1, ์ฐธ๊ณ 2
-
Flutter ์คํฐ๋ ์์ (์ด๋ ๊ฒ ์งํ ์ค)
-
(3) SwiftUI ๊ฐ๋ฐ์๋ฅผ ์ํ Flutter
- ์์ง ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง ๋ทฐ๊ฐ ์ด๋ค์์ผ๋ก ๊ทธ๋ ค์ง๋์ง ๋น ๋ฅด๊ฒ ์ค์ผ์น
-
์ฌ๊ธฐ๊น์ง ํ๊ณ ๋์ ๋ฐ๋ก ์ฑ ๊ฐ๋ฐํ๋ฉด์ ๋ฐฐ์ธ ์๊ฐ.
-
SwiftUI View ์จ๊ธฐ๋ ๋ฐฉ๋ฒ๋ค
- if ๋ก ๋ถ๊ธฐํ๋ฉด ์์ ์ฌ๋ผ์ง๊ณ , hidden ํ๋ฉด ๊ณต๊ฐ์ ์ฐจ์งํ๊ณ ๋ณด์ด๊ธฐ๋ง ์๋ณด์. opacity 0.0 ๊ณผ ๋์ผ.
- opacity ๊ฐ์ ๋ฐ๋ผ ํญ ํ์ ์ด ๋ค๋ฅธ๊ฒ ์ฌ๋ฏธ์์. (opacity ๊ฐ ์ ์ ๋ฎ์์ง์ ๋ฐ๋ผ ๋ฒํผ ์์ญ์ด ์์์ง๋๊ฒ ์ ๊ธฐ)
-
Xcode 15 ํตํฉ ๋ก๊น ์์คํ (Unified Logging System)๊ณผ Macro
- Cinematic Framework๋ฅผ ํ์ฉํด์ Depth ์ฒ๋ฆฌํ๊ธฐ
-
iOS 16์ ์๋ก์ด SwiftUI ๊ธฐ๋ฅ ์ ๋ฆฌ
- iOS 17์ด ๋์์ง๋ง ๊น๋จน์ด์ ๋ค์ ์ ๋ฆฌํ ๊ฒธ ์ฌ๋ฆผ.
-
withAnimation(:completionCriteria::completion:), 2
- ๋๋์ด swiftui ์์๋ ์ ๋๋ฉ์ด์ ๋๋๋ ํ์ด๋ฐ์ ์ ์ ์๊ฒ ๋์๋ค.
-
SwiftUI๋ก ๋์ ๋ทฐ ๋ ์ด์์ ๊ตฌ์ฑํ๊ธฐ
- alignmentGuide ๋ฅผ ์ด์ฉํ ๋์ ๋ ์ด์์ ๊ตฌ์ฑ, lazy vgrid ๋ uikit ์ scrollview ๊ตฌ์ฑ๊ณผ ๋น๊ตํ๋ฉด ๋ชจ๋ ๋ทฐ๊ฐ ํ๋ฒ์ ๋ก๋๋์ด ๊ฐฏ์๊ฐ ๋ง์ ๋ ๋ฌธ์ ์์ ์ ์์.
- A simple fastlane setup for solo indie developers
- Interactive Widgets With SwiftUI
- SwiftUI - .redacted(), 2
-
Stoke image border
- vision library ๋ฅผ ํ์ฉํด ์ธ๊ณฝ์ (contour)๋ฅผ ๋ฐ์์ stoke ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ด ๊ฝค ์ฌ๋ฐ์.
- SensoryFeedback, 2
- SwiftUI์์ Shake ๋์ ์ธ์ง์ฒ๋ฆฌํ๊ธฐ