iOS/Swift 소식을 전해드립니다 💁
레츠스위프트 뉴스레터  제87호 2023년 9월 24일
풍성한 가을 추석을 앞두고 티타늄으로 단단해진(?) iOS / Swift 관련 소식을 모은 뉴스레터가 도착했습니다.
지난 9월 애플 이벤트에서는 애플워치와 아이폰 15, 프로 계열을 출시했습니다. 한국은 여전히 다음달폰이지만요! 새로 적용된 티타늄 소재와 색상에 대해서는 호불호가 갈리는 것 같네요. 저는 14 프로 맥스를 트레이드하고 15 프로 맥스로 바꾸는 것을 고려하고 있습니다. 교체 주기를 더 늘리는 분들도 계신 것 같지만 그래도 잘 팔릴 것 같습니다
매월 둘째, 넷째주 일요일에 뉴스레터를 발행하고 있습니다. 
누구나 함께하는 뉴스레터 저장소 👉 만약 링크가 깨지는 경우는 저장소 이슈에서 확인하실 수 있습니다.
메일링 리스트 가입은 >가입하기 링크< 주변에 소개해주세요 🤩

엊그제 레츠스위프트 2023 티켓팅이 시작되서 홍보하려고 했는데 이럴수가! 여유있게 준비한 티켓이 48시간만에 거의 매진되었네요! 아직 기회가 남았으니 고민중이신 분들은 서두르셔야 할 것 같네요.
작년 행사한 지 벌써 1년이 지났다는 것도 믿기 어려운 데 얼마 남지 않았네요. 요즘 행사 준비를 하느냐고 준비위원회분들 매주 야근하고 계십니다. 어제 연사자분들 준비 모임도 끝났고 든든하고 기대됩니다 ㅎㅎ
저도 딥다이브를 위한 주제를 하나 발표할 수 있는 기회가 생겼으니 꼼꼼하게 다이빙을 준비해보겠습니다! 😎
주제/분류별 소식들
국/해외 소식들을 비슷한 주제들이 많아서, 다음과 같이 묶어서 정리합니다.
# 애플
# 하드웨어

> 애플 이벤트에 대한 까칠한(?) 버전의 글입니다. 혁신은 없다 외국 버전이랄까요 ㅎㅎ No Lust In Wonderlust | by Attila Vágó

> 아이폰 15가 출시되기 직전에 아이폰 14 프로와 맥스가 배터리 성능이 빨리 떨어진다는 기사가 있었죠. 배터리는 결국 충전횟수가 정해져 있다보니 한계가 있을수 밖에 없죠. 이와 관련된 글입니다 There Is No “Batterygate”, Just Poorly Educated Apple Users | by Attila Vágó

> 아이폰 15 계열의 세세한 화면 크기 정보를 알려주는 글입니다 iPhone 15 Screen Sizes

> 아이폰 15 프로 맥스와 픽셀 8 프로를 비교하는 글입니다. 아주 상세한 스펙 비교라기 보다는 주요 특징을 비교하고 있습니다 iPhone 15 vs. Pixel 8 Pro | by David Lewis


# 일반

> 애플 이벤트가 끝나고 iOS 17 정식 버전이 업데이트됐습니다. 새로운 기능들 써보고 계신가요? NameDrop 과 함께 AirDrop 효과가 재밌게 바뀌었더군요! 8 Exciting New iOS 17 Features I Would Probably Never Use | by The Useful Tech

> 얼마전에 Turbo 8 오픈소스 커뮤니티에서 모 유명(?) 개발자가 타입스크립트 코드를 제거한 PR을 후다닥 머지해서 논란이 된 사례가 있었습니다. 찬반 토론이 격렬하게 진행중입니다. Contributors Angry After Turbo 8 Suddenly Drops Typescript | by Tom Smykowski

> 터미널 명령으로 뭔가 확인해야 하는 경우가 종종 있는데요, 유용하게 써먹을 수 있으실 것 같습니다 Dive Deep into Your macOS: Terminal Commands You Didn’t Know You Needed | by Pedro Q Neves

> Stage Manager가 본격적으로 활용되기 시작하면서 아이패드가 맥과 더 가까워졌죠. 11월이나 내년초에 새로운 아이패드 프로 출시가 있지 않을까 예상해봅니다 Stage Manager on iPadOS 17: the iPad Isn’t Just a Big iPhone Any More | by Will J Murphy

> 테스트에 대한 일반적인 글입니다. 단위 테스트는 단지 검증이 아니라 설계와 구현에 대한 변화를 확인하기 위한 센서로 보자는 글입니다. Unit Tests Aren’t Tests, They’re Sensors | by Sam Cooper


# 스위프트

> 이 블로그는 아주 간단한 팁들을 모아서 보여줍니다. 이번에 소개한 글은 중첩한 클로저에서 weak self는 조심해야한다는 내용입니다 Bad practice: capturing self in a nested closure — Swift with Vincent

> Xcode 15와 함께 릴리스된 Swift 5.9에 포함된 변경 사항 중에서 noncopyable 에 대한 설명입니다. ~Copyable은 새롭게 적용된 Ownership 과 관련이 있으니 같이 살펴보시는 것을 추천드립니다 Demystifying NonCopyable Type | by Reshma Unnikrishnan

> 저도 아직까지 액터를 막 쉽게 떠올려서 사용하지 못하고 있는데요, 글로벌 액터와 메인 액터에 대해 설명합니다 How to use Swift @MainActor and @globalActor | by Bassem Qoulta

> Swift 5.9에 추가된 if와 switch 표현식에 대한 상세한 설명입니다. 이제 구문으로 비교식을 작성하거나 삼항 연산자 표현식에서 벗어나서 다양한 표현이 가능해지겠네요 If and switch expressions in Swift - SwiftLee

> Xcode 15와 함께 출시된 Swift 5.9에 대한 공식 소개 글입니다. C++과 호환성도 높아지고 매크로로 언어 확장성이 높아진 게 특징이네요. 그 외에도 다양한 업데이트가 있으니 읽어보시길 추천드립니다. Swift 6로 넘어가기 전의 마지막 대규모 업데이트일 것 같습니다 Swift.org - Swift 5.9 Released


# 뷰 프로그래밍 : SwiftUI

> 입력 TextField에서 멀티라인을 처리하기 위한 방식을 소개합니다 Dismiss keyboard when return is pressed in a multiline SwiftUI TextField | Daniel Saidi

> 스위프트UI 뷰가 동작하는 방식에 대해 전반적으로 설명하는 글입니다. How SwiftUI View Works | by Sarathi Kannan

> 나이트 모드 개발을 위한 설명입니다 How to add Apple’s “Night Mode” to your SwiftUI Views | by Daniel Lyons

> Observation 프레임워크로 마이그레이션한 경험을 공유합니다 Migrating Ice Cubes to the SwiftUI Observation framework | by Thomas Ricouard

> 최근에 토스나 리멤버 앱에서도 시도되고 있는 서버-주도 UI (서버사이드 렌더링)에 대한 글입니다. 디자인 시스템이 잘 되어 있고, 비교적 정형화된 컨텐츠를 다루는 경우 서버에서 주는 데이터로 쉽게 렌더링할 수 있을 것 같네요 Server Driven UI with SwiftUI | by Yeskendir Salgara

> 위젯에서 컨테이너 백그라운드를 다루는 방법을 설명합니다. 위젯은 작은 공간이라 더 꼼꼼하게 챙겨야 하는 것 같습니다 Understanding Container Background for Widget in iOS 17 - Swift Senpai

> 에어비앤비 앱에서 SwiftUI를 도입한 과정을 설명합니다. 에어비앤비는 이미 디자인 시스템과 Epoxy라는 선언형 뷰 라이브러리가 있었는데, 이를 확장해서 구현했다고 하네요 Unlocking SwiftUI at Airbnb | by Bryn Bodayle

> App Intent driven development in Swift and SwiftUI - SwiftLee

> How to build an iOS Live Activity | by Marco Guerrieri

> SF Symbols Animation in SwiftUI | by Kelvin Tan

> Shimmer Effect in SwiftUI | by Kelvin Tan

> SwiftUI Custom Loading | by abraao nascimento

> Understanding Publishers in SwiftUI and Combine | by Mike Pesate

# 뷰 프로그래밍 : UIKit

> Swift 와 Objective-C를 번갈아서 설명하는 자료입니다. 에셋 카탈로그 심볼 관련된 내용을 설명합니다 Generated Asset Catalog Symbols in Objective-C | Swiftjective-C

> SwiftUI와 함께 사용할 때 UIViewRepresentable를 다룬 경험을 소개합니다 Working With UIViewRepresentable — Chris Eidhof

# 맥 개발과 AppKit

> Swift 와 Objective-C를 번갈아서 설명하는 자료입니다. 에셋 카탈로그 심볼 관련된 내용을 설명합니다 Generated Asset Catalog Symbols in Objective-C | Swiftjective-C

> SwiftUI와 함께 사용할 때 UIViewRepresentable를 다룬 경험을 소개합니다 Working With UIViewRepresentable — Chris Eidhof

# 프레임워크

> 코어 데이터 모델 선언부터 인스턴스 생성까지 흐름을 잘 설명해줍니다. SwiftData 때문에(?) Core Data 설명도 많아진 것 같네요 From Data Model to Managed Object in Core Data | Better Programming

> UserDefaults를 SwiftData로 마이그레이션한 과정을 설명합니다 Migrating a simple structure from UserDefault to SwiftData | by Thomas Ricouard

> TipKit에 대한 간단한 설명입니다. 앞으로 자주 사용하게 될 것 같네요 Style your TipKit Tips | Teabyte

# 개발 환경

> Core Data 내부 데이터 SQLite 파일을 탐색하도록 도와주는 Core Data Lab 유료 앱이 SwiftData DB도 지원하도록 나왔다고 합니다. 유료 버전이지만 코어 데이터를 활용하는 회사에서는 활용해보실 수 있을 것 같네요 Betamagic - Core Data Lab 2.4 - Public Beta

> 서버 사이드 워킹 그룹이 서버용 작업 저장소들을 분리했었는데, 이번에는 스위프트 툴체인을 배포할 수 있는 도구를 오픈소스로 시작했습니다. 이름은 swiftly 특정 버전 스위프트 툴체인을 관리할 수 있도록 도와줍니다 Introducing swiftly, a new Swift toolchain installer and manager - Community Showcase - Swift Forums

> Xcode 15에 포함된 내용들을 정리한 글입니다. 에디터도 바뀌고 프리뷰도 개선되고 테스트 리포트나 빌드 시스템까지 소소하게 추가된 기능이 많네요. XCode 15 Released: It’s An IDE You Won’t Sweat About | by Tom Smykowski

> Xcode 14부터 추가된 Build Timeline 기능을 사용해서 빌드 시간을 최적화하는 방법을 설명합니다. 이제 시각적으로 보고 빌드 과정을 최적화할 수 있는 방법을 써먹어 봐야겠습니다 Xcode Build Time Optimization, Xcode 14 | Medium

# 테스트

> 애플이 스위프트 매크로를 활용해서 테스트 프레임워크를 개선해서 새로운 방식으로 테스트를 개선한다고 합니다. 초기 버전의 저장소를 함께 공개했습니다 A New Approach to Testing in Swift - Evolution / Discussion - Swift Forums | 스위프트만의 테스트 프레임워크 저장소입니다 apple/swift-testing

> 포인트프리에서 만든 오픈소스 스냅샷 테스트 라이브러리에 inline 스냅샷이 추가됐다고 하네요. 테스트 코드에 JSON이나 HTTP Response 등을 inline으로 포함시켜준다고 합니다 Inline Snapshot Testing

# 도구/오픈소스 

> 아이패드 스위프트 플레이그라운드 앱 프로젝트에서 사용할 라이브러리 배포하는 도구를 오픈소스로 만드는 분입니다 In-App Libraries for Swift Playgrounds on iPad - Community Showcase - Swift Forums


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