iOS/Swift 소식을 전해드립니다 💁
레츠스위프트 뉴스레터  제98호 2024년 3월 10일
풍성한 iOS / Swift 관련 소식을 모은 뉴스레터가 도착했습니다. iOS 와 iPadOS 17.4 버전이 릴리스됐고 Xcode도 15.4 버전이 스위프트 5.10과 함께 업데이트됐습니다. 비전 프로도 visionOS는 1.1로 올라가고 개발자 모드를 켜서 개발할 수 있더군요. M3 맥북 에어도 조용히 출시됐는데 아직 아이패드는 소식이 없습니다. 과연 3월 이벤트를 하려나요? 신형 아이패드 프로를 기다리다가 비전 프로를 질러서 이제 모르는 척 해야겠습니다 🤣
매월 둘째, 넷째주 일요일에 뉴스레터를 발행하고 있습니다. 
누구나 함께하는 뉴스레터 저장소 👉 만약 링크가 깨지는 경우는 저장소 이슈에서 확인하실 수 있습니다. 
🫰그리고 뉴스레터가 조금이라도 도움이 되신다면 뉴스레터 저장소 또는 깃헙 스폰서 링크에서 후원하실 수 있습니다. 뉴스레터 운영을 위해서 도메인+스티비 서비스에 매달 5만원정도 비용이 들어가고 있어서 한달에 $1라도 도움이 됩니다 😍
메일링 리스트 가입은 >가입하기 링크< 주변에 소개해주세요 🤩
저도 드디어 주문한 지 한 달 만에 비전 프로를 받았습니다. 유난히 이번 구매는 상당히 고단하고 힘들었는데요 그 과정을 기록해봤습니다. 저처럼 고생하지 마시고 다른 분들은 편안하게(?) 구매 성공하시길 기원하는 마음에 구입 기록을 상세하게 적었습니다
주제/분류별 소식들
국/해외 소식들을 비슷한 주제들이 많아서, 다음과 같이 묶어서 정리합니다.
# 애플

> 애플에서 앱 스토어, 앱 사용성과 프레임워 사용, 성능까지 데이터 분석용 데이터가 지원되고, 클라우드킷 콘솔에서 노티 상태와 파일 데이터에 대한 리포트를 볼 수 있다고 합니다 New App Store, iOS, and CloudKit data analytics now available - Apple Developer

> 이제 앱 스토어 출시할 때 API 사용과 사용 이유에 대해 프라이버시 업데이트가 필수라고 합니다 Privacy updates for App Store submissions - Apple Developer

> 앱 리뷰 가이드라인이 업데이트 됐습니다. 외부 스토어에서 배포 지원이나 멀티플랫폼 서비스 관련 내용이 포함된 것 같습니다 Updated App Review Guidelines now available - Apple Developer

> DMA 관련 변경 사항과 앱 배포와 관련된 공지입니다 Updates to app distribution in the European Union - Apple Developer

# 하드웨어

> 이벤트 없이 M3 맥북 에어가 출시됐습니다. 그걸 소개하는 글입니다. 다음 차례를 아이패드 계열이라는 루머가 있지만 아직 소식이 없네요 Apple Anticipates Unveiling New iPads and M3 MacBook Airs Online | by Jason Benskin

> 홈팟 미니 리뷰 글입니다만 아이들이 어떻게 활용하는지, 어떤 도움이 되는지 비교적 생생하게 설명하는 글입니다. 방마다 넣어두기 좋다지만 막상 그렇게 활용하기는 쉽지 않긴 하죠 The Best White Noise Machine For Kids? It’s A HomePod mini | by Jonathan Kim

> 올해 MWC 삼성에서 스마트 링을 전시했었습니다. 그래서 그런가 싶었는데, 비전 프로를 사용해보니 스마트링이 말이 된다는 생각을 저도 하게됐습니다. Why An Apple Smart Ring Makes More Sense Than Vision Pro | by Mark Ellis


# 일반

> 라즈베리 파이 컴퓨팅 성능이 좋아지면서 할 수 있는 게 더 넓어진 것 같습니다. 20가지 활용 방법 중에 하나 정도는 관심이 있지 않나요? 아참 물론 라즈베리 파이부터 사셔야 합니다 20 Cool Raspberry Pi Projects | by Exploit The Edge

> 이번주에 유럽 DMA 대응하는 iOS, iPadOS 업데이트가 나오면서 PWA 웹앱에 대한 논란이 있었습니다. 베타에서 유럽쪽에서는 브라우저 엔진을 선택할 수 있게 되면서 PWA 기능을 막아버렸었기 때문이었습니다. 유럽에서는 iOS 점유율이 30%대로 낮고, 여전히 통신망이 느린 곳이 많아서 웹앱보다 네이티브를 선호한다는 얘기가 있어서 이게 큰 의미가 있는 지 정확히는 모르겠습니다 Goodbye PWA, Hello PWA — Apple And Progressive Web Apps | by Attila Vágó

> 아직은 거대모델 LLM을 API로 쓰고 있지만, 이제 간편하게 로컬에서 사용할 개발용 Copilot 부조종사들이 많아질 것 같네요 Open-Source Llama Coding Assistant: Bye, bye GPT-4! | by Datadrifters

> 모델을 활용해서 MLX 와 PyTorch를 비교하는 글인데요. 앞으로 애플 실리콘에서 MLX로 빨라진 도구들이 많아질 것으로 예상됩니다 PyTorch and MLX for Apple Silicon | by Mike Cvet

> LLM 에서 가장 중요한 요소 중에 하나는 토큰입니다. 특히 한글이 토큰 처리에서 손해를 많이 보고 있긴하죠 What are Tokens? - NatashaTheRobot

> 자칭 안드로이드 팬보이라고 말하는 분의 아이폰 비교 체험입니다. 스펙상으로는 안드로이드 기기가 항상 좋지만 그럼에도 왜 아이폰 생태계가 좋은가 강조합니다 Why Android isn’t catching iPhone any time soon | by Lewis J Doyle

> 지금 상용 LLM 들이 왜 코딩에 좋지 않은지 이유를 설명하는 글입니다. 토큰 처리 방식과 컨텍스트 윈도우, 트레이닝 흐름을 근거로 설명합니다. Why LLMs are not Good for Coding. Challenges of Using LLMs for Coding | by Andrea Valenzuela

> 이번주에 DMA 대응에 맞춰서 iOS 17.4 버전이 릴리스됐습니다. 업데이트된 새로운 기능들을 소개합니다. iOS 17.4 Released — 25+ Amazing New Features You NEED To Try Now! | by Nikhil Vemu

> iOS 18 대대적인 업데이트 루머가 올라왔네요. 시리는 업데이트해야만 하는 시점이고, 디자인도 비전 프로에서 영향을 받아 일부 바뀌지 않을까 예상해봅니다 iOS 18 — Apple’s BIGGEST update EVER? | by David Lewis


# 스위프트

> 💎 스위프트 5.10 공식 릴리스 안내 글입니다. 특히 5.10에 적용된 full data isolation 에 대해 설명합니다 Swift.org - Swift 5.10 Released

> 💎 스위프트 AOP 글을 보게될 줄이야! 스위프트 컴파일러 특성상 런타임에 동적으로 바꿀 수 있는 게 오브젝티브-C 만큼 열려있지는 않죠. 그럼에도 AOP라는 관점에서 타입의 역할과 책임을 나누는 것도 가능합니다. 저는 오히려 AOP라고 부르는 게 관점의 차이일 뿐OOP나 POP 방향성에 맞다고 생각하긴 합니다 Aspect-Oriented Programming in Swift | by Luis Recuenco

> 💎 저는 actor 역할이 isolation이 가장 중요하다고 생각하는 데, 제가 중요하게 생각하는 isolation 내용들을 간단하게나마 설명해주는 글입니다. An Introduction to Isolation in Swift | massicotte.org

> Xcode 15.3 과 함께 공개된 Swift 5.10에 대한 설명 글과 유투브 영상이 포함되어 있습니다. 스위프트 6 이전의 마지막 업데이트며, SE-0412 글로벌 변수에 대한 병렬성 강제 적용 부분을 강조하고 있습니다 Everything you need to know about Swift 5.10 – Donny Wals

> Swift 5.10부터 actor별 isolation이 강제되면서 컴파일 워닝/에러를 표시하는 데, DispatchQueue.main 관련된 부분이 어떻게 처리되는 지 설명합니다. 아직 컴파일러를 솎일 수 있긴하네요 How the Swift compiler knows that DispatchQueue.main implies @MainActor – Ole Begemann

> 새로운 것은 별로 없지만 옵셔널에 대해 가볍게 정리해었네요. 비교적 최근에 추가된 문법도 있긴 합니다 Optionals in Swift explained: 5 things you should know - SwiftLee

> 스위프트 5.10부터는 타입 내부에 전용 프로토콜을 nested 포함할 수 있다고 합니다 Swift 5.10 Nested protocol concept | by ganeshrajugalla

> Swift 6 로드맵이 만들어지고 올해 하반기에 맞춰서 드디어 스위프트 6가 나올 예정입니다. 전반적인 방향성에 대해 설명하는 글입니다. Swift 6 Features and Enhancements | by Rashad Shirizada

> 기존 파운데이션에 있는 NSPredicate 가 #Predicate 매크로와 어떻게 다른지 설명하는 글입니다 Swift Predicate: Usage, Composition, and Considerations | Fatbobman

> 이 분 글을 자주 쓰시더니 주간의 글을 모아서 뉴스레터처럼 만드시나보네요. 이번주부터 시작되는 스위프트 6에 대한 이야기로 시작합니다 Time to Prepare for Swift 6 | by Fatbobman


# 뷰 프로그래밍 : SwiftUI

> 이제 내부에서도 SPM 기반으로 모듈을 나누는 경우가 많아졌죠. 다른 모듈 SwiftUI 화면끼리 내비게이션이 필요한 경우에 대한 설명 글입니다 Navigation between modules in iOS | by Raul Illan

> 젯팩 컴포즈와 비교하는 글인데 가볍게 읽어볼 만 합니다 SwiftUI and Jetpack Compose for Developers | Kt. Academy

> How to use TipKit to create tool tips in SwiftUI

# 뷰 프로그래밍 : UIKit

> 이전에 파트1을 소개한 적 있습니다. 후속편으로 UIKit 기반 앱을 SwiftUI로 어떤 부분을 고치고 있는지 설명합니다 Refactoring UIKit Storyboards monolith to SwiftUI: Part 2 | by Ignas Pileckas

> iOS 13부터 17까지 변화에 대해 정리한 문서라서 좋습니다. 좀 더 상세한 내용을 애플 문서나 다른 곳으로 링크해줬으면 좋았을 것 같네요 What’s Changed in UIKit: iOS 13–17 | by Ege Sucu

# Vision Pro / visionOS

> 🇰🇷 본격적으로 비전 프로 이야기를 하기 전에 여전히 맥 개발을 꿈꾸는 올드보이 관점에서 애플 제품과 개발 환경의 변화를 이야기하고 싶습니다. 비전 프로가 어떤 의미가 있는지 다양한 관점에서 살펴보는 시리즈를 작성중입니다. 그 첫 번째편은 Get Ready입니다 올드보이 개발자가 쓴 비전 프로 시리즈#1 - Get Ready | by Jung Kim

> 💎 두 시간 정도 투자해서 기존 SwiftUI 앱을 visionOS 용으로 포팅한 경험을 설명합니다. 물론 대부분은 호환성을 가지기 때문에 그대로 옮길 수 있지만, 우선 아이콘은 새로 만들어야 하고 윈도우 배경색 없애야 하고 레이아웃 시스템과 시야각을 확인해서 시야를 분산시키지 않아야 합니다. 그럴려면 색상도 바꿔야 하고 ... 잠깐만요 2시간이요?! Migrating my SwiftUI App to VisionOS in 2 Hours | by Cihat Gündüz

> 지난 호에서 영국으로 비전 프로를 공수했던 그 분의 2주 체험기가 올라왔네요. 맥을 15인치 정도 화면에서 탈출 시키는 느낌을 잘 설명해줬네요 2 Weeks In: Is Apple Vision Pro Worth It? | by Mark Ellis

> 이제 정식 출시 후 1달 사용기가 올라오는데요. 그 사이에 엄청 새로운 게 있다기 보다는 각자 새로운 앱을 사용하면서 경험을 공유해주는 것 같습니다. First Month With Apple Vision Pro | by Jakub Jirak

> 비전 프로 앱 스토어에 들어가보면 막상 구매할 만한 앱이 별로 없습니다. 그래서 체험해보고 나서 활용처를 찾지 못한다는 리뷰를 많이 보셨을 겁니다. 그럼에도 저자는 앞으로 긍정적인 부분이 많다고 얘기합니다. 공식 유투브 앱이 없어서 Juno YouTube 앱이 엄청 선점하고 있는 것도 가능성을 보여준다고 할 수 있죠 How Silently Building Apple Vision Pro Apps Can Make You Miserably Wealthy | by Jano le Roux

> (전맹은 아니고) 시각 장애를 가진 분의 비전 프로 사용기입니다. 비전 프로의 접근성이 꽤 쓸만한가 봅니다. 하지만 눈동자로 메뉴나 커서를 옮기는 것이 단지 저시력 문제는 아닌 것 같다고 합니다. 타이핑 어려움은 정말정말 공감합니다 I Have a Vision Disability — Here’s My Early Review of Apple Vision Pro | by Rebecca Rosenberg

> 이 분이 반품한 것도 아니고 SNS에서 반품한 사람들의 의견을 모아놓은 글입니다. 여전히 만족스러운 앱이 없어서 할 게 없더라. 무거워서 쓰고 있기 불편하더라. 눈이 아플 정도였다. 카메라 API도 막혀있고, 아이폰 잠금 해제조차 못했다 I Returned My Apple Vision Pro. | by Derick David

> 이제 visionOS 에서 개발하는 상세한 경험들이 공유되기 시작했네요. Volume 기반 윈도우 앱을 만들면 3차원 모델 영역이 잘리는 버그가 있다고 하네요. visionOS 1.0은 좀 성급했던 것 같기도 합니다 If you’ve created a visionOS app with a volume, you probably did it wrong

> 비전 프로용 앱을 만들려면 가장 먼저 고려할 것 중에 하나는 윈도우를 유리 느낌을 주도록 배경색을 빼는 겁니다. 아이폰에서는 대부분 검정색으로 뒤에 가려져 있었지만 비전 프로에서는 윈도우의 존재감이 상당합니다. Shattered Glass: Customizing Windows in visionOS | overdesigned blog

> 아직까지는 연결성이 부족하다는 것에 공감되는 글입니다. 아이폰이나 워치와 연결성이 생긴다면 앞으로 사용성은 엄청 좋아질 것 같습니다 Vision Pro Connectivity • Buttondown

# 프레임워크

> PIP 구현을 위한 치트시트를 기록해주었네요 Picture in Picture Cheat Sheet (iOS) – Tiago Lopes

> Core NFC 기반 앱을 만드는 과정을 설명합니다. 이번 17.4부터는 EU에서 NFC 결제도 열렸다는 소식이 있습니다. 과연 한국에서 버스카드를 사용할 날이 언제 올까요 Unlocking the Potential of NFC in iOS Apps | by Raviraj Wadhwa


# 개발 환경

> 💎 2FA 관련 앱을 만들고 출시전에 인스트루먼츠로 성능 최적화하는 과정을 상세하게 보여줍니다. Time Profiler를 통해서 동작 시간이 오래 걸리는 부분을 찾아서 최적화하는 과정을 설명합니다. 무조건 스레드를 다 쓰는 병렬처리보다는 적절하게 동시에 처리하는 게 중요하다는 것을 이해할 수 있었습니다 High Performance Swift Apps - by Jacob Bartlett

> 클린 빌드 40분 걸리는 것을 5분 이내로 줄였다고 하네요. 이 정도면 상당한 변화인데요, 엄청 상세하지는 않지만 어떻게 가능했는 지 살펴보시죠. 그래도 Xcode 기능이 점점 최적화를 도와주는 쪽으로 발전하고 있어서 다행입니다 How We Reduced Our iOS App Build Time by 90% | by Puneet

> 빌드 환경을 개선하기 위해서 모듈로 나누고 오히려 빌드가 느려졌지만 장기적으로 Tuist와 Bazel 로 빌드하면서 캐싱 전략을 활용하는 과정을 설명합니다. 그냥 저 상태로 두면 더 나쁜 선택이었겠지만 다음을 생각하는 부분이 인상적이네요 Scaling iOS at Bumble: Part 2/3 — The Assessment | by Jonathan Crooke

> 사용하는 서드파티 라이브러리 목록으로 셋팅 번들을 생성하는 방법을 소개합니다. swift-package-list라는 오픈소스 도구가 있군요! Third-party libraries acknowledgments using a Settings bundle

# 도구/오픈소스 
> 💎 동시성을 다루는 데 있어서 여러 문제 상황에서 실질적인 해결 방법을 코드와 함께 모아놓은 저장소입니다 mattmassicotte/ConcurrencyRecipes: Practical solutions to problems with Swift Concurrency

# 디자인 

> 아이패드 대시보드 디자인을 보니까 구현해보고 싶다는 상상을 해봤습니다. 막상 일로 하면 재미없겠죠? Abstract and Chart-based Dashboard UI Design Ideas | TMDesign

> 이 분 특이하네요. 에어팟 설정 부분이 앱으로 있다면 어떤 느낌일까요? AirPods Deserve an App, so I Made (Designed) One! | by Clark

> iOS 7 이후에도 여전히 사실적인 버튼(또는 그 어떤 컨트롤)이 필요한 경우도 있다는 데는 동의합니다. 점점 드물게도 그게 의미가 있을 수도 있죠 Sometimes, a Button Just Wants to Look Like a Button

> 웹과 데스크톱 앱을 비교하는 글입니다. 가볍게 읽기 좋은데 좀 길긴하네요 Web vs Desktop Applications: Key Differences Explained | TMDesign

> Flat and Professional Mobile UI Design Examples | TMDesign

> Fresh and Minimalist App Designs | TMDesign

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