본문 바로가기

분류 전체보기178

[iOS/Swift] 싱글톤 객체 생성 Singleton 클래스 정의 class Singleton { static var sharedObject: Singleton = Singleton() } 사용방법 Singleton.shared.getUUID() getUUID라는 함수를 정의했을 경우 위와 같이 사용함 2023. 2. 4.
[iOS/Swift] UIPresentationController custom modal transition style의 경우 animator 객체 외에 해당 객체를 사용할 수 있음 view controller가 presenting 되기 전에 UIPresentationController의 시스템이 presentation controller을 생성하며 view controller가 dismiss 되기 전까지 참ㅈ도를 유지하게 됨 presentation controller는 animator object의 수명 주기를 넘어서도 존재할 수 있기 때문에 presentation controller를 사용함 만약 커스텀 트랜지션 중에 화면에 나타나는 view controller의 뒷 부분에 그림자가 나타나야 한다면 presentation controlelr는 shadow뷰를 생성하.. 2023. 1. 29.
[iOS/Swift] UIViewControllerTransitioningDelegate view controller 사이에서 interactive transition 위한 메소드의 모음 modalPresentationStyle 속성을 .custom으로 지정하고 transitioningDelegate 프로퍼티를 지정해야 함 presnet, dismiss에 사용될 animator 객체를 각각 지정할 수 있음(push, pop 도 동일하게 각각 지정할 수 있음) transition에 사용되는 animator 객체는 UIViewControllerAnimatedTransitioning protocol을 따라야 함 애니메이션의 타이밍을 컨트롤 하기 위해 사용자의 터치 이벤트 값을 받거나 다른 사용자 인터렉션을 이용하고 싶은 경우 UIViewControllerInteractiveTransitionin.. 2023. 1. 29.
[iOS/Swift] UIViewControllerAnimatedTransitioning 정리 custom view controller transition 을 위한 프로토콜 뷰 컨트롤러의 화면 전환을 위한 애니메이션을 만드는 animator 객체를 정의할 수 있음 인터렉티브 트랜지션을 사용하기 위해서는 animator 객체를 타이밍을 제어할 수 있는 다른 객체와 결합해야 함 이 프로토콜을 사용하기 위해서 transitionDuration(using:), animateTransition(using:) 을 구현해야 함 UIViewControllerTransitioningDelegate 프로토콜을 따르는 객체에서 animator 객체를 생성함 뷰 컨틀롤러 화면 전환 시 presnet 할 경우 UIModalPresentationStyle.custom으로 지정해 줌 animator객체는 UIViewCont.. 2023. 1. 29.
[Pod/iOS] Pod 라이브러리 생성하고 관리하기 터미널에서 pod lib create [pod name] https://guides.cocoapods.org/making/using-pod-lib-create 위 명령어를 입력하면 플랫폼을 선택할 수 있는 문구가 나옴 지금은 로컬에서 작업하고 있기 때문에 이전에 작업한 같은 이름의 라이브러리가 있지 않은한, 충돌이 발생하지 않는다 What platform do you want to use?? [ iOS / macOS ] > iOS 이때 iOS 선택 (맥용 라이브러리를 생성한다면 macOS를 선택하면 됨) What language do you want to use?? [ Swift / ObjC ] > Swift 팟 라이브러리에서 사용할 언어 선택 Would you like to include a demo .. 2023. 1. 29.
[iOS Swift] Deeplink 사용하기 1. URL scheme 지정하기 2. 딥링크 지정하기 1. URL scheme 지정하기 URL Scheme은 url이 시작되기 전 url 앞에 붙는 프리픽스 스트링 (예를 들어 https:// 가 있음) 앱이 설치되지 않은 경우 사용할 수 없음 url이지만 사파리에서 동작하는 것이 아니라 내 앱에 지정된 동작을 수행하는데 사용함 (1) 앱에서 URL Scheme 등록하기 Info.plist 파일에 URL scheme 등록 Info.plist > URL Types 섹션 Identifier와 사용자 정의 스킴을 입력해 줌 Identifier는 번들 id와 동일 (2) Schene delegate 메소드 정의하기 앱에 딥링크 처리 요청하기 코드레벨에서 해당 코드 동작 시키면 됨 혹은 사파리의 주소창에서 지정.. 2022. 12. 29.
[SwiftUI] Sticky Header 스크롤시 고정 시키기 보호되어 있는 글 입니다. 2022. 12. 17.
[SwiftUI] Model, ViewModel 생성 Model 생성 - 모델은 Identifiable 프로토콜을 따르게 함 - Identifiable을 따르는 모델은 id를 작성해 주어야 하며 이 값은 고유 값이 되어야 함 struct Task: Identifiable { var id = UUID().uuidString var title: String } ViewModel 생성 - viewModel은 ObservableObject를 채택해줌 - Model의 데이터가 변경된 것을 SwiftUI에 표시하려면 ObservableObject 프로토콜을 모델 클래스에 채택함 class TaskViewModel: ObservableObject { @Published var storedTasks: [Task] = [] } 2022. 12. 17.
[SwiftUI] Service Layer to ViewModel with Combine 참고 및 출처 사이트 https://www.youtube.com/watch?v=TlJUMVKtUhc&list=PLwvDm4Vfkdphbc3bgy_LpLRQ9DDfFGcFu&index=7 Service layer의 역활 - 데이터 베이스를 다루는 모든 로직을 포함한 네트워크 레이어 - 데이터를 디코딩 하고 뷰 모델로 전달하는 역활을 함 Services 생성 - New file > Swift 파일 선택 후 PrefixDataService.swift 파일 생성 Published 변수 선언 @Published var allCoins: [CoinModel] = [] - @Published 프로퍼티 랩퍼를 사용해서 퍼블리셔를 생성함 - subscriber가 퍼블리셔로 선언된 변수를 구독할 수 있음 Cancellab.. 2022. 11. 21.
[SwiftUI] NavigationView에서 네비게이션 바 숨기기 이전에 사용하던 속성인 navigationBarHidden은 deprecate 될 예정 @available(watchOS, introduced: 6.0, deprecated: 100000.0, message: "Use toolbar(.hidden)") public func navigationBarHidden(_ hidden: Bool) -> some View toolbar(.hidden)을 사용 NavigationView { HomeView() .toolbar(.hidden) } HomeView에서 네비게이션 툴바를 안보이게 처리함 2022. 11. 17.
[SwiftUI] PreviewProvider 캔버스에서 다크 모드 같이 보기 struct ButtonView_Previews: PreviewProvider { static var previews: some View { Group { ButtonView(iconName: "info") .previewLayout(.sizeThatFits) ButtonView(iconName: "plus") .previewLayout(.sizeThatFits) .preferredColorScheme(.dark) } } } View를 생성하면 PreviewProvider가 함께 작성되어 있고 여기에 previews로 미리보기 View를 지정함 ButtonView를 생성한 경우 struct ButtonView_Previews: PreviewProvider { static var previews: some.. 2022. 11. 17.
[RxSwift] RxDataSources로 UITableView 셀 바인딩 하기 보호되어 있는 글 입니다. 2022. 10. 10.