iOS/Swift 소식을 전해드립니다 💁
레츠스위프트 뉴스레터  제74호 2023년 2월 26일
꽃샘추위도 잊을 만큼 풍성한 iOS / Swift 관련 소식을 모은 뉴스레터가 도착했습니다.
CoPilot과 ChatGPT가 개발자들에게도 새로운 시대를 열어주고 있는 것 같습니다. 다양한 내용이 많았는데 반복적으로 많이 등장하네요. 그 사이에 iOS 16.4 베타와 새로운 버전들이 테스트중입니다. 개발 환경에서도 조금 변화가 있나봅니다. 스위프트도 6로 넘어가기 전에 마지막 마이너 버전이 될꺼 같은데, 6월에 WWDC 전까지 어쩌면 마지막 마이너 OS 버전이 되지 않을까요? 
매월 둘째, 넷째주 일요일에 뉴스레터를 발행하고 있습니다. 
누구나 함께하는 뉴스레터 저장소 👉 만약 링크가 깨지는 경우는 저장소 이슈에서 확인하실 수 있습니다.
메일링 리스트 가입은 >가입하기 링크< 주변에 소개해주세요 🤩
주제/분류별 소식들
국/해외 소식들을 비슷한 주제들이 많아서, 다음과 같이 묶어서 정리합니다.
# 애플

> Ask Apple과 달리 새롭게 시작하는 이벤트가 있네요. 들어보니 "디자인 챌린지"지만 디자이너 분들만 참여해야 하는 것은 아닙니다.
WWDC에서 애플 UX 에반젤리스트에게 앱에 대해 물어보는 것처럼 특정한 디자인 주제에 대해서 아이디어와 개념을 논의하고 직접 개선하기까지를 챌린지라고 부르더군요.
이번 챌린지에 참여하시고 "뛰어난 내비게이션으로 직관적인 앱"을 만들어보세요! 점점 다양한 소통 방식이 추가되는 것 같습니다 디자인 챌린지 (온라인 이벤트) - Apple Developer

# 하드웨어

> M2 Pro 맥미니가 저렴하고 성능도 좋다고 하네요. 누가 하나 던져주면 좋겠습니다 😁 The Power of the M2 Pro Mac Mini Unleashed | Mac O


# 일반

> 💎 AWS 인공지능 아키텍트가 ChatGPT처럼 동작하는 챗봇을 비슷하게 만드는 과정을 설명해줍니다 ChatGPT Decoded: An expert guide on AWS SageMaker | by Arun Shankar

> macOS Ventura에서 시스템 설정이 iOS 형태로 바뀐 것에 대해서 반론을 제기합니다 5 Reasons macOS Ventura Design Change Is the End of the “Sane” UI as We Know It | by a place of mind

> 적당하고 좋은 PR을 만들기 위한 5가지 팁입니다 5 Tips to creating a (good) pull request | Danijela

> Ted Chiang의 글에 대해 반박하는 글이라서 관심있게 읽어봤습니다 ChatGPT is not just lossy compression | by Yann Le Du

> 다른 분야의 사례지만 UML을 그려서 ChatGPT로 타입스크립트 코드를 생성한 사례입니다. 앞으로 왠만한 코드는 프롬프트와 질문을 잘하면 작성해주는 시대가 되겠네요 From UML to TypeScript With ChatGPT | by Jörg A.

> 역사적으로 모든 개발자들이 읽어보면 좋을 역사적인 코드. 리눅스 초기 커널, 첫번째 자바스크립트 엔진 등이 나옵니다 Historical Source Code That Every Developer Should See | by Shalitha Suranga

> GPT-3로 코드에 감춰진 결함을 쉽게 찾았나는 경험담이네요 I Used GPT-3 to Find 213 Security Vulnerabilities in a Single Codebase | by Chris Koch

> 스티브 워즈니악의 애플 이후 커리어에 대한 글이네요 Steve Wozniak’s Career After Apple | by Youssef Mohamed


# 스위프트

> 🇰🇷 간단하지만 스위프트 조작과 Index 방식에 대한 명료한 글입니다 Swift String 조작은 왜 그 모양인가 @ Sunghyun Cho

> 💎 서브클래스를 구현할 때 매개변수 기본값을 지정하고, 슈퍼클래스 타입으로 선언하면 동작이 조금 특이하네요 An Unexpected Behavior of Subclasses in Swift | by Riccardo Cipolleschi

> Actor와 Non-Actor를 구분해서 동시성을 설명해줍니다 Conquer Data Races with Swift Actors | Level Up Coding

> 스위프트 기반 정규표현식 Regex 처리 방식이네요 How to use Swift Regex | Swift Safari

> 공식 스위프트 프로그래밍 언어 책(줄여서 TSPL이라고 부르는군요)이 이제 DocC 기반으로 퍼브리싱된다고 합니다. PDF로 나오던 적도 있었는데 빠르게 업데이트하고 배포하기 위한 수단으로 DocC를 선택한 것 같습니다 Swift.org - “The Swift Programming Language” book now published with DocC

> 스위프트에서는 잘 언급되지 않는 방식 중에 하나가 렌즈Lens 였던 것 같습니다. 기존 데이터 구조를 새롭게 바라볼 수 있도록 도와주는 접근 방법이지만 뭐든지 단점이 있는 법이죠 Using Lenses in Swift. It makes things clearer, I guess? | by Steven Curtis

> 꼭 프로토콜을 먼저 선언하고, 꼭 프로토콜만으로 먼저 작업해야 하는 건 아니죠. You don't need protocols | Swift Unwrap

# 설계 구조 : 패턴

> 레포지토리 캐싱과 갱신을 위해서 데코레이터 패턴 활용하기. 화면에서 멀고 데이터를 다루는 부분에 대한 꽤 깊이 있는 주제입니다 Use the Decorator Pattern for Repository Caching and Cache Invalidation | by Steven Curtis


# 뷰 프로그래밍 : SwiftUI

> ARKit 입력으로 손없이 동작하는 화면 뷰를 구현한 예제입니다 Build a Hands-free SwiftUI App Using ARKit and SceneKit | by Mark Lucking

> 꼭 클린 코드가 아니더라도 SwiftUI 뷰가 커지는 것을 경계하라는 의미에서 좋은 방향인 것 같습니다 Cleaner Views: Clean Code in SwiftUI | by Vitor Moriya

> 코어데이터에 중복 엔티티가 생성되지 않도록 조정하는 방법 How To Avoid Creating Duplicate Entries in Core Data in a SwiftUI App | by Teresa Bagalà

> UIKit 처럼 Enum으로 SwiftUI 뷰 상태를 다루는 방법 Manage View State With Enums | by Artiom Khalilyaev

> 밝은 모드와 어두운 모드에서 모두 의미있는 색상을 보여주기 위한 방법을 설명합니다 Semantic Colors and Styles — Chris Eidhof

> Mastodon 클라이언트 앱을 오픈소스 SwiftUI 프로젝트로 시작했다고 합니다. 점차 트위어에서 옮겨가는 분들이 계신 것 같네요 The making of Ice Cubes, an open source, SwiftUI Mastodon client. | by Thomas Ricouard

> 베타버전인 iOS 16.4와 Xcode 14.3에서 달라진 점을 소개합니다 What's new in Xcode 14.3 and iOS 16.4 | Sarunw

> iOS 16.4에서 새롭게 변경된 SwiftUI 기능을 소개합니다. 드디어 미리보기에서 Print()가 동작한다고 하네요 What’s New in SwiftUI iOS 16.4 | by Alessandro Manilii

> 4 Picker styles in SwiftUI Form | Sarunw

> Arbitrary SwiftUI Linear Gradient Rotation - David Smith, Independent iOS Developer

> Part 2: Swift UI custom Text Field with floating label animation and a validation error prompt. | by Simeon Rumyannikov

> Recreating The iOS Timer App In SwiftUI | by Aryaman Sharda

> SwiftUI Multi data-type chart

> SwiftUI missing modal presentation view modifier | by Michał Ziobro

> SwiftUI networking without dumb shit MVVM | by Jim Lai

# 뷰 프로그래밍 : UIKit

> 💎 임의의 랜덤 컬러를 RGB로 만들면 색감이나 채도가 뒤죽박죽 되는데, 비슷한 밝기로 다양한 랜덤 색상을 선정하는 방식입니다 Khanlou | Arbitrary Beautiful Colors

> Creating Image Thumbnails Programmatically In iOS | by Gabriel Theodoropoulos

# 프레임워크
> 백그라운드 모드에서도 동작하기 위한 타이머를 설명합니다 A Simple Swift Background Timer. Example code | by Arik Segal

> 내용 암호화를 위해 AES를 활용하는 방법을 설명합니다 AES for iOS Developers, Using Swift | by Steven Curtis

> 애플은 디바이스를 고유하게 구분해서 동작하는 방식을 줄여가고 있는데, 여전히 필요한 경우가 있죠. Implementing Device Binding in iOS Applications | by Pedro Alvarez

> How to save a Realm Encryption Key to Keychain in Swift | by Joshua Hart

> Using User Defaults to store preferences in Swift - SwiftLee

# 서버-사이드

> AWS 람다 기반으로 서버없이 스위프트 클라우드 코드를 동작하기 위한 내용들 두루 설명합니다. 저도 몇 번 시도해봤는데, 스위프트 AWS 런타임이 좀 무거워서 안쓰게 되더군요😂 Serverless Swift Cloud Compute With AWS Lambda | by Kevin Hinkson

# 접근성
> macOS에 포함된 호버 텍스트, 음성 제어 같은 Assistive 기술을 활용해서 시뮬레이터 접근성을 쉽게 확인하는 방식을 설명합니다 Cheating the System for Fun and Profit (or how to use macOS Assistive Technologies to test in the Simulator) | Bas
# 개발 환경

> 💎 아사나 개발팀에서 빌드 시간을 줄이기 위해서 모듈화하고 성능을 개선한 경험을 정리한 글이네요 Scaling a Mature iOS Codebase with Tuist - The Asana Blog

> 💎 코코아팟을 SPM으로 마이그레이션하고, 특정한 버전으로 지정해서 안전하게 빌드하기 위한 방법을 제안합니다 Safely pinning SPM dependencies to exact versions

> 💎 완전히 새로운 소식이라기 보다는 논의가 시작되서 알고 있자 수준입니다. 구글에서 fastlane 저장소를 거의 방치하고 있어서, 여러 회사 개발자들이 참여하는 MNF에서 저장소를 위임받고 싶다는 취지의 논의입니다 Moving fastlane to MNF · Discussion #194 · MobileNativeFoundation/discussions

> 개발 이후 코드 사이닝에 대한 원리와 관리할 부분을 설명합니다 A Beginner’s Guide to Code Signing in iOS Development | by Bing Kuo

> 의존성을 가지는 프레임워크 만들고 문제 해결 과정을 설명합니다 Building iOS framework with dependencies. | by Max Kalik

> XCFramework 생성부터 바이너리 타깃, 모듈 캐시까지 꽤 깊이있는 설명이 포함되어 있습니다 Creating an XCFramework – Rhonabwy

> EditKit Pro 라는 Xcode 확장 도구에 대한 소개입니다. JSON 형태를 바꿔주거나, 정렬하거나 뷰를 지우는 것처럼 작은 기능을 20개 정도 제공합니다 EditKit Pro: Supercharge your iOS Development | Medium

> SF Symbols도 iOS 16.4에서 마이너한 변화가 있다고 하네요 SF Symbols Changes in iOS 16.4. Introduction | by Geoff Hackworth

> 앱 스토어 커넥트 API로 Xcode Cloud 워크플로우를 생성하거나, 조정하고, 시작하는 방법을 설명합니다 Using App Store Connect API to trigger Xcode Cloud workflows

> 브레이크포인트를 공유하거나 사용자에게만 보이도록 설정하는 간단한 Xcode 팁이네요. 이 메뉴가 언제 생겼죠!? Xcode tip: sharing breakpoints across projects · Jesse Squires


# 테스트

> 테스트에 대한 솔직한 이야기네요. 테스트는 신뢰가 100%에서 맞는지 확인하는 게 아니라 0%부터 신뢰를 하나씩 쌓아하는 과정 같습니다 Testing Is About Confidence | AzamSharp

> UI 테스팅에 대해서는 개발팀마다 기능도 다르고, 범위도 다르고, 원하는 방향도 달라서 모두에게 쉬운 방법이 공유되지 못하는 것 같습니다. 기획과 마찬가지로 테스트도 언어와 용어를 정의하는 것부터 시작하는 것 같습니다 UI Tests, but easier

> UI테스트 관련 글이 많아진 걸 보면 어딘가에서 주제로 다룬건지 모르겠네요. 좋은 UI 테스트를 위해서 FIRST 5가지를 준비하라고 하네요 Writing bulletproof apps in SwiftUI | by Phoenix Developer

# 도구/오픈소스 

> iOS 16.4 베타가 나오고 새로운 기능들에 대해서 소개합니다 7 More iOS 16.4 Features I Didn’t Expect | by Nikhil Vemu

> SwiftLee와 몇 명이 같이 만든 앱의 기능에 대한 투표를 위한 오픈소스 도구라고 합니다 Introducing Roadmap: Offer Public Feature Voting

# 디자인 
# 홍보

> 샤플앤컴퍼니에서 iOS 개발자를 채용하신다고 연락주셨습니다. 관심있는 분들은 다음 채용페이지를 살펴보시고 기회를 잡아보셔도 좋겠네요 📱샤플 iOS 개발자 채용

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