Dev-iOS/iOS 13

[SwiftUI] MapKit - 기본

MapKit 설명SwiftUI는 iOS, macOS, watchOS 및 tvOS에서 사용자 인터페이스를 구축하는 데 사용되는 Map 프레임워크입니다. iOS 기준으로 iOS 14버전 이상부터 사용할 수 있습니다.SwiftUI에서 제공하는 Map 뷰를 사용하면 지도를 표시하고, 마커와 같은 추가 요소를 사용하여 위치 정보를 시각화할 수 있습니다. SwiftUI Map 예시 코드import SwiftUIimport MapKitstruct ContentView: View { @State private var region = MKCoordinateRegion( center: CLLocationCoordinate2D(latitude: 37.7749, longitude: -122.4194), ..

Dev-iOS/iOS 2024.09.09

errorHandler: NO with WCErrorCodeDeliveryFailed 발생 시

Watch - iPhone간에서 데이터를 전송하는데, WCSeesion이 활성화되어 있고, Reachable 상태인데도 아래와 같은 이벤트 로그가 발생하면서 데이터 송, 수신이 되지 않을때가 있다. WCSession _onqueue_notifyOfMessageError:messageID:withErrorHandler:] 0B2139AA-E8FA-4F2D-A368-20D058F45978 errorHandler: NO with WCErrorCodeDeliveryFailed 이런 경우에는 데이터를 전송하는 측에서 WCSession.default.sendMessage(message, replyHandler: nil) { error in print("Error sending message: \(error.l..

Dev-iOS/iOS 2024.09.05

Apple Watch - iPhone 간 데이터 전송 시

1.  Apple Watch -> iPhone으로 데이터 전송 시1-1. Apple Watch 구현WCSession은 init 함수에서 할 필요는 없으나, WCSessionDelegate 함수들은 구현해줘야 한다.임의의 sendMessageToiPhone 함수를 통해서 WCSession을 통해 활성화되고 Reachable이 된다면 데이터를 전송한다.전송하는 데이터 형태는 Dictionary형태로 전송 가능하다.import WatchConnectivityclass WatchSessionManager: NSObject, WCSessionDelegate { override init() { super.init() if WCSession.isSupported() { ..

Dev-iOS/iOS 2024.09.05

iOS 버전별 점유율 - 2024년 8월 기준

iOS 및 iPadOS 버전별 점유율 (2024년 8월 기준)2024년 2월 기준 점유율에 비해서 iOS 17 및 iPad 17 점유율이 다소 증가된 것을 확인할 수 있다.https://lafortune.tistory.com/39 iOS 버전별 점유율 - 2024년 2월 기준iOS 및 iPadOS 버전별 점유율 (2024년 2월 기준) 1. iPhone 점유율1) 4년간 출시된 단말들 버전 점유율iOS 1776%iOS 1618%iOS 15 및 이전 버전6% 2) 모든 단말들 버전 점유율iOS 1766%iOS 1623%iOS 15 및 이전 버전11%2. iPlafortune.tistory.com  1. iPhone 점유율1) 4년간 출시된 단말들 버전 점유율iOS 1786%iOS 1611%iOS 15 및 ..

Dev-iOS/iOS 2024.08.23

Localizable.xcstrings 사용 팁 (Localizable.string에서 전환 시)

XCode 15.2 부터 사용 가능한 Localizable.xcstrings를 기존 Localizable.strings에서 전환했을 때 경험했던 내용들을 작성해 보았다.  Localizable.xcstrings를 처음 만들고 빌드 시코드에서 'LocalizedStringKey'를 사용하는 모든 텍스트들(ex. Text("test"))은 자동으로 Localizable.xcstrings에 key로 추가된다.자동으로 추가된 key는 삭제할 수 없다.source code로 변환 후 삭제해도 빌드하면 자동으로 생성된다.자동으로 추가된 key를 기존 tw처럼 사용하고 싶으면 코드에서 사용하는 'LocalizedStringKey'를 기존 Localizable.strings에서 사용하던 key로 변환하고, 빌드를 한다..

Dev-iOS/iOS 2024.05.23

[iOS] CloudKit 학습 - CloudKit은 언제 사용할까?

CloudKit은 개발자들이 애플의 iCloud 서비스를 이용하여 앱의 데이터를 저장하고 동기화하는 기능을 제공하는 프레임워크입니다. 그렇다면 CloudKit을 언제 사용할까요? 여러가지 경우들이 있겠지만, 보통 아래와 같은 상황에서 사용하지 않을까 싶습니다. :D 1. 여러 기기 간 데이터 동기화 앱의 데이터가 사용자의 여러 기기 간에 동기화되어야 하는 경우 CloudKit을 사용할 수 있습니다. 예를 들어, 할 일 목록 앱에서 사용자가 여러 기기에서 동일한 할 일 목록을 보고 수정할 수 있어야 하는 경우입니다. 앱에서 CloudKit을 사용하기 위해 먼저 설정해야 할 것은 컨테이너와 데이터베이스입니다. 앱에 맞게 개인 데이터베이스와 공용 데이터베이스의 접근 권한을 설정해야 합니다. 그 다음으로, 앱에..

Dev-iOS/iOS 2023.07.20

[iOS] CloudKit 학습 - CloudKit 이해

본 문서는 학습을 위해 작성한 내용이며, 추가 내용 보강이나 수정이 이루어질 수 있습니다. CloudKit은 Apple이 개발한 클라우드 서비스 프레임워크로, 애플의 iCloud 서비스를 이용하여 앱의 데이터를 저장하고 동기화할 수 있도록 도와줍니다. CloudKit은 iOS, macOS, tvOS, watchOS에서 사용할 수 있습니다. 개발자들은 CloudKit을 사용하여 앱의 데이터를 안전하게 저장하고 관리할 수 있으며, 여러 기기 간의 데이터 동기화 및 사용자 간의 데이터 공유를 쉽게 구현할 수 있습니다. CloudKit의 주요 기능과 컴포넌트들은 아래와 같습니다. 컨테이너 (Container) 데이터베이스 (Database) 존 (Zone) 쿼리 (Query) 원격알림 (Push Notifica..

Dev-iOS/iOS 2023.07.19

[iOS 빌드] LLVM 컴파일러 (2)

LLVM 컴파일러 (1) 에 이어서... https://steady-dev.tistory.com/204 [iOS 빌드] LLVM 컴파일러 (1) LLVM 컴파일러이란? LLVM은 Low-Level Virtual Machine의 약자로, 컴파일러 및 코드 최적화 및 분석 도구의 집합체입니다. iOS 앱 개발에서 LLVM 컴파일러는 Objective-C 또는 Swift 코드를 iOS 디바이스에서 실행 steady-dev.tistory.com 이전 포스팅에서 LLVM 컴파일러는 Swift 코드와 Objective-C 코드를 기계어 코드로 변환한다고 했습니다. 하지만 더 자세하게 들어가면 LLVM 컴파일러를 통해 기계어 코드로 변환하기 전에 LLVM IR 코드로 변환된 후 기계어 코드로 변환됩니다. LLVM I..

Dev-iOS/iOS 2023.07.17

[iOS 빌드] LLVM 컴파일러 (1)

LLVM 컴파일러이란? LLVM은 Low-Level Virtual Machine의 약자로, 컴파일러 및 코드 최적화 및 분석 도구의 집합체입니다. iOS 앱 개발에서 LLVM 컴파일러는 Objective-C 또는 Swift 코드를 iOS 디바이스에서 실행 가능한 바이너리 코드로 변환합니다. LLVM 컴파일러는 Clang C/C++ 컴파일러의 일부로 사용됩니다. Clang은 Xcode에서 사용되는 기본 컴파일러입니다. LLVM은 Clang의 백엔드로 작동하여, Clang이 생성하는 중간 코드를 가져와 최적화하고 최종 바이너리 코드를 생성합니다. LLVM 컴파일러는 코드 최적화를 수행하며, 이로 인해 iOS 앱이 더 빠르게 실행될 수 있습니다. 또한 LLVM은 Just-In-Time(JIT) 컴파일러로도 사..

Dev-iOS/iOS 2023.07.17