MapKit (3)
Alert 만들기 struct AlertItem: Identifiable { let id = UUID() let title: Text let message: Text let dismissButton: Alert.Button } struct AlertContext { // MARK: - MapView Er...
Alert 만들기 struct AlertItem: Identifiable { let id = UUID() let title: Text let message: Text let dismissButton: Alert.Button } struct AlertContext { // MARK: - MapView Er...
Container?? Container는 3가지 Database를 가지고 있다. Public: 모든사람이 앱을 통해 DB를 볼 수 있다. Private: 사용자가 각자 자기자신의 데이터만 볼 수 있다. Shared: 사용자간 데이터를 공유 할 수 있다. CKRecord Docs CKReference Docs CKOperation Docs C...
이번엔 MapKit, CloudKit을 활용한 지도앱을 만들어본다. 기본적인건 최대한 생략을 해보는걸로… 프로젝트에 클라우드 기능 추가하기 프로젝트를 생성하고 iCloud를 추가해준다. 그리고 클라우드킷을 체크해주면 Container를 추가하는 창이 뜨는데 + 버튼을 눌러 추가해주자. App group 컨테이너 추가하듯 Ident...
Http Client 이 코드를 가지고 UIKit, SwiftUI에 적용을 한다. import Combine enum NetworkError: Error { case badUrl } class HTTPClient { func fetchMovies(search: String) -> AnyPublisher<[Mov...
CustomSubject Subject하면 우리는 PassthroughSubject와 CurrentValueSubject 이렇게 2개를 알고 있는데, Subject를 Customizing 할 수 있다. 짝수에 관한 CustomSubject를 만들어본다. class CustomSubject<Failure: Error>: Subject...
Combine을 UIKit에서만 사용해봤었는데, SwiftUI에서도 적용을 해보려한다. 그전에 Combine 사용한지 오래 되었기에, Udemy 강의를 가볍게 정리를 하면서 Remind를 하려고한다. 이전에 서술한 내용이 있는 부분은 패스를 할 예정. 이전글은 여기에. Reactive Programming? Reactive Programmin...
iOS 18 적용 Swift6 Concurrency 지금 Xcode에서 사용하는 Swift Version은 5이지만, Swift6가 최근 발표가 되었기에 사용을 해본다. Swift 버전설정은 위의 사진을 참고! 문제 버전을 바꾸자 에러가 발생 해당 코드만 보면 // Background thread async let steps = h...
Code Comments DocC를 활용하여 우리가 만든 프로젝트에 우리가 Docs를 만드는 과정을 진행한다. Cmd + Option + / 를 사용하면 이렇게 함수에 대해 설명을 할 수 있는 주석이 생성이 된다. 사용 예시: 리턴함수 아래와 같이 fetchStepCount 함수에 대해 작성을 해보았다. 이때 Description을 작성...
Accessibility(손쉬운사용) 사용하기 VoiceOver Tutorial Accessibility & Inclusion Design an effective chart New iOS18 feature VoiceOver rotor 참고 링크를 한번 확인해보자/ ChartContainer var titleView: some Vi...
Optimizing 1. sheet to fullScreenCover 이부분은 예전글에 여러 수강생의 의견이라는 섹션으로 작성을 했던 부분이다. 그래서 크게 언급은 하지 않는걸로 하겠다. fullScreenCover를 사용한다면 primingView에서 .interactiveDismissDisabled() 이부분은 지워주자. 2. DataLi...