SwiftUI
-
SwiftUI - ContainerValueKeySwiftUI 2024. 10. 24. 18:52
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SwiftUI의 ContainerValueKey에 대해 알아보겠습니다 🙋🏻 ContainerValueKeyiOS 18에서 나온 개념으로 컨테이너 값에 접근하기 위한 키입니다. protocol ContainerValueKey 익숙한 PreferenceKey처럼 프로토콜이며 비슷하지만, 조금 다른 차이가 있어요. 조금 더 차이를 짚어볼까요? PreferenceKey는 특정 뷰에서 계산된 값을 뷰에 전달하는 역할로 많이 쓰이죠.즉 데이터는 자식 뷰에서 상위 뷰로 전파됩니다.레이아웃의 정보를 전파하거나 여러 하위 뷰에서 데이터들을 모아서 상위 뷰에서 처리할 때 많이 사용하죠. struct SizePreferenceKey: PreferenceKey { static..
-
SwiftUI - NavigationTransitionSwiftUI 2024. 10. 21. 18:45
안녕하세요. 그린입니다 🍏이번 포스팅에서는 iOS 18에서 새로 나온 SwiftUI의 NavigationTransition에 대해 알아보겠습니다 🙋🏻 NavigationTransition우선 전환 효과에 대한 얘기인것 같죠?우리가 네비게이션 구조로 스택을 쌓아 화면을 전환하거나 시트 형태로 전환할때 보통 일반적으로 생각하고 있는 전환 효과가 있죠? 아주 익숙한 전환 효과입니다. 그런데, iOS 18부터는 이런 기본 전환 효과 외에도 줌 전환 효과를 사용할 수 있게 되었어요.그래서 NavigationTransition이라는것도 나오면서 그에 맞는 뷰 모디파이어도 생겨났습니다. 그럼 먼저 NavigationTransition부터 알아봐야겠죠? protocol NavigationTransition Na..
-
컨텐츠 크기에 따른 자동 ScrollView 전환하기 (feat. SwiftUI)SwiftUI 2024. 10. 17. 18:59
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SwiftUI에서 간단히 컨텐츠 크기에 따른 자동 ScrollView로 전환하는 코드 구현을 소개해볼까 합니다 🙋🏻 자동 ScrollView 전환하기일반적으로 우리가 컨텐츠를 채워서 구현할때 코드 상 스크롤뷰로 감싸지 않으면 스크롤되지가 않죠.물론 List와 같은 그런 컴포넌트 사용은 제외하고요..! 그런데, 데이터를 받아오는 입장에서 이 데이터를 그려줄때 디바이스의 어느정도 사이즈를 차지할지 미리 알 순 없죠.그렇기에, 스크롤이 되게 스크롤뷰로 미리 감싸놓는 경우가 많습니다. 만약 요구하는 UI / UX가 컨텐츠가 적어서 디바이스에 스크롤을 하지 않아도 다 표시가 된다면 스크롤이 되지 않도록하고, 컨텐츠가 많아서 디바이스의 사이즈를 넘어가면 스크롤이 적용..
-
SwiftUI - ScrollPositionSwiftUI 2024. 10. 14. 18:56
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SwiftUI의 ScrollPosition에 대해 알아보겠습니다 🙋🏻 ScrollPosition이번 iOS 18로 업데이트 되면서 SwiftUI에서 ScrollPosition 타입이 생기면서 이와 관련된 모디파이어들로 스크롤 뷰의 기능이 더 편리해졌습니다 😃 기존에, SwiftUI에서 ScrollView를 사용할 때, 특정 위치로 스크롤을 이동시키거나 할때 우리는 ScrollViewReader를 활용해서 scrollTo 메서드로 동작 시켜줬습니다. 이와 관련해서는 아래 포스팅을 참고해보면 이번 포스팅에서 다뤄볼 ScrollPosition과 어떤 차이가 있는지 확인해볼 수 있어요! SwiftUI - ScrollViewReader안녕하세요. 그린입니다🍏 ..
-
SwiftUI - ScaledMetricSwiftUI 2024. 9. 9. 19:10
안녕하세요. 그린입니다 🍏이번 포스팅에서는 이미지 에셋의 크기에 대해 ScaledMetric API를 적용해 다이나믹 타입에 대처하는 방법에 대해 알아보겠습니다 🙋🏻 올해 WWDC 2024에서 Get started with Dynamic Type이라는 세션이 공개되었습니다.해당 세션에서 다이나믹 타입에 대해 전반적으로 소개하며 다루고 있는데요.여기서 ScaledMetric이라는 프로퍼티 래퍼로 우리의 이미지 에셋 크기를 다이나믹 타입을 적용할 수 있다고 소개하고 있어요 😃 그래서 그 ScaledMetric API가 어떤건지 핵심만 정리해봅니다! Get started with Dynamic Type 세션을 정리한 포스팅도 있으니 많은 관심 부탁드립니다 🙇🏻 Get started with Dyn..
-
SwiftUI - AnyLayoutSwiftUI 2024. 8. 29. 18:28
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SwiftUI의 AnyLayout에 대해 학습해보겠습니다 🙋🏻 AnyLayout우선 AnyLayout은 레이아웃 프로토콜의 타입 소거된 인스턴스입니다.여기서 Type erasure란, 컴파일 시간에 알려진 타입 정보의 일부를 런타임에 제거하는 과정을 말하며 주로 제네릭 프로그래밍에서 유용하게 사용됩니다.즉, 구체 타입은 숨기고 더 일반적인 인터페이스를 제공할 수 있죠.AnyLayout도 Any라는것이 붙었으니 구체적인 타입을 숨기고 Layout이라는 인터페이스를 제공함을 추론해볼 수 있습니다. SwiftUI에선 AnyView도 동일한거라고 보시면 됩니다 😃 @frozenstruct AnyLayout 선언 구조 자체는 구조체로 간단합니다. AnyLayout..
-
Enhance your UI animations and transitions (feat. WWDC 2024)SwiftUI 2024. 7. 29. 18:33
안녕하세요. 그린입니다 🍏이번 포스팅에서는 WWDC 2024에서 소개된 UI 애니메이션과 전환 기능을 향상시키는것에 대해 알아보겠습니다 🙋🏻 그럼 바로 본론으로~ 🏃🏻 Enhance your UI animations and transitions소개에서는 이제 SwiftUI, UIKit 및 AppKit의 애니메이션의 상호작용이 더 극대화되었다고 합니다.아마 유추해보건데, 각 기술들에서 애니메이션을 자유롭게 상호적으로 쓸 수 있는것에 대해 알려줄것 같네요 🤔 TransitionsiOS 18에선 새로운 확대/축소 전환 기능이 생겼습니다. 이렇게 특정 셀을 가지고 화면이 전환될때 확대/축소 애니메이션이 적용되고 또, 드래그도 마음대로 할 수 있죠.즉, 동일한 UI 요소를 화면에 유지하여 앱의 연속성..
-
Create custom visual effects (feat. WWDC 2024)SwiftUI 2024. 7. 22. 18:30
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SwiftUI에서 커스텀한 시각 효과를 만드는 방법에 대해 학습해보겠습니다 🙋🏻 WWDC 2024에서 SwiftUI로 custom visual effect를 만드는 방법에 대해 더 진보적이게 발전시켜 소개하고 있기에 한번 알아보려고 가져와봤어요 😃 이전 포스팅인 What's new in SwiftUI (feat. WWDC 2024)에서 마지막쯤에 해당 비주얼 이펙트에 대해 간단히 소개하고 넘어갔는데, 이번에 더 자세히 알아보게 되었습니다ㅎㅎ What's new in SwiftUI (feat. WWDC 2024)안녕하세요. 그린입니다 🍏이번 포스팅부터는 조금씩 미뤄왔던 WWDC 2024 세션들을 다시 살펴보면서 관심있는 주제들에 대해 리캡을 해볼까 합니다..