기사 목록
117개의 글이 있습니다
PaperConfetti: 렌더러 실험 뒤에도 Swift 패키지 API를 작게 유지하기
Keeping a Swift package’s API small after experimenting with several renderers (PaperConfetti)
- PaperConfetti 0.2.0은 Core Animation의 CAEmitterLayer로 재생을 처리하며, flat과 3D를 별도 렌더러가 아닌 하나의 엔진에서 제공한다.
- 레이아웃 변화로 이미 발사된 조각이 움직이지 않도록 위치를 한 번 캡처해 안정적인 overlay에 배치하고, 취소·Reduce Motion·화면 이탈 동작도 관리한다.
- CPU 사용량만으로 부드러운 애니메이션을 판단하지 않는다. 실제 기기 측정과 누락 입자를 감지하는 테스트를 함께 사용해 렌더링 결과와 인터페이스 동작을 확인했다.
멈춘 Swift 빌드와 테스트를 찾아내는 메뉴 막대 앱 Birdwatch
Agents get stuck. So I built a menu bar app that shows which Swift build or test is stuck, and why
- Birdwatch는 프로젝트별 Swift·Xcode 프로세스를 메뉴 막대에 표시하고, 멈춘 프로세스를 표시한 뒤 원인 설명과 종료 기능을 제공한다.
- 멈춘 이유는 Apple 기기의 온디바이스 모델이 설명하며, 설명이 틀릴 수 있다. Apple Intelligence를 사용할 수 없으면 스택 샘플을 대신 표시한다.
- macOS 27.2 이상 및 Apple silicon Mac이 필요하다. 14일 무료 체험 후 라이선스 키가 필요하며, 앱은 다른 프로세스를 읽고 신호를 보내므로 샌드박스 처리되지 않는다.
iPhone Duo 네이티브 출시: SwiftUI 앱에서 발목을 잡은 7가지
Shipping natively on iPhone Duo: 7 things that bit us in a SwiftUI app
- 제공된 본문은 iPhone Duo용 SwiftUI 앱에서 겪은 문제를 설명하지 않고, Pagewren의 App Store 소개와 기능·가격 정보를 담고 있다.
- Pagewren은 사진과 글을 날짜·월령별로 정리해 아기 성장 기록을 만들고, 책 전체를 PDF로 내보내거나 개별 페이지를 이미지로 저장하는 앱이다.
- 무료 버전에는 Classic 테마와 기본 기능이 포함되며, Pro는 추가 테마와 iCloud Sync, Privacy Lock을 제공한다. 앱은 iOS 17.0 이상을 요구한다.
앱 성능 측정과 개선을 위한 Q&A 핵심 정리
Boost Your App’s Speed and Efficiency 29/10/26 - Q&A
- 성능 문제는 실제 기기와 Release 빌드에서 Instruments·xctrace로 측정하고, 사용자가 체감하는 hitch와 지연을 기준으로 판단해야 한다.
- MetricKit의 진단 정보를 State Reporting으로 앱 상태와 연결하고 App Store Connect 지표와 비교하면 성능 변화와 사용량 변화를 함께 조사할 수 있다.
- 코딩 에이전트에는 원래 문제를 재현한 뒤 수정 효과까지 검증하도록 요구해야 하며, 로컬 trace 분석과 모델 입력 데이터 처리는 구분해야 한다.
Fatbobman’s Swift Weekly #160: 에이전트 시대의 디스크 관리와 Swift 개발 소식
Fatbobman's Swift Weekly #160
- 에이전트가 생성한 데이터와 정리되지 않은 임시 디렉터리로 디스크 공간이 빠르게 줄어들 수 있어 실행 환경의 경계와 자원 정리 절차가 필요하다.
- 이번 호는 Optional, SwiftUI 성능 분석, iOS 27 Now Playing, Text 보간, Factory의 Scene 컨테이너 등 Swift 개발 사례를 소개한다.
- 병렬 에이전트의 테스트 환경 격리와 디스크 사용량 진단 도구 szt, DMG 제작 및 Markdown 미리보기 앱 등 개발 도구 소식도 다룬다.
Claude Code·Cursor·Codex의 에이전트 hook 비교와 설정
Agent hooks in Claude Code, Cursor, and Codex explained
- 에이전트 hook은 특정 이벤트에 맞춰 도구가 스크립트를 실행하므로, 에이전트가 지침을 잊을 수 있는 AGENTS.md나 전역 지침보다 반복 규칙을 일관되게 적용한다.
- hook은 이벤트, 트리거 조건, 스크립트, 실행 결과에 대한 동작으로 구성된다. 실행 전 hook은 호출을 차단하거나 바꿀 수 있지만, 실행 후 hook은 이미 일어난 동작을 되돌릴 수 없다.
- Claude Code·Cursor·Codex는 이벤트와 설정 형식, 실패 처리 방식이 다르다. hook을 켜기 전에 스크립트를 검토하고, 위험한 작업을 보호하는 경우와 편의 기능인 경우에 맞춰 실패 정책을 정해야 한다.
Redis·Valkey·Dragonfly를 지원하는 macOS 클라이언트 Keel
One native macOS client for Redis, Valkey and Dragonfly: Smooth at 10M keys
- Keel은 Redis 6.0~8.x와 Valkey 7.2~9.x를 완전히 지원하고, Dragonfly 1.x에서는 공통 명령 집합을 지원하는 오픈소스 macOS 클라이언트다.
- 브라우저는 SCAN만 사용하고 값을 페이지 단위로 불러온다. 유휴 탭은 요청을 보내지 않으며, 대량 삭제는 기본적으로 초당 10개 배치로 제한된다.
- Redis Cluster에서는 연결한 노드만 탐색하며, 노드 전체를 슬롯 기준으로 탐색하는 기능은 아직 제공되지 않는다. 텔레메트리는 없고 비밀번호는 macOS Keychain에 보관된다.
iOS Weekly Brief 84호: 터치스크린 MacBook Pro와 Swift 개발 소식
The iOS Weekly Brief: Issue #84. Touchscreen MacBook Pro, SwiftUI view models, Xcode 27.2 JSON projects, App Store previews with Claude Code, Dynamic Type for custom fonts, iPhone Duo layouts,...
- 새 MacBook Pro는 120Hz tandem OLED 터치스크린과 Dynamic Island를 갖추고, Mac 앱에서 터치를 활용하도록 시스템 제스처 API도 제공한다.
- SwiftUI view model의 역할을 use case에 대응시키는 관점을 소개하고, UI 코드는 view model에 넣지 않는다는 원칙과 판단 체크리스트를 다룬다.
- Xcode 27.2의 JSON 프로젝트 형식과 제약, Claude Code로 App Store 미리보기 영상을 만드는 파이프라인, iPhone Duo 레이아웃과 Maestro도 소개한다.
Swift 개발 단계에 맞춰 적응하는 Claude 워크플로
Level Up Your Agent-Assisted Swift Development with a Claude Workflow That Adapts as You Build
- SwiftFlow는 개발 단계에 따라 Claude에 필요한 지침, 도구, skill을 자동으로 제공하는 상태 머신 기반 도구다.
- 세션마다 반복되는 지침 입력과 skill 호출을 줄이고, 새 세션에서도 작업 흐름을 다시 설정해야 하는 문제를 해결하려 한다.
- 작성자는 SwiftFlow의 구성 방식을 공유하기 위해 워크숍을 열고, 참가자가 직접 시스템을 만들 수 있도록 starter kit을 제공한다.
패키지 레지스트리의 서명과 출처 증명 비교
Signing and Attestations Across Package Registries
- 서명은 업로드된 파일의 무결성과 서명 키를 확인하고, provenance attestation은 소스 저장소와 커밋, 빌드 워크플로 또는 게시 주체에 관한 정보를 기록한다.
- trusted publishing은 장기 API 토큰 대신 CI의 단기 OIDC 자격 증명을 사용하지만, 워크플로가 침해되면 공격자가 악성 릴리스를 게시할 수 있다.
- 레지스트리마다 증거의 저장 방식과 검증 범위가 다르며, 설치 시 기본 검증을 수행하는 클라이언트는 일부에 그치고 attestation 검증은 대체로 별도 도구에 맡긴다.