Home

MapKit (8)

LoadingView 만들기 이전에는 ProgresHUD Library를 통해서 로딩하는 것을 표현했는데, 여기서는 별도의 View를 만들어서 관리한다. struct LoadingView: View { var body: some View { ZStack { Color(.systemBackground) .opacity(0.9) .ignoresSafeArea() ProgressView() .progressViewStyle(CircularProg...

Read more

MapKit (7)

Record 값 가져오기 이전글에서 Cloud에 등록을 했는데, 이젠 등록한 값을 가져오는 작업을 해보자. getProfile이라는 함수를 만들어 주었다. func getProfile() { CKContainer.default().fetchUserRecordID { recordID, error in guard let recordID = recordID, error == nil else { print(error!.localizedDescription) return } CKContainer.default(...

Read more

MapKit (6)

Profile Validation 프로필을 설정할때 유효성검사를 위해 함수를 만들어 준다. func isValidProfile() -> Bool { guard !firstName.isEmpty, !lastName.isEmpty, !companyName.isEmpty, !bio.isEmpty, avatar != PlaceholderImage.avatar, bio.count <= 100 else { return false } return true...

Read more

MapKit (5)

Profile 설정 화면 보강하기 첫번째 글에서 만들었던 프로필 설정 화면을 더 보완해보도록 한다. AvatarView 수정 struct AvatarView: View { var image: UIImage // new var size: CGFloat var body: some View { Image(uiImage: image) // modified .resizable() .scaledToFit() .frame(width: size, height: size) .clipSha...

Read more

MapKit (4)

이렇게 온보딩 페이지를 만들어 본다. LogoView 새로운 파일로 이전하기 기존에 LocationMapView에 있던 LogoView를 새로운 파일에 옮겨준다. struct LogoView: View { var frameWith: CGFloat var body: some View { Image("ddg-map-logo") .resizable() .scaledToFit() .frame(width: frameWith) } } 기존에는 frameWidth를 파라미터로 받지 않았는데 이제는 로고뷰...

Read more

Combine Weather (1)

Combine을 사용한 날씨 앱 만들기. SwiftUI & Combine을 사용하여 간단한 날씨앱을 만들어 보려고 한다. 지역을 저장하게 하여, 사용자가 저장한 지역의 날씨도 보여주면 좋을 것 같아서 이번엔 SwiftData를 프로젝트를 생성하면서 만들어본다. UIDesign gif Image를 Background로 사용하기 검색을해보니 좋은 영상이 있어 참고하여 만들어 본다. Youtube링크는 여기 물론 Medium에도 같은내용이 있으니 참고. 하지만 문제는 Gif 이미지의 자체 크기에 따라 View의 크기가 결정이 된다는 것. 이리저리 검색을하고 시도를 하였으나 gif이미지의 사이즈...

Read more

MapKit (3)

Alert 만들기 struct AlertItem: Identifiable { let id = UUID() let title: Text let message: Text let dismissButton: Alert.Button } struct AlertContext { // MARK: - MapView Errors static let unableToGetLocations = AlertItem(title: Text("Locations Error"), message: Text("Un...

Read more

MapKit (2)

Container?? Container는 3가지 Database를 가지고 있다. Public: 모든사람이 앱을 통해 DB를 볼 수 있다. Private: 사용자가 각자 자기자신의 데이터만 볼 수 있다. Shared: 사용자간 데이터를 공유 할 수 있다. CKRecord Docs CKReference Docs CKOperation Docs Cloudkit 사이트에서 값 설정하기 예전버전과는 사이트구성이 달라 기록해본다. 먼저 개발자 사이트로 가서 설정을 한다. 이떄 개발자 계정이 있어야함.. Record Fields, Record Type 만들기 Record Fields를 추가할땐 사진처럼 순서대...

Read more