iOS/Swift 소식을 전해드립니다 💁
레츠스위프트 뉴스레터  제73호 2023년 2월 12일
풍성한 iOS / Swift 관련 소식을 모은 뉴스레터가 도착했습니다.
봄꽃이 금방 찾아올 것 같은 늦겨울 2월입니다. 주변에 졸업식 소식들이 하나둘 올라오고 있습니다. 
애플 공식 소식은 거의 없지만, 소소하게 흥미로운 소식들을 모아봤습니다. 

매월 둘째, 넷째주 일요일에 뉴스레터를 발행하고 있습니다. 
누구나 함께하는 뉴스레터 저장소 👉 만약 링크가 깨지는 경우는 저장소 이슈에서 확인하실 수 있습니다.
메일링 리스트 가입은 >가입하기 링크< 주변에 소개해주세요 🤩
이번호 시작은 레츠스위프트 2023 소식입니다. 2022년 오프라인 행사를 준비하면서 3개월 정도 새로운 서비스를 런칭하는 스타트업 같은 분위기였습니다. 2022년 준비위원회가 2023년 준비위원회를 만날 준비를 시작합니다. 2023년 레츠스위프트 준비위원회에 관심있는 분들을 기다립니다. 
주제/분류별 소식들
국/해외 소식들을 비슷한 주제들이 많아서, 다음과 같이 묶어서 정리합니다.
# 애플

> 애플 1분기 실적 발표

> 위와 같이 읽어보시면 좋을 글입니다. 장 루이 가세가 애플 1분기 매출에 대해 논평했네요. M1으로 돌풍을 일으켰던 맥 분야 매출이 급격하게 줄어든게 눈에 띄네요 Apple’s So-So Q1 2023. by Jean-Louis Gassée | by Jean-Louis Gassée

# 하드웨어

> 💎 iCloud를 사용하는 최신 운영체제에서 개선된 데이터 보호를 지원한다고 합니다. 그렇지만 꽤 제약 사항이 있네요 Apple Has Finally Solved a Fundamental Flaw in iCloud | by Jakub Jirak

> 아이폰 15는 새로운 폼펙터가 적용하기를 기대하는 분위기에서 나온 컨셉 디자인입니다 'iPhone Ultra' concept envisions what a titanium iPhone might look like | Cult of Mac

> 새로 나온 2세대 홈팟에 대한 꽤 길고 진지한 글입니다. 결론은 이거 정말 살꺼야? Is This the Cheaper, Worse-Sounding HomePod You Wanted? | by Jonathan Kim

> 과연 올해 realityOS 와 헤드셋 하드웨어가 나올까요? 그와 관련된 글입니다 Reality Pro — more astonishing details come out about Apple’s headset | by David Lewis


# 일반

> 💎 개발 글이 아니면서 흥미로운 글입니다. 마인크래프트로 4비트 CPU를 만들려는 시도를 아주 상세하게 설명하고 있습니다 Learning Computer Engineering With Minecraft | by Aiden

> (좋은) PR 만들기 위한 5가지 팁. 어찌보면 당연한 건데 반복해서 일을 하다보면 놓치기 쉬운 부분인 것 같습니다 5 Tips to creating a (good) pull request | Danijela

> 전혀 개발 이야기는 아니지만, 팀 문화와 심리적 안정성에 대한 글입니다. 한 번쯤 읽어볼 만 합니다 Psychological Safety — The Single Most Important Trait That Makes a High-Performing Team | by Laura Brewis

> 과연 시리는 chatGPT처럼 똑똑해지고 개선이 될까요? Siri desperately needs some ChatGPT-like smarts | Cult of Mac

> 장 루이 가세가 쓴 ChatGPT 관련 컬럼입니다. 저도 비슷한 관점으로, 이 자체가 아이폰처럼 파급력을 주기 보다는 이제 대형 기업들이 어떤 형태로 서비스로 이어가느냐가 관건인 것 같습니다. 그 중에서도 MS가 가장 무서운 것 같습니다 The ChatGPT Maelstrom. by Jean-Louis Gassée | by Jean-Louis Gassée

> 개발과 기술을 마치 유행하는 패션처럼 바라보며 오버-엔지니어링을 하는 것에 대한 글입니다 The Dangers of Over-engineering | by Andreja Dulović

> 새로운 플러터 3.7에 대한 소개입니다. iOS 관련 부분도 개선 사항에 꽤 포함되어 있습니다 What’s new in Flutter 3.7 | by Kevin Chisholm

> 해커들이 사용하는 프로그래밍 언어라는 제목의 자극적인 글이라서 살펴봤습니다 Which Programming Languages Do Hackers Use? | by Christian Koch


# 스위프트

> 동시성 시리즈 중에서 Detached Task에 대한 설명입니다 Detached Tasks in Swift explained with code examples - SwiftLee

> 어셈블리처럼 동작하도록 몇 가지 명령을 함수 단위로 구현해보고 있습니다 How does Assembly work — A Swift guide | by Steven Curtis

> 백그라운드에서 동작하는 Task를 취소하는 방법입니다 How to cancel a background task in Swift | Software Development Notes

> 이제 iOS 분야에서도 DTO라는 용어가 DDD.Entity처럼 사용되는 시대가 된 걸까요 Parsing in Swift: a DTO-based Approach | by Luis Recuenco

> 몇 가지 새로운 Result Builder를 통해서 생성을 쉽게 만드는 방법입니다. 의존성에 대해서는 전혀 고려하지 않았지만요! Result Builder in Swift for MVVM Pattern | by Serhii Krotkykh

> 이 분 계속 직접 뭔가 만들어보기 시리즈를 하고 계시네요. 이번에는 Set 집합 콜랙션이네요 iOS: Reimplementing the Set data structure in Swift | by Pedro Alvarez

> Copy on Write in Swift explained with examples


# 설계 구조 : 패턴

> 💎 어느 분야에 넣어도 좋은 글이네요. 페이스북 iOS 앱 구조가 어떻게 바뀌어왔는지 설명하고 있습니다 The evolution of Facebook’s iOS app architecture

> 어느 순간 코디네이터 패턴 자료도 반복해서 많아지고 있는데, 뷰컨트롤러 내비게이션이 어느 정도 복잡해지면 코디네이터가 필요한가 기준을 정하는 게 가장 어려운 것 같습니다 A comprehensive guide to Coordinator Pattern in Swift | by Maysam Shahsavari

> FSM을 구현하는 접근 방법을 설명합니다 Design Patterns for Games: State Pattern | by Oreste Leone

> VIPER를 설계가 아니라 패턴이라고 부를 수 있을까요? 리팩터링하는 과정도 기대보다(?) 단편적이라서 아쉽습니다 ㅎㅎ Refactoring an MVVM iOS app into VIPER | by Marchell

> The last of POP | by Jim Lai


# 뷰 프로그래밍 : SwiftUI

> 💎 SwiftUI 프로젝트에서 구조에 가장 영향을 주는 것 중에 하나인 것 같습니다 The Nested Observables Problem in SwiftUI - Holy Swift

> 💎 처음 보는 사이트인데 SwiftUI 콤포넌트를 하나씩 정리가 잘 되어있습니다 Styling Components in SwiftUI - Moving parts

> 💎 이런 부분이 UIKit과 철학이 달라서 생기는 차이 같습니다. UIKit과 차이점을 비교해보세요 Observing the content offset of a SwiftUI ScrollView | Swift by Sundell

> 스유 UI 테스트 관련 아주 짧은 소개 A Quick Guide to UI Testing in SwiftUI | by Nav

> 이건 chatGPT로 개발하는 게 아니라 앱에서 API를 연동해서 출력하는 방법입니다 Building simple iOS client for using chatGPT in 5 minutes | by Artem Horovenko

> SVG를 SwiftUI로 바꿔주는 서비스를 활용해서 Shape를 그리는 방법이 눈에 띄네요! Creating Complex SwiftUI Shapes Using Design Tools | by Artem Horovenko

> 모던 스위프트UI라는 포인트프리 시리즈입니다. Modern SwiftUI

> 가변적으로 변화하는 뷰를 다루는 방법입니다 Variadic Views — Chris Eidhof

> Adding a stretchable header to a SwiftUI ScrollView | Daniel Saidi

> Advanced Drag&Drop in SwiftUI | by Umut SERIFLER

> Card Scanner in SwiftUI | by Michał Ziobro

> OnBoarding View with SwiftUI | by Krupanshu Sharma

> SwiftUI를 맛깔나게 소화하는 킥 : Property Wrapper | by Lee Di

> Tracking hover location in SwiftUI

# 뷰 프로그래밍 : UIKit

> 초보적인 수준에서 라디오 버튼을 만드는 과정을 설명합니다 Radio buttons in iOS | by Artiom Khalilyaev

> UIImageView와 MTKView를 비교하는 간단한 글입니다 UIImageView vs MTKView - iOS | by BN

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

> 💎 iOS 탈옥을 감지하는 방법들 2023 최신 버전입니다 iOS Jailbreak Detection in 2023

> 이 글처럼 URLCache가 정책상 완벽한 메모리 또는 디스크 캐시를 지원하지 않습니다. 필요한 부분을 직접 채워넣어야만 합니다 A path of pain with URLCache eviction and subclassing

> 맥에서 제공하는 이모지 픽커처럼 동작하도록 구현하는 설명입니다 How I Built an Emoji Picker Library for iOS | by Ivan Izyumkin

> 이전에 소개했던 것 같은데, 러스트로 iOS 앱 만들기에 도전중인 분이 터치 이벤트 처리와 관련된 부분을 소개합니다 Rust - Native iOS Touch Events | ITNEXT

> UIImage를 코어 데이터에 저장하는 방법이네요 Storing Data in Core Data: UIImage | by Steven Curtis

> 스위프트 앱에서 자바스크립트를 사용하기 위한 방법 Using JavaScript in a Swift app

> Prevent your app's files from being included in iCloud Backup

> Swift Combine — Subject Publishers : PassthroughSubject & CurrentValueSubject | by Nikunj joshi

> Swift Combine — ‘ASSIGN’ Subscriber | by Nikunj joshi

> Transitioning From JavaScript to Swift and SwiftUI? Start With This Simple Networking Layer | by Drew Althage


# 개발 환경

> 💎 VSCode Swift 확장 도구가 드디어 1.0이 되었네요! 앱 개발 용도라기 보다는 서버 사이드 개발에 더 가까운 도구일 것 같습니다. VSCode Swift v1.0.0 - Related Projects / VSCode Swift extension - Swift Forums

> 💎 젯브레인에서 진행한 Swift 와 Objective-C 개발자들 위주 설문 조사 결과입니다. 전체 iOS 개발자는 91%, 여전히 오브젝티브-C 코드도 23% 남아있고, UI테스트를 하는 곳은 23% 수준이네요 Swift and Objective-C Programming - The State of Developer Ecosystem in 2022 Infographic | JetBrains

> 💎 왜 기술 문서를 작성해야 하고, 어떻게 해야 공감을 받을 수 있는지 상세하게 정리되어 있네요. 미디엄 멤버 온리라 안 보일 수도 있지만 읽어보시길 추천드립니다 How to Write Technical Documentation With Empathy | by Edward Huang

> 이 글을 여기에 넣을까 말까 고민했는데 터미널을 개발자 도구라고 생각하고 분류했습니다 😎 11 macOS Terminal Tricks to Achieve The Super-Impossible | by Nikhil Vemu

> 스위프트를 CLI 환경에서 스크립트 언어로 활용해서 파일을 다루는 예제입니다 How To Use Swift Scripts To Modify Files In a Folder | by Riccardo Cipolleschi

> git object 얘기가 대부분 차지하지만 결국 지난호에 소개했던 Unison 이란 언어 특징으로 이어집니다 Writing Code Without Plain Text Files | by Erik Engheim

> 아! 이거 정말 매번 용량 정리하기 귀찮은 데 다들 어떻게 관리하고 계신가요? Xcode Simulator Directories Exploration - SwiftLee

> Scheduling tweets with Github Actions and Swift

# 테스트

> 테스트 코드를 작성하면서 ChatGPT를 사용한 경험이 재미있네요 ㅎㅎ When ChatGPT tried to save you | by Jim Lai

> Swinject와 Needle을 비교해주는 글입니다. 둘 중에 하나를 고를 때 참고하세요 DI Container libraries for iOS App(Swinject & NeedleFoundation) | by Ryuichi Fukami

> 테스트 코드에서 사용하기 위한 간단한 목서버를 node.js로 연동하는 방법이네요 Gaining access to Command-line from XCTest - Testableapple

> Testing push notifications on the iOS simulator - SwiftLee

> Using and Testing User Defaults in Swift | by Steven Curtis

# 도구/오픈소스 

> 💎 Cilicon 이라는 가상환경 기반의 CI 도구입니다. 깃헙 액션보다 2배 이상 빠르다고 장담하고 있네요 Self-Hosted macOS CI on Apple Silicon with Cilicon | by Marco Cancellieri

> 엄청난 라이브러리는 아니지만 도움이 될만한 라이브러리들을 소개하고 있습니다 Helpful Swift Libraries to Boost Your iOS App Development | by Kostya Stepanov


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