iOS/Swift 소식을 전해드립니다 💁
레츠스위프트 뉴스레터  제97호 2023년 2월 25일
풍성한 iOS / Swift 관련 소식을 모은 뉴스레터가 도착했습니다. 2주 사이에 비전 프로를 국내에서도 많이들 받으신 것 같네요. 저도 다시 주문한 비전 프로가 미국에서 곧 출발할 것 같습니다. 비전 프로 관련 사용기가 유난히 많으니까 골고루 살펴보시길 추천드립니다. 다음 호에는 애플 이벤트 소식이 기다리고 있을 것 같습니다.
매월 둘째, 넷째주 일요일에 뉴스레터를 발행하고 있습니다. 
누구나 함께하는 뉴스레터 저장소 👉 만약 링크가 깨지는 경우는 저장소 이슈에서 확인하실 수 있습니다.
메일링 리스트 가입은 >가입하기 링크< 주변에 소개해주세요 🤩
주제/분류별 소식들
국/해외 소식들을 비슷한 주제들이 많아서, 다음과 같이 묶어서 정리합니다.
# 애플

> 애플에서 스포츠 좋아하는 팬들을 위해서 새로운 공식앱 - 애플 스포츠 앱을 출시했습니다. 아직은 미국과 영국 스토어에만 다운로드가 된다네요 Introducing Apple Sports, a new app for sports fans - Apple

# Vision Pro

> 🇰🇷 디에디트에 최호섭 기자님이 기고한 비전 프로 사용기입니다. 꽤나 상세하게 작성해주셔서 꼭 써보고 싶다는 생각이 들었습니다 IT 덕후의 애플 비전 프로 사용기 - 디에디트

> 💎 제가 비전 프로를 기다리면서 가장 궁금한 점들을 풀어서 설명해주는 글입니다. visionOS에서 창은 투명한 유리 느낌입니다. 다른 플랫폼처럼 불투명한 색상으로 채우지말라고 합니다. 호환성을 가지는 앱이라고 해도 이질감을 느끼는 이유가 될 겁니다. 이 글은 UI 기본 요소에 대해 SwiftUI 코드와 함께 보여주기 때문에 특히 좋았습니다 Ensuring interface legibility and contrast in visionOS

> 비전 프로 사용기가 많은데 좀 더 개발자 관점에서 된 글을 찾고 있는데, 여전히 일반 사용기 수준의 글들이 많네요. 이 분은 개발자 스트랩도 구했다고 하니 다음에는 더 개발 측면 얘기가 포함될 것으로 기대해봅니다 A week on with a VisionPro – Rhonabwy

> 구입하지는 않고 애플 스토어에서 데모 체험을 하고 나서 작성한 글이네요. 데모를 보고 구매를 결심한 분들도 있지만, 구매하고 14일 동안 써보고 반품한 사람들도 있죠. 확실해 새로운 컴퓨팅 환경이라는 데 동의한다면서 체험해보길 권하고 있습니다 Apple Vision Pro: Thoughts After Doing the Demo | by Warner Crocker

> 일반적인 사용기와는 다르게 현재는 엔터테인먼트를 기대하는 사용자들이 더 많다는 것을 근거삼아 서드파티 서비스 확장 가능성을 예측하는 글입니다. 플랫폼으로 성장할 가능성을 가졌으니 사업 기회가 생길 수 있다는 부분에 동의하는 글입니다 Apple’s Vision for the Future of Personal Computing | by Richard Yao

> 아하하 저랑 가장 비슷한 고민을 하신 분 같아서 가져왔습니다. 미국에서만 발매한 비전 프로를 영국에서 사용하기 위해서 필요한 것들을 상세하게 설명하네요. 내용 중에서 통관세를 제외하고 미국에서 영국으로 보내는 택배 비용은 $99 수준이라니 꽤 저렴하다고 생각했는 데, 3678.41 파운드라니 600만원이 넘네요 How I Cracked the Apple Vision Pro Code in the UK | by Mark Ellis

> 이 글은 집에서 대화까지 여러 장면이 겹쳐서 보이는 것 같아서 뭐랄까 가장 현실적인(?) 후기인 것 같습니다. Is the Vision Pro a Consumption Device or a Creativity Device? | by Madhukar Kumar

> 제가 기대하는 개발자 관점에서 비전 프로용 앱을 만드는 과정을 설명합니다. 2D 윈도에 화면 요소 뿐만 아니라 RealityView로 3D로 보여주는 것 까지 다양한 실험이 포함되어 있습니다. 8비트 느낌으로 모델링한 사물을 공간에 배치할 수 있네요 Our journey building the “A Bunch of Things” app for the Apple Vision Pro | by Bruno Oliveira

> 흥미로운 리뷰 글입니다. 스프레드 시트가 이제 3D가 되면 어떨까? 3차원 퍼즐이나 여러 명이 함께하는 레디플레이어원 같은 3D 게임을 상상해 보셨나요 The Vision Pro Killer Apps. I can imagine several | by Anthony

> 비전 프로는 아이패드의 미래일까요? 여러분들은 비전 프로가 맥을 대체할 것 같은신가요? 아니면 아이패드나 스튜디오 디스플레이를 대체할 것 같으신가요? iPad vs. Apple Vision the fight is on! | by David Lewis

> What It’s Like to Use an Apple Vision Pro | by Ben Ulansey


# 하드웨어

> 50년동안 3볼트 전압을 생산하는 동전 크기만한 배터리라고 합니다. 모바일 기기들은 결국 충전을 해야하는 게 문제인데 가까운 미래에는 충전하지 않아도 되는 폰을 써볼 수 있을까요? A Chinese Company Invented a Micro Nuclear Battery | by The Pareto Investor

> 애플 워치에서 산소포화도 측정 기능이 제거된다는 소식입니다. 특허 소송으로 특정 제품 기능만 막던 조취에 이어서 전제품으로 확대하는 모양인가 봅니다 Apple to Remove Blood-Oxygen Feature from Apple Watch | by Jason Benskin

# 일반

> 💎 EU에서 3월 6일부터 DMA 관련 대응이 시작됩니다. 그 중에는 사파리 브라우저 엔진 대신에 다른 브라우저 엔진을 선택할 수 있게 됩니다. iOS 새 버전부터는 기존에는 크롬 앱에서도 사파리 렌더링 엔진을 써야만 했는데, 다른 브라우저 엔진 선택이 가능해지면서 PWA 기능을 막아버렸다네요. PWAs Are Now Officially Dead On iOS In The EU | by Danny Moerkerke

> 아이패드를 사용하다보면 익숙한 것만 사용하게 되는데, 놓치기 쉬운 팁을 알려줍니다. Globe 키와 Command 키만 잘 써도 맥과 비슷한 단축키를 쓸 수 있고, 단축어 앱과 다르게 자동화할 수 있는 부분도 알려줍니다 5 Powerful iPad Features You Don’t Know About | by Adi Kakarla

> 3월에 애플 이벤트에서 새로운 하드웨어가 나오길 기대한다는 소식입니다. 아이패드 프로가 새로 나올 타이밍이긴 한 것 같습니다 Apple’s March event — 6 NEW devices promised | by David Lewis

> 아사히 리눅스가 애플 실리콘 기반 맥들에서 동작하도록 OpenGL 호환 GPU 드라이버를 개발하고 배포했습니다. 10년전부터는 애플은 OpenGL 새 버전을 지원하지 않고 Metal에만 집중하고 있는데, 리눅스쪽에서 먼저 지원한 셈이네요 Asahi Linux project’s OpenGL support on Apple Silicon officially surpasses Apple’s | Ars Technica

> Astropad사에서 만든 슬레이트라는 앱은 아이패드에서 연필로 맥을 조작하는 방식을 제공합니다 Astropad Slate - Control Your Mac With iPad and Apple Pencil

> llama 같은 LLM을 애플 실리콘 맥에서 사용할 때 빠른 계산을 도와주는 MLX를 사용하면 애플 실리콘 GPU를 활용해서 성능이 좋아진다고 합니다. llama2를 파이썬으로 MLX을 써서 직접 실행해보는 과정을 설명합니다. Run LLM Inference Using Apple Hardware | by Christopher Karg

> 와이파이 6도 아직 다 넘어가지 않았는 데, 와이파이 7 장비가 나왔나보네요. 얼마나 빨라질 수 있는걸까요 Wi-Fi 7 officially here at long last | by Kostas Farkonas


# 스위프트

> 새로운 스위프트 버전에서 (아마도 Swift 6부터) 사용할 수 있는 Typed throw 방식을 지원할 예정입니다. SE-0413으로 제안받고 구현한 내용으로 함수가 throw 할 수 있는 타입을 지정할 수 있고, 해당 에러들만 매칭할 수 있답니다 Designing APIs with typed throws in Swift – Donny Wals

> 흔하지 않은 스위프트 알고리즘 패키지에 대한 소개글입니다. 저도 자세히 써보지는 않았는데, 왠만한 알고리즘은 잘 구현되어 있나보네요 Discovering Swift Algorithms package | Swift with Majid

> 익스텐션에 대해서 여러가지 경우를 종합해서 설명합니다. 흔히 문법책에서 볼 수 있는 설명 정도 수준입니다 Extensions in Swift: How and when to use them - SwiftLee

> 타입을 안전하게 다루는 방법에 대해 설명한 글입니다. if 비교문으로 nil을 비교하기 보다는 if let 이나 guard let으로 옵셔널 바인딩을 권장한다는 내용입니다. 타입을 안전하게 쓰기 위한 작은 노력이지만 사소한 실수를 방지하는 데도 도움이 될 겁니다 Fundamentals of type-driven code | Swiftology

> 구조화된 동시성 처리 방식으로 실행하는 비동기 함수는 어디에서 실행될까요. actor와 task, executor와 thread의 관계를 잘 설명해주는 글입니다 How to determine where tasks and async functions run in Swift?

> 스위프트에 남아있는 오브젝티브-C 키워드를 설명하는 글인데, 이걸 스위프트 카테고리로 분류해야 하나 싶었습니다. 예제코드도 다 오브젝티브-C인데 오랜만에 보니 반갑네요 Objective-C Keywords in Swift. Dynamic or synthesize | by Steven Curtis

> MS 윈도우 기반으로 Swift와 C#을 연결하는 SwiftToCLR 컨셉 프로젝트 글입니다. 실제로 완성할 지는 모르겠지만 C++ 상호 호환성을 참고해서 C#까지 연결해보려고 하네요 Proof of Concept Project: Combining Swift and C# on Windows with SwiftToCLR - Swift Forums

> 스위프트 6부터는 동시성 라이브러리 측정 기준을 minimal에서 complete로 바꾸는 것을 추천한다고 합니다. 비동기 처리 관련 에러를 찾기 위해서, 동시성 라이브러리 실제 동작하는 흐름을 확인하는 데 도움이 될꺼 같네요 Should You Enable Swift’s Complete Concurrency Checking? | massicotte.org

> 5.9에 추가된 스위프트 매크로. 나만의 매크로를 만드는 과정을 설명하는 글입니다. 아직 저도 만들어보지는 않았는 데 참고하기 딱 좋네요 Swift 5.9 - Macros. We met Macros with Swift 5.9 | by Ezgi Üstünel

> 드디어 스위프트 6 배포를 위한 절차가 시작됐습니다. 3월 15일에 main 브랜치에서 떨어져 나온다고 하네요. 아마도 Xcode 16과 같이 배포되지 않을까 예상해봅니다. Swift 6.0 Release Process - Development / Announcements - Swift Forums

> MLX 오픈 소스가 공개된 지 조금 시간이 지난 후, MLX Swift 확장이 새 저장소로 등장했네요. Swift 라이브러리와 스위프트 코드에서 MLX 코어를 호출할 수 있고, 몇 가지 예제도 포함되어 있습니다 Swift.org - On-device ML research with MLX and Swift

> 2023년 동안 진행한 스위프트 기반으로 멘토링을 해주는 오픈 소스 생태계 프로그램인 구글 Summer of Code에 대한 공식 글입니다. 2023년에는 스위프트 Memcache 라이브러리, SwiftParser에서 증분 파싱, 키 패스 추론과 분석 개선 주제로 진행했다고 합니다 Swift.org - Swift Summer of Code 2023 Summary

> inout 키워드를 자주 사용하시나요? 저는 이게 하위 호환성처럼 언어적인 형식에 필요한 것이고 정말 사용하는 것은 하지말자.에 가깝습니다. The power of inout parameters | Daniel Saidi


# 설계 구조 : 패턴
# 뷰 프로그래밍 : SwiftUI

> 흔히 보는 사이드 메뉴를 슬쩍 삐뚤어지게 애니메이션 보여주는 예제 코드입니다. 이렇게 뷰를 만드는 걸 보는 것이 필요할 때가 있겠지만, 마치 정적인 웹 페이지 코드를 보는 것 같은 느낌이네요 Floating Side Menu In SwiftUI | by Mobile Apps Academy

> 다이나믹 타입 지원하기 위해 @ScaledMetric 속성을 사용하는 방법을 설명합니다. SwiftUI 에서도 접근성 설정에 따라 동적으로 변하는 글꼴 표시는 필수니까요 How to use @ScaledMetric in SwiftUI for Dynamic Type support

> SwiftData 쿼리로 데이터 패치해서 뷰를 만드는 편리한 방법을 설명하는 글입니다. 이렇게 뷰에서 직접 데이터 저장 계층까지 한꺼번에 처리할 수 있는 게 장점이 될 수 있겠지만 한 덩어리가 너무 커지지 않을까 우려도 되네요 Implementing a SwiftData Query View as the most convenient way to fetch data in SwiftUI | by Ihor Malovanyi

> 샌드버드 개발팀이 작성한 SwiftUI와 UIKit 비교글이네요. 꽤 상세하게 작성해주셨네요 SwiftUI vs. UIKit: What is the best choice for building an iOS user interface in 2024? | by Sendbird

> 엄청 상세하게 설명해주는 ViewState에 대한 상세 가이드입니다. 예제 코드도 깔끔해 보이네요 The Definitive Guide to ViewState in SwiftUI | by Michael Long

> Create an animated transition with Matched Geometry Effect in SwiftUI

> Fun Alignment Guide Tricks | Swiftjective-C

# 뷰 프로그래밍 : UIKit
> 올리(Ollie) 라는 앱이 SwiftUI에서 UIKit으로 옮겨간 이유를 설명합니다. 불안한 SwiftUI와 스위프트 동시성 버그로 고생한 게 큰 것 같습니다 Why Ollie is moving away from SwiftUI to UIKit | by Mahyar McDonald
# 프레임워크

> 콤바인과 반응형 프레임워크에 대한 짧은 역사를 정리한 글 입니다. 새로운 소식을 설명한다기 보다는 전반적인 개념을 정리한 글이라고 보시면 됩니다 Combine: A Reactive Framework in Swift | by Ario Liyan

> 이 분 SwiftData 시리즈 글을 계속 올리고 있습니다. 이번에는 Predicates로 검색 조건을 명시할 때 옵셔널 값을 다루는 방법을 설명합니다 How to Handle Optional Values in SwiftData Predicates | Fatbobman


# 접근성

> 비전 프로에서도 시각적인 접근성이 필요하겠죠. 시력이 나쁜 사람은 비전 프로를 어떻게 사용할 수 있을까 매우 궁금했는 데 상세하게 설명해주는 글입니다. 기존의 아이폰이나 맥과 어떤 차이가 있을지도 궁금합니다 Vision Accessibility on Apple Vision Pro

# 개발 환경

> 💎 Xcode 11이었나 플러그인 방식이 바뀌면서 Extension만 가능하게됐죠. 그렇지만 Xcode 내부적으로 문서화는 안됐지만 아직 플러그인이 있어서 그걸 어떻게 다시 시도해보는 글입니다. 개인적으로 재밌네요 Modding Plugins back into Xcode - Bryce Pauken

> 💎 XCFramework에 프라이버시 매니페스트를 명시하는 방식에 대해 찾아보고, 자신의 오픈소스 도구에서 지원하도록 처리한 과정을 공유합니다. 이렇게 하는 이유는 앱에서 사용하는 API 들에 대한 프라이버시 명세를 조합하는 데, XCFramework 내에 있는 경우도 포함하려는 의도로 보입니다 Embedding a privacy manifest into an XCFramework – Rhonabwy

> Git Diff와 Merge를 도와주는 새로운 유료 도구입니다. 화면 구성이 심플하고 써보고 싶게 만들었네요 Git Diffs & Merges, but Nicer | JuxtaCode

> 요즘 깃헙이나 슬랙처럼 2FA 강제하는 서비스가 늘고 있습니다. 사파리 패스워드 저장 기능에 2FA 코드 생성 기능을 지정하는 방법도 가능하군요! 웹 페이지만 쓰는 경우는 딱 좋을 것 같습니다. How to Use Safari's Built-in 2FA Code Generator - MacRumors

> 애플 개발 환경도 계속 변화하고 있고 앞으로 이런 건 어떨까 상상해보는 부분이 흥미롭네요. 예시로 나오는 오브젝티브-C처럼 빠른 프레임워크, 선언형 콤포넌트 DataUIKit, 빠르고 안전한 SwiftRust를 만들지는 않겠죠 Pareto Optimal Apple Devtools | by Mahyar McDonald

> 깃헙과 깃랩의 이슈만 따로 관리할 수 있도록 도와주는 맥용 유료 앱입니다 Sonar – Mac App for GitHub/GitLab Issues

# 테스트

> 모바일 앱 보안을 지키기 위해 챙겨야 할 사항들을 정리한 글이네요. 가끔씩 놓치기 되는 경향도 있지만 평소에 계속 챙겨야 하는 부분인 것 같습니다 IOS Mobile App Security: Best Practices for iOS Mobile Developers. | by Munendra Pratap Singh

📲회사에서 iOS 개발자들에게 홍보하고 싶은 내용이 있으신가요? 
news@letswift.kr 로 언제든지 문의해주세요. 
레츠스위프트 뉴스레터
http://letswift.kr
수신거부 Unsubscribe