photoPicker에서 AVAsset 추출하기
·
iOS/SwiftUI
👋 들어가기 전 포토피커를 통해, photosPickerItem을 가져와서 AVPlayer까지 재생하는데,너무 오래 걸린다.. 단, 30초 밖에 안되는 영상인데 말이다... 개선하는 과정이 너무 어이없어서, 남겨놓으려한다..🏁 학습할 내용문제점개선 과정🤬 문제점 🐌 너무 느린 로딩 속도 Gif 이미지를 보면, 4초 쯤에 영상을 선택했는데, 화면이동이 약 26 ~ 27정도에 진행됐다.단, 32초 밖에 안되는 영상을 가져오는데 20초 가량이 걸린 것이다..여기서 느낀 이상한 점은 크게 2개다. 아니 왜이렇게 오래걸리는거야??갤러리에 접근하는데 왜, 권한을 안물어보지?? 권한 문제는 해결 과정에서 알아보고, 일단 왜 이렇게 오래걸리는 지, 문제를 파악해보자. 1️⃣ PhotosPickerItem을 잘못..
onScrollGeometryChange
·
iOS/SwiftUI
👋 들어가기 전 사이드에서, pullToRefresh와 Pagination Loading을 위해, 조금 old한 방법으로 구현을 했느네, iOS18.0 이상부터 사용가능한 좋은 API가 있어서 그걸로 대체해보려가한다..우리 프로젝트는 18.0이상이니깐..😂 기존 코드와 문제점 1️⃣ GeometryReader + PreferenceKey +coordinateSpace부가적인 코드가 너무 많음코드 흐름 파악이 힘듬 2️⃣ 타이밍을 운에 걸어야함ScrollView 높이를 얻기 위해 GeometryReader 내부의 proxy.size.height을 onChange에서 계속 받음 기능상 큰 문제는 없지만, 편법을 하기위한 트레이드 오프 생각보다 작지는 않아보인다.오늘의 주인공으로 해당 문제를 한번 해결해보..
[WWDC2024] Create custom visual effects with SwiftUI
·
iOS/SwiftUI
🏁 학습할 내용Scroll effectColor treatmentsView transitionsText transitionsMetal shaders📜 Scroll effect 스크롤 시, 적용할 수 있는 다양한 effect를 살펴보자 🛞 ScrollTransition스크롤 시, 컨텐츠가 나타나고 사라질 때 적용할 전환 단계사이에 애니메이션을 적용 1️⃣ 파라미터 configurationScrollTransitionConfiguration 타입전환의 동작 종류를 정의, 스크롤 위치 변화에 대한 보간을 어떻게 애님에이션을 할 지.animated(_:): 불연속적 애니메이션.interactive(timeCurve: ...): 연속적 애니메이션.identity: 전환 애니메이션 사용 X axisAxis ..
PhotoPicker
·
iOS/SwiftUI
📷 PhotoPicker 🧩 역할SwiftUI에서 시스템 갤러리를 쉽게 띄울수 있게 제공되는 뷰 🧱 구조생성자에 쓰이는 파라미터를 살펴보자. selection:Binding 또는 Binding갤러리에서 선택한 결과를 바인딩하는 파라미터maxSelectionCountInt?한번에 고를 수 있는 최대 항목 수, nil = 무제한selectionBehaviorPhotosPickerSelectionBehavior선택 처리에 대한 행동Behavior순서 보존 여부연속선택 제약 여부설명.default❌❌시스템 기본. 순서 관계 없음, 자유롭게 선택/해제 가능.ordered✅❌사용자가 선택한 순서를 유지. “1, 2, 3…” 번호가 붙음.continuous❌✅연속된 구간만 선택 가능. 떨어진 항목끼리는 동시에..
[WWDC 2023] Wind your way through advanced animations in SwiftUI
·
iOS/SwiftUI
🏁 학습할 내용Animation phaseKeyframesTip and tricks ♻️ Animation phases 🧩 역할정해진 phase를 순환하며 애니메이션을 적용해주는 modifier 🤖 코드 및 결과 1️⃣ phaseAnimator(phase, content, animation)nonisolated public func phaseAnimator(_ phases: some Sequence, @ViewBuilder content: @escaping (PlaceholderContentView, Phase) -> some View, animation: @escaping (Phase) -> Animation? = { _ in .default }) -> some View where Phase..
[WWDC2023] Explore SwiftUI animation
·
iOS/SwiftUI
👋 들어가기 전요즘 애니메이션과 트랜지션에 관심 많이 생겨.. 늦었지만 WWDC를 통해기초를 차근차근 다져나갈려고한다. 오늘은 WWDC23의 영상으로 SwiftUI의 애니메이션 탐험 파트를 살펴보자.🏁 학습할 내용뷰 업데이트 해부하기AnimatableAnimationTransaction🧑‍⚕️ 뷰 업데이트 해부하기 🤖 예시 코드 (시작, 애니메이션 X)struct ContentView: View { @State private var selected: Bool = false var body: some View { Image(systemName: "pencil") .resizable() .frame(width: 100, height..