본문 바로가기

SwiftUI4

[SwiftUI] 링크도 게으름이 필요해: NavigationLink를 Lazy하게 안녕하세요. 로디입니다. SwiftUI로 앱을 개발하다 보면 자연스럽게 만나게 되는 친구가 있죠. 바로 NavigationLink입니다.오늘은 NavigationLink에서 메모리 사용을 최적화하는 기법에 대해 알아보려고 합니다. 뷰 간의 네비게이션을 손쉽게 처리해주는 NavigationLink 요녀석, 처음엔 아주 사랑스러운데, 쓰다 보면 뭔가 불편함을 느낄 때가 있습니다.  기본적으로 NavigationLink는 화면에 나타나는 순간, 링크의 목적지(destination)를 미리 생성해버립니다. 작은 화면이나 간단한 뷰라면 상관없지만, 복잡한 화면이거나 무거운 데이터를 다루는 경우라면 이야기가 달라집니다. 무거운 뷰를 미리 생성해둔다..? 메모리 폭행범인가요?..🥲 아직 쓰지도 않는 뷰의 메모리를 .. 2024. 8. 18.
[WWDC21] What’s new in SwiftUI 1. pull to refresh2. searchable [SearchBar]3. list row separator4. async image5. material effect6. badge for TabView item7. onSumit Trigger8. safeArea inset9. iteractiveDismissDisabled10. swipe actions11. AppStorage raw representable12. keyboard done button13. Canvas Core Graphics14. keyboard accessory view15. FocusState 2024. 8. 11.
[WWDC20] What’s new in SwiftUI 1. Grid View/ Collection View2. ScrollView API Update Scroll To Bottom3. PageView Controller4. Full Screen modal5. MultiLine TextField [Text Editor]6. Progress View and Activity Indicator7. Link8. LazyVStack and LazyHStack 9. Disclosure Group or Drop Down10. Advanced Map View and Map View annotations11. TextField onChange [SearchBar] 2024. 8. 11.
[SwiftUI] 왜 SwiftUI에서 View는 구조체(Struct)로 설계되었을까? SwiftUI는 Apple이 발표한 최신 UI 프레임워크로, 선언형 프로그래밍 패러다임을 채택하고 있습니다. SwiftUI에서 모든 뷰(View)는 구조체(Struct)로 선언됩니다. UIKit에서는 Class 기반의 UIViewController로 뷰를 구현했습니다. SwiftUI에서 뷰에 대한 구현에 왜 구조체를 선택했을까요? 이번 글에서는 SwiftUI에서 View가 구조체로 설계된 이유를 성능, 메모리 관리, 상태 관리, 그리고 선언형 프로그래밍 모델 측면에서 생각해보겠습니다.  1. 값 타입의 장점: 명확한 상태 관리SwiftUI는 선언형 프로그래밍을 기반으로 하여 UI 상태를 관리합니다. 이 과정에서 중요한 점은 상태의 변화를 명확하게 관리할 수 있어야 한다는 것입니다. 구조체는 값 타입이기 .. 2023. 12. 3.