기사 목록
117개의 글이 있습니다
Apple Private Cloud Compute 출시에서 얻은 교훈: 32K 컨텍스트, 할당량, 개인정보 보호의 절충
Lessons from shipping Apple's Private Cloud Compute: 32K context, quotas, and privacy trade-offs
- 제목은 Apple Private Cloud Compute의 출시 경험과 32K 컨텍스트, 할당량, 개인정보 보호 간의 절충을 다룬다고 밝히지만, 본문에는 이를 뒷받침하는 설명이 없습니다.
- 제공된 HTML에는 App Store의 Mindful Prism 페이지로 이동하려는 안내와 이전 페이지로 돌아가라는 문구만 있어 기술 아티클의 내용을 확인할 수 없습니다.
- 따라서 컨텍스트 크기, 사용 할당량, 개인정보 보호 정책이나 출시 과정에 관한 구체적인 사실은 이 입력만으로 요약하거나 검증할 수 없습니다.
ArrangementView 내부 뷰의 size class 읽기
Size classes inside ArrangementView
- ArrangementView에서 분할된 축의 size class는 compact가 되지만, iOS 27.1에서는 직접 전달한 최상위 뷰만 pane이 아닌 window의 size class를 읽는다.
- iOS 27.1에서는 PaneView를 VStack 같은 컨테이너 안에 넣으면 pane의 size class를 읽을 수 있으며, iOS 27.2에서는 최상위 뷰와 내부 뷰의 값이 일치한다.
- iOS 27.2의 iPhone Duo와 iPad 측정 결과에서 세로로 쌓인 pane은 Regular / Compact, 가로로 나란한 pane은 Compact / Regular를 읽는다.
WebKit 대신 TextKit으로 Markdown을 렌더링하는 Quick Look
Rendering Markdown in Quick Look with TextKit instead of WebKit
- MD QuickLook은 Rust에서 Markdown을 바이너리 레이아웃으로 변환하고 Swift와 TextKit으로 그려, 일반적인 README 미리보기를 약 30ms에 표시한다.
- 구문 강조 문법을 빌드 시 전처리하고 언어별 강조 작업을 병렬화해 초기 컴파일 시간을 줄이며, 긴 문서는 첫 화면을 먼저 그린 뒤 나머지를 백그라운드에서 처리한다.
- GFM, 220개 언어의 구문 강조, 수식과 Mermaid 다이어그램을 지원하며, macOS 12 이상에서 무료로 사용할 수 있는 MIT 라이선스 오픈 소스 앱이다.
iOS 27 Foundation Models로 iPhone에서 로컬 LLM 사용하기
Your iPhone Can Run an LLM Locally — A Hands-On Swift Guide to Foundation Models in iOS 27
- iOS 27의 Foundation Models는 온디바이스 모델뿐 아니라 Private Cloud Compute와 LanguageModel 프로토콜을 구현한 외부 모델도 같은 세션 구조로 사용할 수 있게 확장됐다.
- @Generable은 Swift 타입에서 스키마를 생성해 모델 출력을 구조화하지만, 결과의 의미까지 보장하지는 않으므로 앱에서 별도 검증이 필요하다.
- 모델 사용 가능 여부는 기기와 설정, 다운로드 상태에 따라 달라지며 배터리·발열·컨텍스트 한도도 고려해야 하므로 대체 UI와 취소 처리를 설계해야 한다.
macOS 메뉴 막대용 로컬 개발 포트 관리자 PortRadar
Built a native macOS menu bar localhost & dev port manager — PortRadar (100% free & open-source)
- PortRadar는 macOS 메뉴 막대에서 localhost 개발 포트를 관리하는 무료 오픈소스 도구로 소개된다.
- Next.js, Vite, Angular, Node.js, Bun, .NET, FastAPI, Docker, PostgreSQL, Redis, Ollama를 자동으로 인식하고 RAM·CPU·PID 정보를 표시한다.
- 3000, 5173, 8080, 5000, 5432 포트를 고정 감시 목록에 올릴 수 있으며, 상태 표시와 브라우저 열기를 제공한다.
Firebase 13의 CocoaPods 중단에 대응해 iOS 앱을 SPM으로 이전하기
Firebase 13 dropped CocoaPods. Here’s how I moved a iOS app to SPM
- Firebase 13.0.0은 2026년 10월 7일 출시됐으며 CocoaPods로 배포되지 않는다. 12.19.0이 마지막으로 예정된 CocoaPods 릴리스다.
- 기존 앱이 즉시 작동을 멈추거나 CI 파이프라인이 저절로 실패하는 것은 아니다. 다만 이후 Firebase 기능과 성능 개선, 중요 수정 사항을 받으려면 이전 계획이 필요하다.
- Firebase Auth, Firestore, Crashlytics를 사용하는 기존 iOS 앱을 SPM으로 옮긴 사례에서 패키지 추가보다 빌드 단계, 링커 플래그, 타깃, 런타임 동작 점검이 주요 과제로 제시된다.
Shikaku: 매일 즐기는 직사각형 논리 퍼즐
Shikaku - Daily Rectangle Logic Puzzles
- Shikaku는 각 숫자가 표시된 크기의 직사각형을 격자에 배치해 빈칸과 겹침 없이 채우는 논리 퍼즐 게임이다.
- 매일 Easy·Hard 퍼즐과 4×4부터 8×8까지 다섯 가지 격자 크기의 퍼즐 팩을 제공하며, 시간 제한 모드와 원하는 조건으로 퍼즐을 생성하는 기능도 있다.
- 광고와 구독 없이 제공되며, Shikaku Pro는 한 번 결제해 전체 경험을 잠금 해제한다. 색상·아이콘·질감 설정, 오프라인 플레이와 Game Center 기록도 지원한다.
StealthOS: Swift 기반 P2P 전송과 폴더블 윈도 매니저
Building an open-source P2P transport and foldable window manager in Swift: Architecture and learnings from StealthOS
- StealthOS는 Tor 브라우저, OpenPGP 암호화, 암호화 저장소와 메신저를 iOS 앱 안에 묶고, 계정 없이 사용할 수 있는 개인 작업 공간으로 소개된다.
- 채팅과 음성·영상 통화는 가까운 기기끼리 P2P로 연결하거나 떨어져 있을 때 relay를 거친다. 오픈소스 StealthRelay를 직접 운영해 앱 트래픽을 전달할 수도 있다.
- 가상 데스크톱은 iPhone과 iPad에서 이동 가능한 창과 폴더, 테마를 제공한다. 다만 제공된 본문은 P2P 전송이나 윈도 매니저의 구현 아키텍처를 설명하지 않는다.
SwiftUI에서 시스템 콘텐츠 여백 사용하기
How to use layoutMarginsGuide in SwiftUI
- 고정된 `.padding(.horizontal, 16)`은 기기와 방향에 따라 달라지는 시스템 여백에 맞지 않을 수 있으며, iPhone Duo에서는 좌우 여백이 비대칭이어서 화면 가장자리와 세로 바 위치를 모두 놓칠 수 있다.
- iOS 27.1의 `.contentMargins(for: .container)`는 현재 컨테이너와 뷰 위치에 맞춘 시스템 여백을 적용하며, `GeometryProxy.contentMargins(for:edges:)`는 같은 여백 값을 `EdgeInsets`로 반환한다.
- SwiftUI 여백 값은 UIKit의 `layoutMargins`와 달리 safe area를 포함하지 않는다. iOS 27.0을 지원할 때는 대체 modifier를 둘 수 있지만, `.padding(.horizontal)`도 기기별 차이를 정확히 반영하지 못한다.
Xcode Instruments에서 SwiftUI 뷰 다시 그리기와 원인 추적하기
SwiftUI Performance: Find Redraws in Xcode Instruments
- SwiftUI 템플릿으로 짧고 집중된 상호작용을 기록한 뒤 View Body Updates 계층과 표에서 뷰별 업데이트 횟수와 실행 시간을 함께 확인한다.
- Root Causes와 cause-and-effect 그래프를 따라가면 업데이트를 유발한 프로퍼티를 찾을 수 있으며, 잦은 업데이트와 느린 body 실행을 구분해 대응할 수 있다.
- 단일 body 업데이트가 짧아도 반복 횟수가 많으면 비용이 쌓이므로, 코드를 바꾼 뒤 동일한 상호작용을 다시 기록해 측정값을 비교해야 한다.