iOS/Swift 소식을 전해드립니다 💁
레츠스위프트 뉴스레터  제30호 2021년 4월 25일

 님을 위한 iOS / Swift 관련 소식을 모은 뉴스레터가 도착했습니다. 드디어 봄날이 왔습니다. 봄과 함께 새로운 제품들이 쏟아졌습니다. 알찬 애플 이벤트처럼 이번 뉴스레터도 다양한 소식들이 가득차 있습니다. 이제 다음 애플 이벤트는 대망의 WWDC21 가 되겠네요.

매월 둘째, 넷째주 일요일에 뉴스레터를 발행하고 있습니다.  
누구나 함께하는 뉴스레터 저장소 👉 
메일링 리스트 가입은 >가입하기 링크< 주변에 소개해주세요 🤩
4월 20일 애플 이벤트
정확하게 딱 1시간 러닝타임을 채운 봄 이벤트 방송(?)이었습니다. 그동안 루머가 많아서 기대했던 에어태그를 비롯해서 개인적으로 기다리고 있던 애플TV 4K로 시작해서, 미니-LED가 들어가서 XDR 모니터를 무색하게 만든 아이패드 프로까지 다양한 제품이 쏟아져 나왔습니다. 
뭐라도 하나 사야만 할 것 같은 설레임이 가득한 이벤트였습니다. 얼마남지 않은 WWDC21 행사가 기대되네요! 
특히 봄날이라고 애플파크에서 꽃구경하는 팀쿡이 소개한 보라색 아이폰은 여심을 사로잡고 있습니다. 저는 봄꽃하면 노란 개나리나 연한 핑크색 벚꽃을 떠올립니다. 그렇지만 호주를 비롯한 북미에서도 아래 사진에 보이는 자카란다 Jacaranda 보라색 꽃을 떠올리는 분들이 많다고 하네요. 봄날을 맞이해서 보라색을 출시하는 게 어색하지 않다는 의미겠죠? 보라색 아이폰12는 한국에서도 예약 판매를 시작했습니다 :)

어떤 아이맥을 구매할 계획이신가요? 🤔
빨주노초파보은 무지개 색으로 재탄생한 아이맥 - 당장 놓을 곳도 없는데 집에 하나 사놓고 싶더군요. 여러분들은 어떤 색이 땡기시나요? 

에어보다 더 비싼 아이패드 프로 등장
무지개색 24인치 아이패드 아이맥과 함께 등장한 M1 탑재한 아이패드 프로가 이벤트의 절반을 차지했습니다. 특히 신형 12.9인치 아이패드 프로는 끝판왕으로 돌아왔습니다. 디스플레이도 그렇고 성능도 그렇고 특히 가격도 끝판왕입니다 😈

에어태그와 에르메스
에어태그는 위치정보 서비스가 안되는 국내에서 어떤 효과가 있을지 궁금하네요. 갑자기 Find My 위치정보 서비스를 오픈해주지는 않을 것 같은데 말이죠. 애플코리아가 원모어띵 깜짝 발표라도 하는걸까요? 특히 에르메스 에어태그도 매장에서 별도로 판매한다고 하네요. 물건 잃어버리지 말자고 사야하는 태그를 에르메스 악세서리에 넣으면 더 잃어버릴까바 불안할 것 같습니다. 누군가에게 선물받으면 써보고 싶은 정도랄까요? ㅎㅎ 

주제/분류별 소식들
국/해외 소식들을 비슷한 주제들이 많아서, 다음과 같이 묶어서 정리합니다.
# 애플
Xcode 12.5 RC가 올라왔습니다. 아쉽게도 Swift5.5가 포함되지는 않았고, Swift5.4 버전입니다.
증분 빌드가 빨라지고, 멤버 접근에서 체이닝이 지원되고 Property Wrapper가 지역 변수에도 적용됩니다. 보다 자세한 내용을 릴리스 노트를 확인해주세요. 
> [영문] 애플 뉴스4월 26일부터는 Xcode12 + iOS 14 SDK (watchOS 7)로 빌드한 앱을 제출하세요

# 일반
[영문] 베터 프로그래밍에 이런 글도 올라오는 군요. YAGNI 소프트웨어 개발 원칙 재해석
[영문] 오브젝티브-C에서 스위프트로 마이그레이션 통계. 레츠스위프트에서 설문조사를 했을 때보다 상대적으로 오브젝티브-C가 줄어든 것 같네요.
[영문] (스위프트 뿐만 아니라) 일반적인 프로그래밍 언어에 대해서 리팩토링 기법에 대한 상세 설명입니다.

# 스위프트
이제 Swift5.5 개발 스냅샷은 받을 수 있지만, 아직은 Xcode 12.5에 기본 탑재되지는 않았습니다. 지금 속도라면 WWDC21에서 Xcode13과 함께 나올꺼 같네요.
> [영문] 함수 호출이 많아지거나 함수 호출을 연결하다보면 중첩되는 경우가 많죠. 이럴 때 Pipe 연산자가 있으면 좋겠다고 생각하게 됩니다. Forward Pipe 연산자를 선언하는 방법을 설명합니다.

# 설계 구조 : 패턴
> [영문] DI 완벽 가이드 - DI 개념부터 방식, 라이브러리 소개와 컨테이너 성능 비교까지 포함하고 있습니다.
> [영문] 로버트 C 마틴이 소개한 SOLID 원칙. 엄밀하게 말해서 엉클 밥이 다 만들어낸 표현이나 원칙은 아니지만 그렇게 소개하고 있네요. 80년대 유즈넷에서 선배 개발자들이 논문과 경험을 공유하면서 다듬어진 요약 버전정도라고 생각하시면 될 것 같습니다.

# 뷰 프로그래밍 : UIKit
UIKit 자료도 함께 살펴보세요.
[영문] 콜랙션뷰나 테이블뷰에서 지원하는 DiffableDatasource를 사용하려면 Model에 UUID 타입 id를 지정해줘야 합니다. IndexPath 대신에 UUID 타입 id를 활용해서 셀을 다루는 방식을 소개합니다. 저장소는 패키지로 만들어진 건 아니고 예제 코드라고 보시면 되겠네요.
[영문] UILabel 베이스라인을 맞추기 위해서 고려할 사항을 설명해줍니다. 디자이너분들은 1px 안 맞는것도 눈치챈다니까요!
[영문] lazy 이미지 로딩 구현하고 테스트하기 - 개인적으로 이렇게 이미지 뷰 확장하는 것을 별로 좋아하지 않지만 처리하는 방식을 이해하는 데 도움이 되길 바라는 마음에 공유합니다 ㅎㅎ
[영문] self-sizing 테이블뷰 셀 내용을 SwiftUI로 처리하는 방법 (이 방식이 특이해서 작년 자료지만 공유합니다) 

# 프레임워크
다양한 프레임워크를 다루는 예제를 소개하는 글들입니다. 
[영문] 사용자 추적과 데이터 사용에 대한 이해 - 윗 글과 함께 보시면 도움이 되실 것 같습니다.
[영문] Pragmatic-Programmers가 미디엄에 들어오고 나서 책 내용을 올려주는 경우가 있습니다. 그 중에서 코어 데이터에 대한 책 내용입니다.
[영문] 접근성 개선하기지난 달에 접근성 관련 온라인 세미나도 있었는데 이런 사례가 많아지면 좋겠습니다.

# 개발 환경
[영문] 코코아팟에서 SPM으로 마이그레이션하기 - (작년 자료지만) 위에 코코아팟과 함께 보면 좋을 것 같네요.
[영문] 이미 앱 스토어에 출시해본 분들은 알고 계실 내용이지만, 처음하면 당황하는 내용들을 정리했네요. 앱 스토어 리뷰를 위한 스킴scheme 설정하기
[영문] 좀 지난 자료인데 텔레그램 소스를 Bazel로 빌드해서 실행하는 방법을 설명해줍니다.

# 도구/오픈소스 
[영문] 저는 작년에 swan 이라는 정적 분석 도구로 소스 의존성 분석하는 도구를 오픈소스로 만들고 있습니다. 이와 비슷하게 Xcode 프로젝트를 분석해서 클래스가 아니라 모듈 수준에서 라이브러리와 패키지 의존성을 그래프로 그려주는 XCGrapher라는 도구가 있네요.

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