onScrollGeometryChange
·
iOS/SwiftUI
👋 들어가기 전 사이드에서, pullToRefresh와 Pagination Loading을 위해, 조금 old한 방법으로 구현을 했느네, iOS18.0 이상부터 사용가능한 좋은 API가 있어서 그걸로 대체해보려가한다..우리 프로젝트는 18.0이상이니깐..😂 기존 코드와 문제점 1️⃣ GeometryReader + PreferenceKey +coordinateSpace부가적인 코드가 너무 많음코드 흐름 파악이 힘듬 2️⃣ 타이밍을 운에 걸어야함ScrollView 높이를 얻기 위해 GeometryReader 내부의 proxy.size.height을 onChange에서 계속 받음 기능상 큰 문제는 없지만, 편법을 하기위한 트레이드 오프 생각보다 작지는 않아보인다.오늘의 주인공으로 해당 문제를 한번 해결해보..
빌드 시스템 (1)
·
iOS/Setting
🏁 학습할 내용미리보기빌드 프로세스작업 tool순서 결정동작 과정증분 빌드우리가 신경써야할 것은 무엇인가?사용자 스크립트👀 미리보기 자세히 들여다보기전에, 먼저 간단하게 알고가면 좋은 배경지식을 정리해보자. 🐝 빌드 프로세스 소스코드 컴파일 및 링크 (.m, .swift, exec .)리소스 복사 (헤더, asset카탈로그, 스토리보드)코드 사이닝 및 스크립트 실행 🔨 작업 tool1️⃣ Clang소스 코드 컴파일러 2️⃣ LD여러 .o 파일과 라이브러리를 하나의 실행파일 또는 프레임워크로 결합심볼 해석주소 재배치정적/동적 라이브러리 연결Mach-O 바이너리 생성입력: .o, .a, .dylib출력: 실행 파일, .app, .framework, .dylib 3️⃣ AC Tool (Asset Ca..
나만의 세팅 섹션 만들기
·
iOS/Setting
👋 들어가기 전 우연히 신기한 개념을 회사에서 경험해서, 혼자 한번 학습해보려고한다. 좋은 가이드라인을 역시 갓제드님께서 만들어놔서, 그걸 기반으로 조금 더 깊게 살펴보려고한다.🏁 학습할 내용Setting Bundle정의목적구조컨트롤 Type앱에서 값 읽어오는 법⚙️ settingBundle ⭐️ 정의iOS앱에서 앱 외부에서 사용자 설정을 구성하는데 사용되는 파일 묶음 🧩 목적앱 내에서 별도의 설정 UI를 만들 리소스가 없어 빠르게 설정 환경을 구축할 때특정 설정이 시스템 설정에 있는게 자연스러운걸 원할 때 🧱구조 Root.plist반드시 Root.plist라는 파일이 존재해야함기본 설정에 대한 내용이 포함됨Additional.plistRoot 하위에 계층적인 환경 설정을 구축할 때 사용됨이름은..
[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..