iOS/Swift 소식을 전해드립니다 💁
레츠스위프트 뉴스레터  제11호 2020년 7월 26일

 님을 위한 iOS / Swift 관련 소식을 모은 뉴스레터가 도착했습니다. 일요일 뉴스레터와 함께해요 👨‍👧‍👦
벌써 WWDC2020 이후 한 달이 지났네요. iOS14와 iPadOS, macOS, watchOS 등 세 번째 베타가 올라왔습니다. 이번 베타3는 자잘한 버그도 많이 수정되고, 반응도 좀 더 빨라졌습니다. 그 사이 문제가 있던 앱들도 iOS14 대응을 해주고 있네요. 지난 2주 동안 모인 소식들을 전해드립니다. 

누구나 함께하는 뉴스레터 저장소 👉
메일링 리스트 가입은 가입하기 링크 주변에 소개해주세요 🤩
🖥 DTK 언박싱
WWDC에서 언급했던 유니버설 앱 퀵 스타트 프로그램을 신청했었습니다. 그리고 지난 7월 14일 전파 인증이 통과됐다는 소식이 있었는데, 그 다음날 신청했던 프로그램이 승인됐다고 메일이 왔습니다. 신청할 때 맥 앱 스토어에 출시한 맥 앱을 넣고, 왜 DTK가 필요한 지 이유를 설명하라는 양식이 있습니다. 그걸 보고 제한된 인원만 DTK 임대를 허락해준다고 들었습니다. 

프로그램 승인이 됐으니 회사에서 결제 허락을 받고 곧 바로 $500를 결제했습니다. 애플 개잘자 계정처럼 온라인 스토어에서 결제가 진행되는 데 한화로 659,000원을 결제했습니다. 15일에 결제할 때 예상 배송일은 7월 28일이었습니다만, 실제 배송일은 그보다 빠른 7월 22일였습니다. 중국에서 곧바로 DHL로 날아옵니다 

DTK 외형은 기존 맥미니와 거의 동일합니다. 실행해보니 베타 버전 Big Sur가 설치되어 있고, Xcode 베타도 설치되어 있었습니다. 업무가 바빠서 간단히 샘플 코드를 만들어서 돌려보는 정도만 해봤는데 화면이 조금 느리다는 느낌을 받았습니다. 다음날 확인해보니 HDMI로 연결해서 모니터에 30Hz로 연결되었더군요. USB-C to DP 케이블로 4K 모니터에 연결해보니 훨씬 자연스러웠습니다. 제 느낌상 구형 맥북프로15인치 수준의 반응성이었습니다. 다만 Xcode 베타2에서는 iOS 시뮬레이터가 설치가 안되서 제대로 확인하기 어렵더군요.
그리고 Big Sur 베타3가 나와서 업데이트를 하려고 습관처럼 DTK에서 설치 이미지를 다운받았더니 인스톨 파일이 아니라 ipsw 이미지 파일이더군요! 부랴부랴 설치 가이드를 읽어보니 호스트 맥에서 이미지를 다운받고 DTK를 DFU 상태로 만들어서 이미지를 복원해야 했습니다. 그쵸? 이게 맥인지 아이패드인지 헷갈리는 상황이었습니다.

Big Sur 베타3와 Xcode 베타3를 설치하고 나니 확실히 쓸만해졌습니다. 맥 앱도 아이패드 앱도 모두 빠릿하게 실행해볼 수 있었습니다. (어쩌면 당연한데) iOS 시뮬레이터는 구형 맥북프로보다 더 빨랐습니다!! 벤치마크를 직접 돌려보지는 않았지만, CPU - GPU 네이티브 벤치마크 속도는 제 맥북프로를 상회하더군요. 벤치마크 소식

저는 여러 맥을 나란히 붙여놓고 썬더볼트 브릿지 폐쇄망을 연결해서 Synergy로 키보드, 마우스를 공유해서 쓰곤 하는데 아쉽게도 DTK는 급히 만드느냐고 썬더볼트 컨트롤러가 없었습니다 ㅜㅜ 아이패드에 맥 오에스를 설치한(?) 느낌입니다. 

DTK에는 스티커는 없고, "Congratulations on being one of the first developers for Mac powered by Apple silicon." 이라고 적혀있는 종이 카드가 들어있습니다. 앞으로도 이런저런 비교를 해보고 또 소식을 전해드리겠습니다. 
🇰🇷 국내 소식들
Xcode 12부터는 프로젝트를 만들 때, 기존 UIKit 형식이 아니라 Swift UI 기반 앱 라이프 사이클을 지원하는 앱을 만들 수 있습니다. 앱 > 씬 > 뷰 계층 구조로 만들 수 있고, 각각의 프로토콜이 생겼죠. 세션을 보고 정리해주셨습니다.

[곽도영님 자료] WWDC 2020 ML 관련 업데이트
ML에 관심있는 iOS 개발자분들이 모여서 스터디를 하고 있다고 합니다. 그 중에서 곽도영님께서 ML 관련 업데이틀 정리해주셨습니다. 그 외 스터디 자료가 더 있는데 아쉽게도 한꺼번에 정리된 페이지는 없네요. 

[류성두님 유투브] 보이스오버와 친해지기
iOS만큼 다양한 방식으로 접근성을 신경쓴 운영체제가 없을 것 같습니다. 그 중에서도 시각장애인을 위한 보이스오버 기능에 대한 소개와 함께 오해를 풀어보고 싶으시다고 합니다. 앞으로 시리지로 올리신다고 하네요.

[야곰님 유투브] MVVM과 Rx
한동안 유행처럼 휩쓸고 지나간 MVVM 패턴과 Rx에 대한 입문하는 분들을 위한 짧은 소개 영상입니다. MVC, MVP 부터 차근차근 소개해주고 계십니다. 개인적으로는 iOS MVC를 제대로 이해하는 게 중요한 것 같습니다. 
✈️ 해외 소식들

[WWDC 요약] WWDC가 끝나고 올라온 자료 중에 Alex Grebenyuk가 요약해서 PDF로 공유한 자료가 있네요. 키노트 버전 | PDF 버전 | 다운로드 링크가 포함된 저자 블로그

SwiftUI Kit라고 스위프트UI로 만든 화면 샘플과 동작을 모아놓은 코드 저장소입니다. 

스위프트UI라고 스위프트UI만 써야하는 건 아니죠. iOS 14나 Big Sur부터는 UIKit 외에 다른 Kit들도 많이 지원하기 시작했습니다만 여전히 섞어서 만들어야 하는 경우는 생길 수 있습니다. 자신의 실수를 설명해주고 있습니다. 

gRPC 방식과 함께 가변 프로토콜인 Protobufs를 활용하면 HTTP 2.0에서도 5-10배 더 효율적인 통신이 가능해진다고 합니다. grpc-swift 활용해서 스위프트로 gRPC를 활용한 예제입니다. 

[베터프로그래밍] SwiftUI로 실서비스 경험담
아직 지원하는 운영체제 버전이 한정적이지만, SwiftUI로 프로덕션 서비스를 만들어 본 경험을 정리해줬습니다. 빠르고 직관적으로 개발할 수 있는 장점이 있지만 크래시도 많고 그만큼 개발자가 감수해야 하는 것도 있다는 얘기가 포함되어 있습니다. 

[베터프로그래밍] SPM에 리소스 추가하기
SE-0271에서 제안했던 내용이 스위프트 5.3에서 추가됐습니다. 아직 스위프트 5.3은 공식 릴리스가 아니지만 swift.org에서 스냅샷을 받아서 써볼 수 있는 단계입니다. 스위프트 패키지로 나눌 수 있는게 많아져서 좋은 것 같습니다. 

iOS 10부터 지원했던 OSLog와 비슷하지만 서버에서도 쓸 수 있는 새로운 오픈소스 프로젝트로 나온 Logger 활용방법에 대한 소개입니다. Logger 저장소도 참고하세요.

[베터프로그래밍] UIBezierPath 그리기
스위프트로 베지어 패스를 그리는 방법을 쉽게 설명해주고 있습니다.

[베터프로그래밍] SVG 백터 이미지 활용하기
Xcode 12부터는 PDF 뿐만 아니라 SVG 백터 이미지를 활용할 수 있습니다. 이미지 리소스를 만들 때 @1x, @2x, @3x 지정해주는 게 귀찮은 일이었는데 이제 SVG 하나로 모두 커버할 수 있겠네요.

베터 프로그래밍이 미디엄 블로그 작성하는 연합팀(?)이다 보니까 자료가 많네요. 마지막으로 Combine을 활용해서 이벤트 처리나 뷰모델을 바인드하는 방법을 소개합니다. 짧지만 아래 관련 글들이 연결되어 있습니다.

MVC보다는 MVVM-C로 나눠서 구현하고 의존성을 분리하면 테스트 하기 수월해진다고 자신의 경험을 소개하고 있습니다. 여러 방법 중에 하나니까 가볍게 읽어보세요 :)
✈️ 기타

SDK나 터미널 환경에서 호환성 여부에 따라서 10.16 또는 11.0 으로 나오기도 합니다. 진리의 둘 다! 

세계 민간 기업들의 접근성에 대한 노력과 정부의 정책 등을 포함하고 있습니다. 애플의 접근성을 포함하고 있는 리포트입니다. 
📲회사에서 iOS 개발자들에게 홍보하고 싶은 내용이 있으신가요? 
news@letswift.kr 로 언제든지 문의해주세요. 
레츠스위프트 뉴스레터
http://letswift.kr
수신거부 Unsubscribe