[Swift] Foundation Models Framework
·
Apple/Swift
안녕하세요! 피피아노입니다 🎵 이번에 WWDC25를 생방송으로 봤었는데 이번 발표에서 가장 인상 깊었던 것 중 하나는 Foundation Models 프레임워크의 공개였습니다. 이 프레임워크는 iOS, iPadOS, macOS, visionOS에서 on-device LLM (Large Language Model)을 활용할 수 있게 해주는 새로운 API입니다. 지금까지는 서버 기반의 LLM 사용이 일반적이었지만, 애플은 이를 디바이스 내에서 실행함으로써 개인 정보 보호, 저지연, 오프라인 처리까지 모두 잡는 혁신적인 접근을 제시했습니다. 이제 개발자들은 서버 기반 LLM 없이도, Swift 코드 몇 줄만으로 on-device에서 대화형 AI 기능을 구현할 수 있게 되었습니다.Foundation Model..
[SwiftUI] CADisplayLink를 활용한 부드러운 ProgressView 애니메이션 구현 트러블슈팅
·
Apple/SwiftUI
안녕하세요! 피피아노입니다 🎵 서론애플리케이션에서 진행률을 시각적으로 표현할 때, SwiftUI에서는 기본으로 제공하는 기본 컴포넌트인 ProgressView를 사용해서 해당 UI를 구현하게 됩니다. 하지만 이러한 기본 애니메이션 방식으로는 시간 기반으로 자연스럽게 진행되는 부드러운 애니메이션을 구현하기 어렵습니다. 이번 포스팅에서는 SwiftUI의 애니메이션 한계로 겪었던 진행률 애니메이션이 끊겨 보이는 문제를 분석하고, UIkit의 CADisplayLink를 활용하여 해결한 경험에 대해서 정리를 해보려고 합니다. 문제 상황처음에 구현하고자 했던 기능은 진행률이 0%에서 100%까지 7초 동안 자연스럽게 증가하게 하는 것이었습니다. 기본적으로 SwiftUI에서는 다음과 같은 방식으로 애니메이션을 줄 ..
[SwiftUI] NavigationStack 사용 시 화면 전환 안 되는 문제와 title 깨짐 문제 트러블슈팅
·
Apple/SwiftUI
안녕하세요! 피피아노입니다 🎵 오늘은 SwiftUI로 앱을 만들던 중 겪은 NavigationStack 관련 트러블슈팅 경험을 작성해보려고 합니다. 아기 울음소리를 녹음하고 아기 상태를 분석해주는 기능을 만들면서, 화면전환이 제대로 되지 않거나 navigation title 위치가 깨지는 이상한 버그를 마주했습니다. 구현 구조 요약우선 제가 구현한 기능의 주요 흐름은 아래와 같습니다.VoiceRecordView – 분석 시작 화면CryAnalysisProcessingView – 울음소리를 녹음하고 분석 진행CryAnalysisResultView – 분석 결과 화면CryAnalysisResultListView – 분석 기록을 모아보는 리스트 화면SwiftUI의 NavigationStack을 활용해서 각..
[Swift] Core ML과 MFCC를 활용한 감정 추론
·
Apple/Swift
안녕하세요! 피피아노입니다 🎵 육아 기록 앱을 개발하며, 아기의 울음소리를 분석해 감정을 분류하는 기능을 구현하게 되었습니다. 부모 입장에서 '왜 우는지'를 빠르게 파악하는 것은 매우 중요한 일이었고, 이 문제를 앱이 기술적으로 도울 수 있다면 큰 의미가 있겠다는 생각이 들었습니다. 이번 글에서는 해당 기능을 구현하며 어떤 기술을 사용했고, 구현 중 어떤 문제를 마주했고, 어떻게 해결했는지를 자세히 정리해보려고 합니다. 그럼 바로 시작하겠습니다!기능 개요기능: 아기의 울음소리를 분석하여 감정(예: 배고픔, 졸림 등)을 자동으로 분류사용 기술: Swift, SwiftUI, AVFoundation, Accelerate, Core ML모델: DeepInfant V2 CoreML 모델 사용입력: 마이크로 ..
[iOS/CoreML] Core ML로 구현하는 온디바이스 AI
·
Apple/iOS
안녕하세요! 피피아노입니다 🎵 WWDC 24 세션 중 "Deploying Machine Learning Models on Device with Core ML" 세션에서 머신 러닝 모델을 실제 iOS 앱에 통합하고, 성능 최적화를 이루는 방법에 대해서 소개를 하고 있습니다. 이번 포스팅에서는 해당 세션의 주요 내용을 정리를 해보려고 합니다. 그럼 바로 시작하겠습니다!온디바이스 ML의 의미와 중요성Apple의 모든 플랫폼(iOS, iPadOS, watchOS, macOS, visionOS)은 수많은 온디바이스 AI 기능으로 구동되고 있습니다. 대표적으로는 아래와 같은 예시가 있습니다.Vision Pro의 손 제스처 인식iPhone의 인물 사진 모드Apple Watch의 심전도 분석Siri의 자연어 이해 개..
[Swift] Tuist 살펴보기
·
Apple/Swift
안녕하세요! 피피아노입니다 🎵 Swift 기반의 프로젝트가 복잡해지고 규모가 커짐에 따라 프로젝트의 구조와 관리 방법도 복잡해지고 있습니다. 이러한 문제를 해결하고 효율적으로 프로젝트를 구성할 수 있는 강력한 도구가 바로 Tuist입니다. 이번 포스팅에서는 Tuist가 무엇인지, 어떤 장점을 가지고 있는지, 그리고 실제로 어떻게 사용하는지 정리를 해보려고 합니다. 그럼 바로 시작하겠습니다! Tuist란 무엇일까?Tuist는 Swift로 작성된 프로젝트 생성 및 관리를 위한 오픈소스 도구입니다. 프로젝트 설정 및 구조를 정의하는 코드를 통해 반복적인 작업을 자동화하고, 팀원들 간의 일관성을 유지하도록 돕습니다. Xcode 프로젝트 파일(.xcodeproj)을 자동 생성하고 관리함으로써 프로젝트 설정의 수..