iOS/Swift 소식을 전해드립니다 💁
레츠스위프트 뉴스레터  제61호 2022년 8월 14일
한여름이 되니 비가 엄청 많이 내리고 있네요. 다들 비피해는 없으신지 안부를 남겨봅니다.
애플 가을 이벤트가 한 달 정도 남은 상태라서 새로운 루머보다는 가격이 비싸질 꺼라는 걱정들이 많은 것 같습니다. iOS 16에서 새로 추가된 것들보다 iOS 13부터 변화가 이제 슬슬 적용이 가능한 시점이 되어 가는 것 같습니다. 올 하반기는 또 어떤 일들이 기다리고 있을까 기대됩니다. 
풍성한 iOS / Swift 관련 소식을 모은 뉴스레터가 도착했습니다.

매월 둘째, 넷째주 일요일에 뉴스레터를 발행하고 있습니다. 
누구나 함께하는 뉴스레터 저장소 👉 만약 링크가 깨지는 경우는 저장소 이슈에서 확인하실 수 있습니다.
+ 뉴스레터 발생을 위한 깃헙 스폰서십이 열렸습니다. 후원해주시는 분들 감사합니다 🙏
메일링 리스트 가입은 >가입하기 링크< 주변에 소개해주세요 🤩
주제/분류별 소식들
국/해외 소식들을 비슷한 주제들이 많아서, 다음과 같이 묶어서 정리합니다.
# 애플

> 여성, 흑인 및 히스패닉/라틴계 창업자 대상 캠프를 진행한다고 합니다. 국내에서는 여성이 창업한 경우 대상이 된다고 하네요 Apple Entrepreneur Camp applications open for female, Black, and Hispanic/Latinx founders - Latest News - Apple Developer

> 라이브 액티비티 개발이 가능해졌습니다 Live Activities now available in beta - Latest News - Apple Developer

# 하드웨어

> 에어태그 다섯가지 숨겨진 트릭이라고 합니다. 아참 저도 차 키에 달아놓은 에어태그 배터리 교체해야겠네요 5 secret AirTag tricks you Didn’t know it’s capable Of | by Nikhil Vemu

> 과연 AR/VR 헤드셋은 언제 나올까요. 기술적으로 풀어야 할 한계가 남아있긴 하지만 루머가 꽤 오래된 것 같습니다 Apple’s 2022 Mixed-Reality Headset | by Youssef Mohamed


# 일반

> 💎 4 곳 뿐이지만 애플 스토어와 현재를 비교해주는 사이트네요 The Apple Store Time Machine

> M1 맥에서 유료로 바뀐 도커 데스크톱 대체제가 뭐가 있나 Docker Desktop Alternatives for M1 Mac | by Alex Moss

> After Steve 라는 책을 읽고 시각적인 요소와 함께 정리한 글입니다 What I learnt about Apple in 8 visuals by reading ‘After Steve’ | by Steffan Morris Hernandez

> 개인 개발자들 인터뷰해서 모아놓은 사이트 Indie Dev Monday | Bite sized newsletter spotlighting indie devs

> 카본을 비교해주는 글 Object-Oriented Carbon, C++ and Go Compared | by Erik Engheim

> React Native vs Swift: Which One to Choose for iOS Development? | by Linearloop

The iOS App Development Process. Software Development! | by Steven Curtis


# 스위프트

> 💎 iOS 앱 성능을 개선시켜주는 몇 가지 방식들 Few ways of improving your iOS APP performance in Swift (2) | by Gordon Feng

> 💎 포인트-프리에서 TCA 구조를 소개한지 벌써 2년이 지났다고 하네요. Structured Concurrency 도구를 활용해서 Async 구조로 개선했다고 합니다 Async Composable Architecture

> 💎 이모지 func 💾(_ data: 📜) -> 👌 코드 한 번 맛보시죠. Can You Code in Swift Using Emojis-Style? | by Catalin Patrascu

> 데이터 레이스 문제를 해결하기 위한 액터 모델에 대한 설명입니다. Apple’s new solution for Data races: Actors | by Dounia Belannab

> <> 오퍼레이터를 만들어서 아이패드/아이폰 유니버설 앱 파편화 대응하는 방법이네요. Custom Operator for Building a Universal Apple App | by Nikhil Vinod

> Xcode에 UML을 그려주는 확장 도구를 사용해서 코드를 분석하는 방식을 설명합니다 Understanding Swift Code Using Diagrams | by i.vikas

Conditionally searchable SwiftUI views | Daniel Saidi

Method Dispatch in Swift Protocols and Inheritance | by Steven Curtis

PITFALL: Beware of retain cycle when passing a func as a closure parameter | @samwize

Sendable and @Sendable closures explained with code examples

Swift.org - Swift Extension for Visual Studio Code

Swift: Enums. Reflection.. Events. In product analytics. | by Sergey Leschev


# 설계 구조 : 패턴

> 🇰🇷 iOS 앱 구조가 커지면서 점차 구조적으로 모듈화를 고민하는 회사들 사례가 많아지고 있습니다 iOS Modular Architecture 를 향한 여정 Part 1 — XcodeGen 도입과 모듈화의 시작 | by Wooseong Kim

> iOS 앱 아키텍처를 고르는 가이드 Choosing an Architecture: The iOS Guide | by Steven Curtis

> MVVM 아키텍처를 팝스타와 매니저 관계로 설명하는 예제입니다 Here’s a Pop Star Analogy To Deduce MVVM Architectures | by Ricardo Montemayor

Relational Core Data with MVVM in iOS App | Medium

SOLID Principles for Swift | by Mehmet Ateş


# 뷰 프로그래밍 : SwiftUI

> 💎 iOS 16 베타4부터 라이브 액티비티를 개발이 가능해졌습니다. 그 경험담이 올라왔네요 Experimenting with Live Activities – Ole Begemann

> 💎 SwifUI에서 NavigationLink 대신 NavigationStack으로 Flow 내비게이션 방식으로 동작하도록 구현하는 예시입니다 Flow Navigation With SwiftUI 4 | by Nick McConnell

> 라이브 액티비티 위젯을 만드는 과정을 설명한 글입니다 How to: Create Live Activities Widget for iOS 16 | by MING

Adjust the direction of focus-based navigation in SwiftUI

Content transition in SwiftUI | Swift with Majid

Create Custom View Modifiers in SwiftUI | by Ricardo Montemayor

Create a Custom WeekView in SwiftUI | by Jonathan Andryana

Creating a 3D Tic-Tac-Toe in SceneKit Under SwiftUI | by Mark Lucking

Eager Grids with SwiftUI - The SwiftUI Lab

Exploring SwiftUI Layout protocol | Creating custom layout

Hide keyboard when scrolling in SwiftUI with scrollDismissesKeyboard | Sarunw

How to Use UIKit/AppKit/WatchKit Components in SwiftUI: A QuickNote | by Darshit Shah

How to add a logo in SwiftUI navigation bar / toolbar? | by StephenSwift

Method Dispatch in Swift. Introduction | by Ilichev Danil

Navigation Bar is not hidden when using UIHostingController | by Nicolò Pasini

Removing the iOS home indicator in SwiftUI | Daniel Saidi

SwiftUI Navigation Is a Mess. Here’s What You Can Do | Better Programming

TabView in SwiftUI | by DevTechie

The Coordinator pattern in SwiftUI | Better Programming

UILabel with HTML tags in UIKit and SwiftUI | by Max Kalik

View Is The View Model | AzamSharp

ViewThatFits in SwiftUI | Swift with Majid

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

> 푸시를 보낼 때 payload에 따라 어떻게 달라지는 지 설명해주는 예시입니다 Advanced version of push notification Part2 | by Achsuthan Mahendran

> 💎 복잡한 URL 요청들을 구조화해서 재사용성을 높였다고 합니다 Building a reusable system for complex URL requests with Swift | by Oleg Dreyman

> 💎 올해는 스몰토크 50주년입니다. 몇 가지 예전 소식과 함께 50주년 기념 행사 소식도 포함되어 있습니다. 스몰토크로 sUnit을 만들었던 켄트 벡도 참가했네요! Celebrating 50 Years of Smalltalk | by Richard Kenneth Eng

Managing Images Programmatically with Cloudinary — iOS | by Adi Mizrahi

Shaders Explained: Gradients | MTLDoc

Shared with You implementation and testing explained - SwiftLee


# 개발 환경

> 🇰🇷 컨테이너 무결성을 확인하기 위해서 프레임워크 바이너리 심볼을 분석하는 방식을 도전해보셨네요 민소네님 블로그 Dependency Injection (2) - 컨테이너 무결성 보장해 보기

> 💎 애플 인증서와 코드 사이닝 공증 절차를 Rust 오픈소스로 구현했다고 합니다 Achieving A Completely Open Source Implementation of Apple Code Signing and Notarization

> 💎 스위프트 패키지 플러그인을 개발하는 과정을 설명해주고 있습니다 Five Tips for Swift Package Plugin Development

> 스위프트 패키지 매니저에서 의존성을 선언하는 방식에 대한 설명입니다 Advances in Swift Package Manager's dependency access control

> 스위프트 패키지 매니저 명령들에서 자동완성을 도와주는 zsh 관련 스크립트에 대한 설명입니다. Autocompletion for Swift Package Manager Commands

How to setup CI/CD for iOS with Github Actions and Fastlane | by Tim Dolenko

Implementing a main thread watchdog on iOS · Jesse Squires

# 도구/오픈소스 

> URL 안정성을 컴파일 타임에 확인해주는 오픈소스입니다 baguio/SwiftSafeURL: Compile-time-checked URLs

> po 명령어가 retain을 시켜서 디버깅 중에 메모리 누수가 생길 수 있다고 대체 명령 spo를 만든 오픈소스입니다 kastiglione/swift_po: Substitute po for Swift

> ISO8601 날짜 콤포넌트와 포맷터를 다루는 오픈소스입니다 kkla320/ISO8601DurationFormatter: A formatter for converting ISO8601 durations to DateComponents.


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