전체 글 58

SwiftUI_ @Environment

@Environment:뷰의 환경 설정을 관리하고 공유하는 데 사용되는 속성 래퍼 폰트, 색상 스킴, 다크 모드 설정 등 시스템 제공 값을 쉽게 접근할 수 있게 합니다. 예를 들어, 현재의 컬러 스킴을 확인하기 위해 @Environment(\.colorScheme)를 사용할 수 있습니다. 상위 뷰에서 하위 뷰로 전달해야 하는 값들이 많아질 때, @Environment를 사용하면 직접적인 프로퍼티 전달 없이 간편하게 값을 접근할 수 있습니다. 즉, 현재 환경 설정을 다른 환경에서도 적용하고 싶을 때 사용된다. (상위뷰에서 하위뷰로 전달할 수 있다.) struct MyOtherScreen: View { @Environment(\.presentationMode) var presentationMod..

개인공부 2024.07.23

SwiftUI _ ViewModel (@Published, @ObservedObject, @StateObject)

ViewModel을 사용하는 이유 : 간단한 앱은 몰라도 복잡한 앱에서 데이터베이스와 관련해서 무언가를 변경하고 싶을 때   데이터의 어떤 부분이 뷰의 어떤 부분인지 파악하고, 뷰를 살피는 시간을 절약할 수 있음   -> 바로 ViewModel에서 데이터와 관련된 비즈니스 로직을 확인 및 변경 가능 @Published: 클래스 내에 있다는 점을 제외하면 @State와 동일 (클래스 자체에 ViewModel을 알림) @ObservedObject: ViewModel에 @Published로 클래스에 변화를 알리는 것처럼 뷰에도 뷰모델로 인한 변화를 알려야 하는 데 그때 사용* @ObservedObject를 사용하기 위해서는 ViewModel에 ObservableObject로  관찰 가능한 클래스라는 것을 표시..

TIL 2024.07.22

WanderBoard _ 최종프로젝트 회고

WanderBoard _ 여행 기록 어플 초기 기획맨 처음 아이디어를 냈을 때는 여행을 계획하고 기록하는 어플을 제작하고자 했다당시 생각했던 주요 기능은 맵으로 경로를 표시할 수 있고, 캘린더로 여행일정과 여행 계획을 기록하여 여행 카운트 다운,, 꼭 하고 싶었다...여행에 맞는 시원한 색감으로 생각했음! 그러나 6주라는 시간 안에 이렇게 많은 기능을 구현하기는 어려울 것이라고 생각해서 우선 기록에 중점을 두고, 시작하기로 하고, 계획 부분은 나중에 시간이 남으면 추가하기로 하고, 우선은 여행 기록 어플로 결정했다! 초기 화면 흐름도와 와이어프레임!  최종 기획 여행 사진과 사진 촬영 장소를 지도에 보여주고, 글로도 기록하고, 지출까지 함께 기록할 수 있는! 다른 사람들의 여행을 구경하며, 다음엔 어디로..

개인공부 2024.07.12

UIHostingController _ 페이지 컨트롤러 호스팅

SwiftUI랑 UIKit 을 동시에 사용해서 호스팅하는 것을 공부했다.이번 프로젝트를 하면서 애니메이션이나 디자인 적으로 UIKit으로는 구현하기 어려운 부분을 SwiftUI로 구현했는데너무 큰 매력을 느껴서 앞으로 공부해보려고 한다 ! (TMI...) UIHostingController: SwiftUI 뷰 계층을 관리하는 UIKit 뷰 컨트롤러https://developer.apple.com/documentation/swiftui/uihostingcontroller UIHostingController | Apple Developer DocumentationA UIKit view controller that manages a SwiftUI view hierarchy.developer.apple.com ..

개인공부 2024.07.06

이미지 캐싱 _ Kingfisher

Kingfisher의 장점:비동기 이미지 로드: URL에서 이미지를 비동기적으로 로드캐싱: 이미지를 메모리와 디스크에 캐시하여 성능을 향상간편한 사용: setImage(with:) 메서드 하나로 간편하게 이미지를 로드하고 캐시다양한 기능: 이미지 변환, 애니메이션, 플레이스홀더, 에러 처리 등의 다양한 기능을 제공최종프로젝트 어플이 특성상 이미지를 불러올 일이 많아서 Kingfisher 라이브러리를 사용하여 이미지를 로드하고 캐싱// 대표 이미지if let imageUrl = recentLog.representativeMediaURL, let url = URL(string: imageUrl) { backImg.kf.setImage(with: url)} else { backImg.backgrou..

개인공부 2024.07.06

CAGradientLayer _ 화면에 그라데이션 넣기

프로젝트 정리 https://babbab2.tistory.com/55 iOS) CAGradientLayer - UIView에 그라데이션 넣기안녕하세요 소들입니다 :) 오~늘~은~~~ CALayer쪽을 공부하고 있는 기념? CAGradientLayer를 이용해 UIView에 그라데이션을 넣어볼 거예요! 완성본은 뭐 요런 느낌인데 ㅎㅎ... 색상 라임 같지 않나여!? 🍋babbab2.tistory.com 이거 보면서 만들었었는데 잘 정리되어 있음.. ㅎlet colors: [CGColor] = [ UIColor.white.cgColor, UIColor.clear.cgColor, UIColor.clear.cgColor, UIColor.clear.cgColor, UIColor.cle..

개인공부 2024.07.06