[Swift] Swift Testing 톺아보기
·
Apple/Swift
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 WWDC24에서 발표한 새로운 테스트 도구인 Swift Testing에 대해서 공부를 하고 정리를 해보려고 합니다. Swift Testing은 새로운 오픈 소스 패키지로, Swift 코드를 테스트할 수 있습니다. 테스트를 설명하고 구성하는 기능이 포함되어 있으며, 장애 발생 시 대처를 위한 세부 정보를 제공하고 대규모 코드베이스에 맞게 확장할 수 있습니다. 프로젝트에 Swift Testing 도입하기앱에 대한 테스트를 작성해 본 적이 없다면 먼저 프로젝트에 테스트 번들 대상을 추가해줘야 합니다. File > New > Target을 선택합니다. 그런 다음 Test 섹션에서 Unit Testing Bundle을 검색합니다.Swift Testing은 이제 X..
[Swift] suffix()로 인한 시간 초과 문제 해결하기
·
Apple/Swift
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 프로그래머스에 있는 문제 중 하나인 "햄버거 만들기" 문제를 해결하는 과정에서 발생한 시간 초과 문제와 이를 해결한 방법에 대해서 작성하려고 합니다. 문제 링크는 아래에 남겨둘테니 참고하실 분들은 링크 참고 부탁드립니다.햄버거 만들기 문제 문제 정의햄버거 가게에서 재료가 순서대로 쌓일 때, 특정 패턴의 햄버거가 완성되면 이를 포장하고 제거하는 문제입니다. 일단 문제를 살펴보겠습니다.문제 설명햄버거 가게에서 일을 하는 상수는 햄버거를 포장하는 일을 합니다. 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고, 상수는 순서에 맞게 쌓여서 완성된 햄버거를 따로 옮겨 포장을 하게 됩니다. 상..
[SwiftUI] SwiftUI 상태 동기화 트러블슈팅
·
Apple/SwiftUI
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 제가 프로젝트를 진행하면서 발생한 문제와 해결 과정을 공유해보려고 합니다. 그럼 바로 시작하겠습니다! 프로젝트 소개우선 프로젝트에 대해서 간단하게 소개해보자면 인생네컷처럼 내 앨범에서 사진을 골라서 네 컷 사진을 만들 수 있는 앱을 개발하고 있었습니다. 사용자가 최대 4장의 사진을 선택하고, 원하는 사진을 삭제한 후, 새로운 사진을 추가할 수 있는 기능도 추가로 구현했습니다. 기본 구조는 아래처럼 설계를 했습니다.ContentView: 사진 선택 및 관리(네컷 이미지를 만드는 View)FourCutFrameModel: 프레임 데이터 모델PhotoModel: 개별 사진 데이터문제 발견 과정앱의 기본 기능은 완성하였지만 기능을 더 확장하고 싶다는 생각이 들었..
[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을 활용해서 각..