iOS/Swift 소식을 전해드립니다 💁
레츠스위프트 뉴스레터  제85호 2023년 8월 27일
풍성한 iOS / Swift 관련 소식을 모은 뉴스레터가 도착했습니다.
요며칠 장염이 생겨서 거의 하루종일 작업하다가 이제야 정리가 끝났습니다. 소식이 아주 많지는 않은데 자잘한 것부터 묵직한 내용까지 다양하네요. 아마도 다음호쯤에는 애플 이벤트 날짜가 잡히지 않을까 싶네요. 다들 아이폰 15를 만날 준비가 되셨나요? 

매월 둘째, 넷째주 일요일에 뉴스레터를 발행하고 있습니다. 
누구나 함께하는 뉴스레터 저장소 👉 만약 링크가 깨지는 경우는 저장소 이슈에서 확인하실 수 있습니다.
메일링 리스트 가입은 >가입하기 링크< 주변에 소개해주세요 🤩
레츠스위프트 2023 연사자 모집
레츠스위프트 2023 컨퍼런스가 10월 13일 금요일에 열립니다. 준비위원회로 참여해 주신 분들이 불철주야 애써주고 계십니다. 이번 행사는 찐하게 깊이있게 개발 경험을 나누는 컨셉입니다. 딥 다이브 컨셉으로 공유해주실 연사자를 찾고 있습니다 👉 레츠스위프트 연사자 모집폼 링크
주제/분류별 소식들
국/해외 소식들을 비슷한 주제들이 많아서, 다음과 같이 묶어서 정리합니다.
# 애플
> iOS를 비롯한 새 운영체제들 베타 7까지 올라온 것 이외에 별다른 뉴스가 없네요 
# 하드웨어

> 이제 아이폰 15 이벤트가 얼마 남지 않은 것 같은데, 애플 실리콘 M3를 기대하는 글입니다 Apple M3 Chip 2023. A Big Jump To 3 nm! | by Youssef Mohamed

> 아이폰 15 루머들이 본격화되고 있습니다. 다들 총알 모으고 계신가요? 한국에는 10월말이나 되야 들어오지 않을까요 iPhone 15 — the very latest and some news you didn’t want to hear! | by David Lewis


# 일반

> 💎 2016년 글인데 타이포그래피와 관련된 내용이라 가져왔습니다. Type 4글자만 해도 폰트에 따라 잘릴 수도 있다고 하네요. 모바일 시대에서 당연하게 생각하는 것에서 시야를 벗어날 수 있는 글 같습니다 Typography is impossible | by Marcin Wichary

> 올해 초 자료입니다만 플러터, 리엑트 네이티브, 자마민 비교 자료라서 가져와봤습니다 Flutter vs. React Native vs. Xamarin | by Scott Hatfield

> iOS17부터 생기는 스탠바이 모드에 대한 소감 정도입니다. 가로 모드도 많이 쓰게 될 것 같아요 StandBy for iOS 17 | by M.G. Siegler

> 꼭 앱 얘기는 아니지만 월-일-년 순서 날짜 형식에 맞춰서 입력하는 것을 바꿔보자! 취지에 공감합니다. 앱이나 본인 인증 전화번호 입력할 때도 더 쉽고 편한 방법은 없는 걸까요 Stop Enforcing Date Format! It’s 2023! | by Tom Smykowski

> 학생에게 추천하는 애플 생태계 제품들 정도라고 볼 수 있겠네요. 대학생들은 학생 할인도 해주죠! The Best Apple Ecosystem for Students | by Skyler Thompson

> 충격적이고 자극적인 글이네요. 리눅스와 자유소프트웨어재단의 영향력, GPL의 공신력은 인정되지 않고 암적인 존재로 취급하는 게 불편합니다. 하지만 읽어볼만 합니다 Why The GPL Is A Cancer | by Andrew Zuo

> macOS 소노마 새 기능들에 대한 소개입니다 macOS Sonoma Overview: Everything You Need to Know | by appsntips


# 스위프트

> 경험을 바탕으로 코드 품질을 높이는 방법을 정리해줬네요. 당연한 것들 같지만 너무 짧게 요약되어 있어서 읽을 때는 좋은데 내 경우와 잘 맞나 고민하게 되네요 Mastering iOS Code Quality | by Mihail Salari

> guard 구문의 장점이죠 Bad practice: using if instead of guard — Swift with Vincent

> 이건 알고리즘 문제 풀이에 가깝지만 읽어볼 만 합니다 Floyd’s Cycle Detection Algorithm In Swift | by Steven Curtis

> os_unfair_lock을 사용해서 Thread Safe 처리하는 프로퍼티 래퍼를 만드는 게 인상적이네요. 이정도는 @atomic 래퍼를 제공해 줄만 한 것 같은데 말이죠 Mastering Thread Safety in Swift With One Runtime Trick | by Geor Kasapidi

> 서버 사이드 워킹 그룹 2023년 요약이 떴군요 Swift.org - SSWG 2023 Annual Update


# 설계 구조 : 패턴

> DI 시스템에 대한 회의적인 분석 글입니다. DI 파괴자를 모집한다고 하네요 ㅎㅎ The DI crashers. Let’s crash dependency injections | by Jim Lai


# 뷰 프로그래밍 : SwiftUI

> 💎 NeXTSTEP 시절부터 SwiftUI까지 애니메이션 API들을 비교해주는 글입니다. 이런 글 좋아요! Through the Ages: Apple Animation APIs | by Jacob Bartlett

> 💎 objc 에서 새로운 SwiftUI 책이 나오나봅니다. 예약 판매를 시작합니다 Thinking in SwiftUI · objc.io

> 맥용을 만들고 이미지 드래그 앤 드롭을 구현하고 있습니다 Delightful SwiftUI image drag & drop for a macOS app

> SwiftUI 리스트로 무한 스크롤을 구현했을 때, 데이터 변화에 대한 Publisher 최적화 설명입니다. SwiftUI.view에 binding한 published state 최적화가 꽤 중요하네요 From UIKit to SwiftUI: Navigating the Complexities of Infinite Scrolling | by Daniel Zhang

> SwiftUI Layout 프로토콜을 이용해서 유연한 뷰 이동을 구현한 예제입니다 How to Create a Flexible View With SwiftUI Layout | by Mina Azer

> StoreKit 2부터는 제품 화면이나 앱 스토어 내 인 앱 구매 뷰를 쉽게 만들 수 있도록 도와줍니다. 관련 기능을 살펴보세요 Mastering StoreKit 2. ProductView and StoreView in SwiftUI. | Swift with Majid

> 스크롤뷰 처리가 SwiftUI에서 가장 귀찮은 부분 중에 하나라고 생각하는 데 이렇게 까지 해야 하나 싶기도 하네요 ㅎㅎ Saveable scroll position in SwiftUI | by Maciej Rudnicki

> iOS17부터 추가되는 scrollPosition() modifier 예제입니다. 기억할 건 iOS17부터! Scroll Programmatically With SwiftUI ScrollView | by Sasha Myshkina

> FCM으로 푸시 보내고 SwiftUI로 테스트 하는 코드를 작성하는 예제입니다. 요즘은 Push Notification Console이 생겨서 직접 확인할 수 있는 방법이 추가되었습니다 SwiftUI Push Notifications with Firebase: A Step-by-Step Guide | by Muhammad Rezky Sulihin

> Creating Pie Charts and Donut Charts Using SwiftUI in iOS 17 | by Simon Ng

> Examples of animating SF symbols in SwiftUI – Augmented Code

> Glassmorphism in SwiftUI. Update your UI to the new Apple style | by Alessandro Manilii

> Mastering StackViews in Storyboard: Your Gateway to SwiftUI | by Abdul Karim Khan

> Round Specific Corners in iOS 17 & SwiftUI 5 using UnevenRoundedRectangle | by DevTechie

> SwiftUI — Property Wrappers | by Purva Ruparelia

> The Ideal TabView Behaviour With SwiftUI Navigation Stack | by Akshay Mahajan

# 뷰 프로그래밍 : UIKit

> UIKit으로 맥 앱을 만드는 맥 카탈리스트에 대한 가이드 문서입니다. 맥 앱 개발 환경을 늘려줄 것 같아서 개인적으로 관심이 많았었는데 SwiftUI에 밀려서 관심도가 떨어진 것 같아서 아쉽네요. 버그 리포팅해도 안 고쳐주더라구요 ㅜㅜ Essential Preparations for Embracing Mac Catalyst: A Must-Read Guide | by Afsanafarheen

> 스토리보드 재고하기. SwiftUI가 나온 이후에 스토리보드는 버려진 것처럼 얘기했던 것 같은데 Xib, 스토리보드도 분명 장점이 있는 것 같아요 Storyboard revisited | by Jim Lai

> Shared Initialization for AppDelegate and SceneDelegate | Stackademic

# AppKit

> 특이하게 AppKit과 SwiftUI 비교하는 글이네요. 다른 대안도 조금 나오는 데 결론은 새 API나 뷰 생상선은 SwiftUI가 장점이 있는 것 같습니다. 맥에서는 아직도 AppKit과 섞어쓸 수 밖에 없는 상황이 아닌가 싶네요 milen.me — AppKit vs SwiftUI: Stable vs Shiny


# Vision Pro

> 💎 이번부터 비전 프로와 비전 오에스 카테고리를 만들었습니다. 아무래도 구분하는 게 좋을 것 같네요. SwiftUI로 만들었던 앱을 비전 프로에 실행하고 개선하는 경험을 공유합니다 Adapting an App to visionOS - by Stuart Varrall


# 프레임워크
다양한 프레임워크를 다루는 예제를 소개하는 글들입니다. 

> 💎 URL은 꽤 다양한 정보를 포함합니다. 경로와 문자열 정보는 어떻게 다른지 설명해줍니다 Swift URL absoluteString versus path · Jesse Squires

> Firebase Storage인 Firestore를 combine으로 사용하는 방식입니다 Generic Repository for Firestore With Combine | by Victor

> 비슷한 예제가 한 번 씩 공유되는 것 같네요. GetStream SDK를 이용해서 클럽 하우스를 따라 만드는 예제입니다 How To Build iOS/SwiftUI Audio Chat Room App Like Club House or Twitter Spaces | by Amos Gyamfi

> Codable 모델을 다루는 SwiftData 설정 방법이네요 Making your SwiftData models Codable – Donny Wals

> SwiftData 총정리 느낌인데 아키텍처 관점에서 풀어서 설명합니다 SwiftData. The New Way (Architecture) Forward | by Siamak

> 지난 호에도 소개했던 팁킷에 대한 또 다른 글입니다 TipKit — Apple’s new framework to help discover features with ease. | by Rakshith N

> SwiftData Background Tasks


# 개발 환경

> 💎 조만간 앱에서 사용하는 특정 API들 왜 쓰는 지 알려야 한다고 하는데요, 해당 API가 어디서 사용되는지 찾는 쉘 스크립트를 만들었네요 How to check if you use a required reason API

> 💎 addTeardownBlock 을 이용해서 포인터가 남아 있는 경우 메모리 누수로 판단하자는 아이디어네요 How to Automate Memory Leak Detection with XCTest

> 💎 Xcode 14부터 빌드 과정을 분석할 수 있는 도구가 추가됐습니다. 빌드 과정을 시각화해서 보여주고 최적화할 포인트를 찾아줍니다 Build performance analysis for speeding up Xcode builds - SwiftLee

> 💎 SPM으로 모듈을 나눴다가 CocoaPods으로 옮기게 된 사연과 과정을 설명합니다 How moving from SPM to CocoaPods | by Ankur Kesharwani

> 다양한 개발 문서를 통합해서 저장하고 탐색을 도와주는 Dash가 7 새 버전이 나왔네요. 월1.25 유료로 구독 모델이라고 합니다 Dash 7: Now Available - Kapeli Blog

> Swinject로 의존성을 위한 앱 컨테이너를 관리하는 방식입니다 Efficient Dependency Management in iOS: Introducing AppContainer for MVP+DI architecture | by Mihail Salari

> Xcode 14 빌드 타임라인 기능으로 앱과 패키지 빌드 시간을 개선하는 방식을 설명합니다. 비슷한 글이 있으니 함께 살펴보시면 되겠네요 Improve the build times of your SPM Packages and your apps

> 스위프트 6 글인가 싶었는데, 새 기능을 써보기 위해서 엑스코드 프로젝트를 준비해놓자는 의미에 가깝습니다 Swift 6: Preparing your Xcode projects for the future - SwiftLee

> .Strings 대신에 String Catalog로 넘어가야 하는 시점이 됐나봅니다. 저도 아직 한 번도 써보지는 못했습니다 ㅎㅎ Xcode 15: Welcome String Catalogs | by Ege Sucu

> 브레이크포인트 뿐만 아니라 디버깅과 관련된 팁이 포함되어 있습니다 Xcode Breakpoints 101 | Stackademic

> 딱 푸시 보내는 과정을 정리한 글이네요 iOS app setup for remote push notifications

# 테스트

> 💎 async/await 으로 구현한 코드를 단위 테스트할 때 발생하는 문제들을 상세하게 설명해주는 글입니다. 지난 호에 소개했던 시리즈 글의 통합 버전인가 봅니다 Async Unit Testing in Swift | by Jacob Bartlett

# 도구/오픈소스 

> @Observable 매크로와 프로토콜로 변경해주는 Xcode 확장 도구입니다 Introducing ObservableConverter | Lickability


# 디자인 

> 💎 Lottie 파일을 디자인하고 생성할 수 있는 lottielab 웹 서비스가 시작했네요. 잠시 써봤는데 금방 익숙하게 쓸 수 있을꺼 같습니다 Lottielab | Create and Edit Lottie Animations

> App Design Inspiration 120 | Top UX Design Agency

> App Design Inspiration 121 | iPhone App Design Company

> App Development Inspiration 188 | IPhone Firm

> App Development Inspiration 190 | Android Firm

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