분류 전체보기

· → MapKit
새로 업데이트 된 MapKit 을 활용하여 길찾기, 네비게이션을 구현해 볼 것이다. 아래와 같이 길찾기를 하면 길찾기 결과가 맵에 보이고, 네비게이션을 누르면 네비게이션 안내가 나오게 된다. 맵 구현 Map { } 으로 맵을 간단하게 구현할 수 있다. 시작점, 도착점을 CLLocationCoordinate2D 형식으로 넣어준다. MKRoute 형식의 route 라는 변수도 만들어 준다. import SwiftUI import MapKit struct ContentView: View { @State private var route: MKRoute? @State private var name = "" @State private var time = 0.0 @State private var distance = ..
개발을 하다보면 아래와 같이 스크롤의 상태, 스크롤된 정도를 추적하고 싶을 때가 있다. Swift 개발을 하다보면 NavigationTitle 의 경우가 이렇게 스크롤을 추적하여 상단 툴바에 Title 을 표시해준다. 다양한 인터렉션을 위해서 스크롤의 정도를 추적하고 싶다면... 세가지 방법을 소개하겠다 :) 1. PreferenceKey 와 View extension 활용 아래와 같은 코드를 작성해주면 된다. PreferenceKey 는 하위뷰에서 상위뷰로 값을 전달해주고 싶을 때 사용하게 된다. import SwiftUI struct ScrollOffsetPreferenceKey: PreferenceKey { static var defaultValue: CGPoint = .zero static fun..
· → StoreKit
이전 글 [StoreKit] 인앱결제 구현하기 1 - 기본 세팅 StoreKit 애플에서 인앱결제를 지원해주는 StoreKit 이 있다. 하지만 실제 서비스를 하는데에는 30% 라는 무시무시한 수수료를 감당해야 하기 때문에 비추하긴 하지만 간단한 결제를 쉽게 구현하기에 swift-library.tistory.com 간단하게 기본 세팅을 완료하였다. 이제 코드를 작성해볼 시간!! +_+ 1. StoreKitManager 파일 및 Class 추가 나는 StoreKitManager 라는 이름으로 파일을 만들었다. 이렇게 내가 만든 Product 를 타입으로 지정할 수 있다. import StoreKit class StoreKitManager: ObservableObject { @Published var pro..
· → StoreKit
StoreKit 애플에서 인앱결제를 지원해주는 StoreKit 이 있다. 하지만 실제 서비스를 하는데에는 30% 라는 무시무시한 수수료를 감당해야 하기 때문에 비추하긴 하지만 간단한 결제를 쉽게 구현하기에는 좋아보인다. 간단하게 인앱결제를 구현해 보기로 했다. 우선 iOS 16 버전 이상이 필요하고, StoreKit 2 를 사용하여 구현할 것이다. 1. 프로젝트 만들기 우선 나는 간단하게 프로젝트 IAPSample 이라는 앱을 만들었다. 2. 프로젝트에 In-App Purchase 추가하기 우선 인앱결제를 사용하기 위해서는 App Store Connect 와 연결된 아이디가 필요하다. 그리고 좌측 상단의 + Capability 를 눌러 In-App Purchase 를 추가해준다. 3. .StoreKit ..
· → CoreData
1. CoreDataManager 생성 이제 Persistence 까지 만들어 주었으니 CoreDataManager 를 만들어 줄 차례이다. 이름은 원하는대로... import CoreData @Observable final class CoreDataManager { let persistence: Persistence var mindLogs: [MindLog] = [] static let shared = CoreDataManager() static let preview = CoreDataManager(isPreview: true) private init(isPreview: Bool = false) { if isPreview { persistence = Persistence.preview } else { ..
· → CoreData
앱 안에 데이터를 저장하는 방법 애플 앱 안에 데이터를 저장하고 관리하는 방법에는 CoreData, Userdefaults, FileManager 그리고 이번에 추가된 SwiftData 가 있다. 그 이외에 Realm 이라는 오픈 소스도 있다. 이중에 이번엔 CoreData 를 사용해 볼 것이다. CoreData 란? Core Data | Apple Developer Documentation Persist or cache data on a single device, or sync data to multiple devices with CloudKit. developer.apple.com CoreData 는 CloudKit 과 연동이 가능하고 아주 손쉽게 데이터를 저장 가능한 애플의 Framework 이다...
Swift의 do, try, catch 구문은 에러 처리를 위한 구문이다. 보통 아래와 같은 형태를 많이 발견할 수 있다. do { // 예외가 발생할 수 있는 코드를 포함하는 블록 try // 예외가 발생할 수 있는 작업을 호출 } catch { // 예외가 발생했을 때 처리할 코드 } 코드 실습 아래와 같은 코드가 있다고 해보자. fetch 함수는 "Fetched" 를 반환하는 함수이다. 이 함수는 throws 를 통해 에러를 던지는 함수라는 것을 알 수 있다. isActive 를 받아서 false 면 에러를 던진다. enum fetchError: Error { case unknown case network } func fetch(_ isActive: Bool) throws -> String { if..
진수 변환스위프트 안에서 2진수를 10진수로 10진수를 2진수로... 그 외에도 다양한 진수를 쉽게 바꿀 수 있는 함수가 있다. 은연중에 나는 Int("123") 이런식으로 넣어주면 자동으로 Int 로 변환되어 나와서 별 생각 없이 사용하고 있었는데 이것은 사실 10진법으로 전환해주는 로직이였다. 10진수를 n진수로 바꾸기999999를 2진수, 16진수로 바꾸고 싶다면?let v = 999_999print(String(v, radix: 2))// Prints "11110100001000111111"print(String(v, radix: 16))// Prints "f423f"print(String(v, radix: 16, uppercase: true))// Prints "F423F" n진수를 10진수로 ..
Swift librarian
'분류 전체보기' 카테고리의 글 목록 (16 Page)