iOS/Swift 소식을 전해드립니다 💁
레츠스위프트 뉴스레터  제77호 2023년 4월 9일
풍성한 iOS / Swift 관련 소식을 모은 뉴스레터가 도착했습니다. 
iOS 16.4 업데이트도 되고, WWDC 소식도 올라왔네요. 올해도 작년처럼 첫날만 애플파크에 일부를 초대하고 나머지는 모두 영상으로 만들어져서 온라인에서 진행된다고 합니다. 저도 가고 싶지만 갈 수가 없는 행사가 되어버렸네요 흑흑 
하지만 WWDC에 가지 못해서 아쉬워 할 이유가 조금 줄어들 것 같습니다. 바로 KWDC가 준비중이거든요. KWDC 이름에서 느낌 오시죠? 7월 18일 장소가 정해졌고, 다음 뉴스레터에서 더 상세한 정보를 공개하도록 하겠습니다 😎

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

> 4월 25일부터 iOS, iPadOS, watchOS 앱을 제출할 때는 Xcode 14.1 이상으로 빌드해야 한다는 강제 사항입니다. 강제하는 데 숨겨진(?) 기술적인 이유가 있을 것 같은데 뭔지 모르겠네요 ㅎㅎ App Store submission requirement starts April 25 - Latest News - Apple Developer

# 하드웨어

> Reality Pro에 대한 루머입니다. 과연 올해 WWDC에서는 소개를 할까요? Apple’s “Reality Pro”!. Coming Out In June! | by Youssef Mohamed

> iPhone 15에 대한 루머인데 항상 그렇듯이 나와봐야 알겠죠 ㅎㅎ The iPhone 15 Specs & Features!. Apple is Killing The iPhone!! | by Youssef Mohamed


# 일반

> 파일 앱의 숨겨진 기능들! 10 Hidden Features of the iOS Files App You Have Been Missing | by The Useful Tech

> Stable Diffusion을 자기 사진으로 파인튜닝해서 deforum을 활용해서 밈 영상으로 diffused 하는 과정을 설명합니다. 모델들이 많아지면서 다양한 사례가 나오고 있는데 윤리적으로 선을 넘지는 말아야겠습니다 Creating Personalized Animated Memes Using Fine-tuned Text-to-image Models | by berkanz

> 여전히 ChatGPT 사례가 공유되는 데, 정확하게 드러맞지 않는 부분들이 있을 수 있으니 위험하다는 글입니다 The hidden dangers of ChatGPT in iOS development | by Evgenii Shishko

> Freeform 앱을 까는(?) 글입니다. 많이들 써보고 계신가요? Why Apple’s Newest App Sucks. It comes down to one key mistake | by Adi Kakarla

> The macOS Ventura 13.3 Update Is Much Bigger Than We’ve Expected — 11 Amazing Features! | by Nikhil Vemu


# 스위프트

> 💎 드디어 Swift 5.8이 공식 릴리스됐습니다. 이제 스위프트 6로 넘어갈 마지막 단계인가 봅니다 Swift.org - Swift 5.8 Released!

> 💎 동시성 모델에서 지원하는 Actor 모델에 대해 초기에 제안했던 Carl Hewitt 박사의 개념부터 설명하는 글입니다. 예전 영상도 있어서 관심있게 봤습니다 Introduction to Actors in Swift: Origins and Background | by Tornike Gomareli

> 운영체제 수준에서 동시성, 프로세스와 스레드 등을 설명하는 글이네요 (엄청 상세하지는 않습니다) Concurrency, processes, threads, and everything else | by José Victor Pereira Costa

> 콜랙션을 활용해서 그룹을 연결하거나 정렬하는 방식을 소개합니다. Dictionary(grouping:, by:)는 저도 써본 적이 별로 없었네요 Group and sort Swift collections like a pro | Daniel Saidi

> 이 정도 예외상황을 안전하게 어떻게 처리하느냐 고민은 드물지만 필요할 때가 있죠 (굳이 저렇게 해야하나 싶긴 하지만요ㅎㅎ) Handle varying DataType in Codable | by Nalinee

> SwiftUI 때문에 도입된 방식이지만 생각해볼 부분이 좀 있는 기능이죠 How to Use Opaque Types in Swift for More Flexible and Reusable Code | by Mark Moeykens

> 정규표현식 빌더를 활용하는 다양한 예시를 보여줍니다 Regex Builder Swift iOS 16 | by Daniel Slone

> JSON 디코딩할 때 꼭 struct로만 해야 하는건 아니죠! Use an Enum to Decode JSON in Swift | by Steven Curtis

> How to change JSON keys by using Swift's CodingKey protocol


# 설계 구조 : 패턴

> 💎 미래에 어떤 요구사항 변화가 있을지 모르지만, 모든 것을 고려해서 설계하고 구현할 필요는 없죠. 어디까지 계층을 나누고, 어디까지 추상화해서 분리할 것인가 늘 고민하게 되죠. 당장 필요없으면 안해도 되는거 아닐까요 The What If Architecture | AzamSharp

> 이 분 까칠한(?) 스타일 글을 재밌게 읽고 있는데요, 클린 아키텍처에 관심을 갖다보면 극단적인 4가지 성향이 나온다고 하네요. 어떤 도구나 방식이든지 잘못쓰면 독이 되기 마련이니까요 Everything is business logic | by Jim Lai

> SOLID 예제를 정리해준 전형적인 글입니다. 예제가 짧고 한정적이라서 저런 방식이 전부를 의미하는 것은 아니기 때문에 조금 아쉽습니다 Implementing SOLID principles in Swift | by Orfeas Iliopoulos

> 멀티 태넌트 앱을 만들면서 구조적인 문제를 해결하는 과정을 정리한 글입니다. 코드가 꽤 많은데 전체적인 아키텍처를 설명하는 부분이 없어서 복잡하게 느껴질 수 있습니다. MVVM-with Coordinator and Builder Pattern and Dependency Injection in Swift | by vinayak thite

> 스위프트 개발자가 코파일럿을 활용하기 좋은 방법을 정리했네요. 다국어나 정규표현식에서도 활용이 가능하겠네요 Mastering GitHub Copilot: Tips and Tricks for Swift Developers | by Steven Curtis

> 기존 앱을 TCA 구조로 일주일 정도 걸려서 마이그레이션한 과정을 상세하게 설명해줍니다. Migrating to The Composable Architecture (TCA) 1.0 | by Cihat Gündüz

> 오늘 유난히 아키텍처 글들이 많네요. SwiftUI가 ViewModel 이냐라고 물어봤나 본데 저도 SwiftUI는 뷰 자체라고 생각합니다 The Many Flavors of Unidirectional Architectures in Swift | by Luis Recuenco

> Implement Coordinator Pattern to Handle Your App Flow— iOS | Swift

> iOS MVC Isn’t Bad Architecture | by Artiom Khalilyaev


# 뷰 프로그래밍 : UIKit

> 💎 뷰 계층을 더 깔끔하고 다루기 쉽도록 만드는 팁 5 Tips For A Cleaner and More Maintainable View Layer in iOS Apps | by Artiom Khalilyaev

> UIKit 뷰를 만드는 API도 선언형 방식이 가능하도록 도와주는 UIContentConfiguration 설명입니다 Using UIHostingConfiguration Without Cell Views – hemi.dev –

# 프레임워크

> Combine 내용 중에 퍼브리셔 프로토콜과 관련된 내용을 주로 설명합니다 Combine — Publishers | by DevTechie

> Using Critical Alerts in iOS applications - Igor Kulman


# 개발 환경

> 💎 SPM 모듈들 정리하는 과정을 설명해줍니다 2,000 Imports: Organizing My Apps’ SwiftPM Modules | by Cihat Gündüz

> 깃헙 액션에서 Swift CLI 명령을 써서 자동화하는 방식에 대한 설명입니다 Automating Swift command line tool releases with GitHub Actions

> Xcode cloud에서 제공하는 웹훅을 연동하기 위한 방식입니다 Collecting Xcode Cloud metrics using webhooks

> 터미널 명령들 중에 조합해서 사용할 때 헷갈릴 때가 있는데 잘 정리가 되어 있네요 Unix/Linux Command Combinations That Every Developer Should Know | by Shalitha Suranga

> 와 Swift Package Index 프로젝트에 애플이 공식적으로 스폰서를 해준다고 하네요 Welcoming Apple as a supporter of the Swift Package Index–Swift Package Index Blog

> -why_load 링커 옵션으로 앱 바이너리 사이즈를 줄일 수 있는 방법에 대한 설명입니다 Reducing iOS app size using linker and why_load | Asif

> Location Simulation in Xcode's Simulator - SwiftLee

# 테스트

> 비동기 코드는 테스트 코드도 타이밍을 가정해야해서 더 복잡해지죠. 예제 코드로 좋습니다 Unit Testing MVVM, SwiftUI, Async/Await, and Combine | by Di Nerd

> XCTest 로 UI 테스트를 하려고 할 때 액티비티나 첨부하는 과정을 설명합니다 Activities and attachments in the XCTest framework | Swift with Majid

> SwiftUI로 만든 View라고 해도 테스트할 코드를 분리하자는 의견에 찬성합니다 How to Unit Test a View in SwiftUI? | by Catalin Patrascu

> 맥용 네트워크 익스텐션을 만들어서 디버깅하는 방식을 소개합니다 Network Extension Debugging on macOS - SwiftLee

> 테스트할 때 타입 캐스팅을 많이 해야 할 때 간단한 extension으로 편리하게 다루자는 얘기입니다 XCTCast · paul-samuels.com

# 도구/오픈소스 

> 💎 페이스북(이제 메타?)에서 공개한 확장 가능한 텍스트 편집기와 렌더러 오픈소스입니다 facebook/lexical-ios

> 💎 스위프트로 밑바닥부터 웹 브라우저를 새로 만드는 작업을 하고 있네요. 저장소도 공개되어 있으니까 구경해보시죠 Writing a Web Browser from scratch in Swift by Jason Brennan

> Swift 새로운 기능에 #매크로 기능이 추가될 예정입니다. 매크로 기능을 활용해서 하나의 #powerAssert 구문으로 테스트용 여러 Assert 구문을 대체할 수 있는 아이디어를 구현했네요. 아직 실험적인 초기 구현이지만 편의성 측면에서 효과가 있을 것 같습니다 Introducing Swift Power Assert - Community Showcase - Swift Forums

> 와 이거 흥미롭네요. 스위프트 코드를 보고 GPT API로 DocC 문서를 빌드하는 프로젝트입니다. 이제 개발자 문서도 GPT가 쓰는 시대! gonzalonunez/docc-gpt: 🧹 Self-documenting Swift code with GPT and DocC


# 디자인 

> 💎 이 글은 개발과 관련이 없지만 자전거 타는 것을 표현하기 위한 거의 모든 것을 설명하는 글입니다. 엄청나게 디테일합니다! 글 다 읽지 않고 그림만 봐도 이해가 쏙쏙 됩니다 Bicycle – Bartosz Ciechanowski

> 💎 애플이 인수했던 Dark Sky 앱 화면을 설명해주는 글입니다 A Eulogy for Dark Sky, a Data Visualization Masterpiece

> App Design Inspiration 102 | UI UX Designing Company

> App Development Inspiration 169 | Web and Mobile Agency

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