본문 바로가기

전체글

(19)
UserNotifications 개요UserNotifications는 사용자에게 알림을 전달하는 기능을 제공하는 프레임워크다 Local Notifications는 앱 내부에서 생성되고, 특정 시간이나 이벤트에 따라 사용자에게 알림을 보낸다Remote Notifications는 서버에서 APNs(Apple Push Notification service)을 통해 푸시 알림을 보낸다 후자에 대해서는 추후 애플 개발자 등록을 하게 되면 정리를 추가하겠다 해당 글의 예시에선 NotificationManager라는 클래스를 정의하여 수행하는데, 내부적으로 UNUserNotificationCenter을 이용한다관련된 핵심 요소들을 나열하면 다음과 같다 UserNotificationsUNUserNotificationCenter - UNUserNoti..
EventKit 개요이 글에서는 EventKit에 대해 정리한다 EventKit으로 캘린더 권한 허가 상태 및 요청을 수행하고, 캘린더와 캘린더이벤트 그리고 미리 보기와 관련된 데이터를 관리할 수 있다이 모든 것은 EKEventStore를 통해 할 수 있고, 이때 사용되는 타입으로는 EKCalendar와 EKEvent가 있다 해당 정리글에서 만든 예시 프로젝트에서는 캘린더의 이벤트 처리에 대해서만 수행한다간략하게 핵심 요소들만 나타내면 다음과 같다 EKEventStore.authorizationStatus.requestFullAceessToEvents.calendars → [EKCalendar].events(NSPredicate) → [EKEvent].predicateForEvents → NSPredicate.save...
MapKit 개요이 글은 MapKit에 대한 정리 글이다다음과 같은 개념들에 대해 정리한다 CoreLocationMap ViewMark, Annotation, UserAnnotationMapCameraPositionMKMapItem.onMapCameraChangeLocalSearch와 LookAroundPreviewMKLocalSearch LookAroundPreview CoreLocationMapKit에 대해 알아보기에 앞서 우선 CoreLocation에 대해 정리한다CoreLocation은 iOS 앱에서 위치 관련 기능을 구현하는 데 사용되는 Apple의 프레임워크다 CLLocationManager - CoreLocation의 핵심 클래스로, 위치 서비스를 관리한다(권한 요청)CLLocationCoordinate..
@Namespace와 .matchedGeometryEffect 개요최근 SwiftUI의 Animation 관련하여 공부를 하다가, @Namespace와 .matchedGeometryEffect(id:in:)에 대해 알게 되었다이들은 SwiftUI에서 애니메이션 효과를 만들 때 사용되는 강력한 도구로, 서로 다른 뷰 사이에서 부드러운 전환 애니메이션을 만들 수 있다 뭔가 유용한 것 같은데 어떻게 활용될지는 잘 몰라서 그 당시 그냥 간단한 예시로만 정리했었는데,최근에 유튜브를 보다가 관련 영상이 떠서 보다가 글로 다시 정리하게 되었다 @NamespaceSwiftUI에서 고유한 네임스페이스를 생성하는 프로퍼티 래퍼다주로 .matchedGeometryEffect(id:in:)와 함께 사용되어 애니메이션의 컨텍스트를 제공한다리팩터링해서 뷰에서 따로 인자로 사용하려면 Name..
AVFoundation 개요이 글에서는 AVFoundation의 주요 구성 요소들을 살펴보고, 그들 간의 관계를 정리한다그리고 AVKit은 AVFoundation을 기반으로 좀 더 고수준의 기능을 제공해 주는데, 이에 관한 내용도 마지막에 정리한다 AVFoundationAVFoundation은 미디어 처리, 제어, 가져오기 등의 핵심 기능 제공한다주요 클래스들은 다음과 같다 AVPlayerAVAssetAVPlayerItemAVAudioSessionAVRecorderAVCaptureDevice AVPlayer와 AVPlayerItem, AVAssets세 클래스의 관계는 아래 그림과 같다   AVAsset는 미디어 데이터를 나타내는 객체로, 비디오나 오디오 파일과 같은 미디어의 메타데이터와 트랙 정보를 포함한다AVAsset은 실제..
App Intents 개요향후 Apple Intelligence로 인해 Siri와 App Intent에 대해 공부해 둬야겠다는 생각을 하고 있었는데이번기회에 App Intent에 대해 정리한 글을 작성한다이 글은 다음 영상(WWDC24)에서 발표한 내용을 정리한 글이다  App Intents 다음 이미지처럼 App Intents는 앱의 기능을 외부에서 사용하는데 공통적인 인터페이스라고 볼 수 있다App Intents는 주로 두 가지 방식으로 사용된다 Actions 정의: 앱의 기능을 시스템에 알려주는 역할, 이를 통해 Siri나 Spotlight가 앱의 기능을 인식하고 사용자에게 제공할 수 있다데이터 제공: 앱이 가진 데이터를 외부에 제공하는 역할, 이를 통해 앱 외부에서도 앱의 데이터를 활용할 수 있다 핵심 구성요소 Int..
상반기 후기와 후반기 계획 개요2024년이 되고, iOS 개발자로 취업을 목표로 공부하면서 배웠던 것들에 대해 정리하고하반기에는 어떤 목표를 가지고 무엇을 공부할지 정리하는 글이다 상반기에 배운 것들 요약물론 모든 내용을 깊게 이해하고 기억하고 있다면 좋겠지만, 나는 무엇을 모르는지 알 수 있는 것을 목표로 공부했다 자바 스프링을 공부할 때, 스프링과 관련된 기반지식(기본 원리 등)과 구성 요소들을 중점적으로 공부해 두고실제 코드는 코파일럿의 도움을 많이 받아가며 작성했었는데, 개인적으로 이때 엄청나게 효율적으로 빠르게 배울 수 있었다고 생각한다 iOS 개발 공부를 할 때도 기본이 되는 것들을 중점적으로 우선 공부하려고 했다(WWDC24에 발표에 따르면 올해 안으로 코파일럿 같은 기능이 XCode에서도 공식적으로 지원한다고 한다)..
Unit Test 개요이 글에서는 테스트 종류와 사용되는 객체에 대해 정리하고,기존 테스트 방식인 XCTest와 WWDC24에 발표한 Swift Testing으로 유닛테스트를 수행하는 방법에 대해 정리한다그리고 그 둘을 비교하며 글을 마무리한다 테스트 종류와 대체 객체여러 테스트들과 이때 사용되는 대체 객체들을 정리하면 다음과 같다TestingUnit Testing - 각 소프트웨어 컴포넌트의 동작을 테스트UI Testing - UI가 예상대로 동작하는지 테스트(https://developer.apple.com/documentation/xctest/user_interface_tests)Compatibility Testing - 다른 기기에서 사용같은 다양한 상황에서 올바르게 동작하는지 테스트Regression Testin..