letswiftconf / newsletter

레츠스위프트 뉴스레터 아카이브
MIT License
452 stars 10 forks source link

제30호 (2021년 4월 25일 발행) #33

Closed godrm closed 3 years ago

godrm commented 3 years ago

새로운 제품 소식이 있겠죠?!

neil-yun commented 3 years ago

26호까지 밖에 없습니다 ㅠㅠ..

godrm commented 3 years ago

26호까지 밖에 없습니다 ㅠㅠ..

네 여기는 뉴스레터 생산하기 위해 정리하는 곳이라 뉴스레터는 메일링에 가입하시면 보내드리고 있습니다. readme 목록은 띄엄띄엄 업데이트하기는 합니다. 곧 추가하도록 하겠습니다 :)

godrm commented 3 years ago

애플

Xcode 12.5 RC가 올라왔습니다. 아쉽게도 Swift5.5가 포함되지는 않았고, Swift5.4 버전입니다. 증분 빌드가 빨라지고, 멤버 접근에서 체이닝이 지원되고 Property Wrapper가 지역 변수에도 적용됩니다. 보다 자세한 내용을 릴리스 노트를 확인해주세요. https://developer.apple.com/documentation/xcode-release-notes/xcode-12_5-release-notes?#Swift

4월 26일부터는 Xcode12 + iOS 14 SDK (watchOS 7)로 빌드한 앱을 제출하세요 https://developer.apple.com/news/?id=ib31uj1j

일반

어떻게 핀터레이스 앱이 파일 크기를 30%(50MB) 이상 줄였는가 https://medium.com/pinterest-engineering/how-we-reduced-pinterests-ios-app-size-by-30-50mb-68d7f8425882

베터 프로그래밍에 이런 글도 올라오는 군요. YAGNI 소프트웨어 개발 원칙 재해석 https://betterprogramming.pub/rephrasing-the-yagni-software-development-principle-9f5ec1910737

5가지 위젯 추천 https://medium.com/macoclock/5-my-favorite-ios14-homescreen-widgets-march-2021-part-2-905bc2fc8f30

오브젝티브-C에서 스위프트로 마이그레이션 통계. 레츠스위프트에서 설문조사를 했을 때보다 상대적으로 오브젝티브-C가 줄어든 것 같네요. https://medium.com/swiftify/get-your-objective-c-project-professionally-migrated-to-swift-711adfa5b42

(스위프트 뿐만 아니라) 일반적인 프로그래밍 언어에 대해서 리팩토링 기법에 대한 상세 설명입니다. https://betterprogramming.pub/an-analysis-of-refactoring-techniques-to-improve-your-source-code-c9ded9eb2ff6

언어 : Swift

깔끔한 스위프트 코드를 위한 5가지 팁 https://betterprogramming.pub/5-tips-to-write-clean-swift-code-2ef287a11500

싱글톤과 인스턴스 공유가 다른 점 https://www.donnywals.com/whats-the-difference-between-a-singleton-and-a-shared-instance-in-swift

다이나믹 멤버 찾기 활용하기 https://medium.com/codex/swift-dynamic-member-lookup-made-simple-ef92fc699721

함수 호출이 많아지거나 함수 호출을 연결하다보면 중첩되는 경우가 많죠. 이럴 때 Pipe 연산자가 있으면 좋겠다고 생각하게 됩니다. Forward Pipe 연산자를 선언하는 방법을 설명합니다. https://holyswift.app/single-forward-pipe-operator-in-swift

헷갈리는 클로저 개념 잡기 https://betterprogramming.pub/clearing-up-the-confusing-closures-concept-in-swift-c5b7ad2dd0ab

정렬sort 확장하기 https://medium.com/nerd-for-tech/sorting-extension-in-swift-438ed6f23ce1

lazy 키워드 이해하기 https://medium.com/geekculture/understanding-the-lazy-keyword-in-swift-65f1d14fa477

설계 구조 : 패턴

DI 완벽 가이드 - DI 개념부터 방식, 라이브러리 소개와 컨테이너 성능 비교까지 포함하고 있습니다. https://medium.com/its-tinkoff/di-in-ios-complete-guide-cd76a079d2d

DI를 위한 팩토리 패턴 https://levelup.gitconnected.com/enhance-factory-pattern-for-di-in-swift-b255008ba110

파사드 구조 구현하기 https://stevenpcurtis.medium.com/the-façade-design-pattern-in-swift-14045590a854

클린 (헥사고날) 아키텍처 이해하기 https://medium.com/codex/clean-architecture-for-dummies-df6561d42c94

로버트 C 마틴이 소개한 SOLID 원칙. 엄밀하게 말해서 엉클 밥이 다 만들어낸 표현이나 원칙은 아니지만 그렇게 소개하고 있네요. 80년대 유즈넷에서 선배 개발자들이 논문과 경험을 공유하면서 다듬어진 요약 버전정도라고 생각하시면 될 것 같습니다. https://medium.com/read-priotix/s-o-l-i-d-is-an-acronym-for-five-design-principles-by-robert-c-6dcac7cae788

MVVM+C 구조와 튜토리얼 https://bobbyphtr.medium.com/mvvm-coordinators-ios-architecture-tutorial-fb27eaa36470

뷰 프로그래밍 : SwiftUI

PSPDFKit 기존 제품에 iOS 12 이하를 버리고 일부 화면을 SwiftUI로 바꾼 과정 https://pspdfkit.com/blog/2021/swiftui-in-production/

추천할 만한 SwiftUI 라이브러리 10개 https://betterprogramming.pub/10-swiftui-libraries-to-use-in-2021-d21c0384e619

스크롤뷰 콘텐츠 전체 스크린샷 찍기 https://prafullkumar77.medium.com/swiftui-how-to-take-screenshot-of-scrollview-content-e8c98233a16

액션 시트 만들기 https://medium.com/swift-productions/swiftui-actionsheet-3c507653fadd

Text 생성을 도와주는 오픈소스 TextBuilder 패키지 | 저장소 https://swiftpackageindex.com/davdroman/TextBuilder https://github.com/davdroman/TextBuilder

레고처럼 앱만들기 시리즈 - 4편 https://codeburst.io/build-an-app-like-lego-with-swiftui-tutorial-4-d5bb078749e1

컨테이너 뷰에 맞춰서 이미지 뷰 크기 조정하기 https://sarunw.com/posts/how-to-resize-an-image-to-fit-a-container-view-in-swiftui/

접근성 액션 처리하기 https://swiftwithmajid.com/2021/04/15/accessibility-actions-in-swiftui/

파이어베이스 기반으로 인-앱 메시징 처리하기 https://medium.com/firebase-developers/create-a-native-firebase-in-app-messaging-experience-on-ios-with-swiftui-84d3aa7bcd07

모던 MVVM 기반 ToDo 앱 샘플 | 저장소 https://mdcode2021.medium.com/modern-todo-app-in-swiftui-with-mvvm-ff8248b137d3 https://github.com/myawesomehub/TaskManager

조건부로 동작하는 뷰 변경자 View Modifier 만들기 https://www.avanderlee.com/swiftui/conditional-view-modifier/

차트 그리기 https://itnext.io/drawing-charts-in-swiftui-a5a87ac8cf9

뷰 프로그래밍 : UIKit

여러 뷰로 쪼개서 UIViewController로 가볍게 만들기 https://brontoxx.medium.com/slim-uiviewcontroller-break-into-multiple-uiview-components-78d7a67d7468

UIKit에서 SwiftUI처럼 라이브 프리뷰 추가하기 https://brontoxx.medium.com/uikit-live-preview-for-uiviewcontroller-and-uiview-f978fcc62a66

그라디언트 애니메이션 구현하기 https://betterprogramming.pub/animate-your-gradient-in-swift-52186b9b14d3

UITableView 펼치거나 접기 https://medium.com/azikus/collapse-and-expand-uitableview-cells-like-a-pro-df4a2fd85287

커스텀 탭바 만들기 https://betterprogramming.pub/how-to-create-a-custom-tabbar-in-swift-d44b3db3ac0e

원Circle을 다루는 방법들 https://betterprogramming.pub/create-animate-and-customise-circles-in-swift-84419881c597

콜랙션뷰나 테이블뷰에서 지원하는 DiffableDatasource를 사용하려면 Model에 UUID 타입 id를 지정해줘야 합니다. IndexPath 대신에 UUID 타입 id를 활용해서 셀을 다루는 방식을 소개합니다. 저장소는 패키지로 만들어진 건 아니고 예제 코드라고 보시면 되겠네요. https://rafal-prazynski.medium.com/uuid-over-indexpath-3ac126e85304 https://github.com/Rafal-Prazynski/UUID_over_IndexPath

macOS 메뉴바 앱 만들기 https://medium.com/macoclock/how-to-make-a-macos-menu-bar-app-bfdbbcd76077

3rd-party 라이브러리 없이 겹쳐지는 입력 화면 구현하기 https://medium.com/next-level-swift/creating-a-modern-ios-input-layover-with-swift-and-no-third-party-libraries-df40ced9e9ef

UILabel 베이스라인을 맞추기 위해서 고려할 사항을 설명해줍니다. 디자이너분들은 1px 안 맞는것도 눈치챈다니까요! https://medium.com/mobimeo-technology/what-if-your-designers-want-a-baseline-grid-on-ios-d5234c7b52c0

lazy 이미지 로딩 구현하고 테스트하기 https://stevenpcurtis.medium.com/lazily-load-images-in-swift-4206b5d5d754 개인적으로 이렇게 이미지 뷰 확장하는 것을 별로 좋아하지 않지만 처리하는 방식을 이해하는 데 도움이 되길 바라는 마음에 공유합니다 ㅎㅎ

self-sizing 테이블뷰 셀 내용을 SwiftUI로 처리하는 방법 https://noahgilmore.com/blog/swiftui-self-sizing-cells/ 이 방식이 특이해서 작년 자료지만 공유합니다

프레임워크

IDFA 광고를 위한 개인 추적 권한 대비하기 https://swiftsenpai.com/development/get-ready-apptrackingtransparency/

사용자 추적과 데이터 사용에 대한 이해 - 윗 글과 함께 보시면 도움이 되실 것 같습니다. https://santoshbotre01.medium.com/ios-14-5-data-usage-and-user-tracking-in-depth-understanding-f68c573117f

로그 라이브러리 컨셉 https://thinkdiff.net/swift-how-to-write-a-complete-logger-c538f34cc687

GCD 큐 QoS 짧은 소개 https://medium.com/p-society/what-is-qos-in-gcd-grand-central-dispatch-queues-d0f4d2691894 DispatchQueue.main.sync 동작 방식 https://sarawanak.medium.com/demystifying-dispatchqueue-main-sync-b59b77e4f502

콤바인 프레임워크 소개 https://santoshbotre01.medium.com/getting-started-with-the-combine-framework-in-swift-4916b875d913

콤바인으로 코어 데이터 NSManagedObject 관찰하기 https://www.avanderlee.com/combine/nsmanagedobject-observe-changes-core-data/

Pragmatic-Programmers가 미디엄에 들어오고 나서 책 내용을 올려주는 경우가 있습니다. 그 중에서 코어 데이터에 대한 책 내용입니다. https://medium.com/pragmatic-programmers/table-of-contents-fbdecbc1a50a

RxSwift와 Reactive 프로그래밍 https://medium.com/multinetinventiv/rxswift-and-reactive-programming-a0920317deb0

SpriteKit으로 지니genie 애니메이션 효과 구현하기 https://harshil.net/blog/recreating-the-mac-genie-effect

iOS 앱 출시하기 전에 개발환경에서 맥용 도구로 콘텐츠 미리가져오기 https://medium.com/@myshkinasasha/how-to-preload-content-for-ios-app-f2cb3358ff99

JavaScriptCore와 스위프트 함께 쓰기 https://www.andyibanez.com/posts/javascriptcore-and-swift/

접근성 개선하기 https://www.cephalopod.studio/blog/refining-accessibility-lessons-learned 지난 달에 접근성 관련 온라인 세미나도 있었는데 이런 사례가 많아지면 좋겠습니다.

헬스킷을 위한 콤바인 퍼브리셔 만들기 https://isalima.xyz/create-publishers-for-healthkit

유료 앱에서 필요한 라이센스 검증 시스템 만들기 https://betterprogramming.pub/creating-a-licensing-system-for-paid-apps-in-swift-f88d04ac5598

단순한 API 콜 구현하기 https://betterprogramming.pub/simple-and-robust-api-calls-in-swift-4ddf8710d1a0

콤바인을 활용해서 API 설계하기 https://swiftwithmajid.com/2021/04/07/designing-api-using-combine-framework/

개발환경

나쁜 네트워크 환경 시뮬레이션하기 https://medium.com/codex/simulate-poor-network-conditions-in-ios-development-1c1912a33a51

가장 쓸만한 Xcode 단축키 모음 https://medium.com/next-level-swift/create-and-open-a-viewcontroller-with-xib-in-swift-9da77e4feeb7

스위프트UI 생산성을 높여주는 단축키 https://sarunw.com/posts/xcode-shortcuts-for-swiftui

처음으로 나만의 CocoaPod 배포하려면 https://abubkr-88114.medium.com/easy-steps-to-publish-your-first-cocoapod-a6805896b90e

코코아팟에서 SPM으로 마이그레이션하기 - (작년 자료지만) 위에 코코아팟과 함께 보면 좋을 것 같네요. https://milanpanchal24.medium.com/how-to-migrate-your-swift-project-from-cocoapods-to-swiftpm-e4403577598c

이미 앱 스토어에 출시해본 분들은 알고 계실 내용이지만, 처음하면 당황하는 내용들을 정리했네요. 앱 스토어 리뷰를 위한 스킴scheme 설정하기 https://betterprogramming.pub/demystifying-appstore-app-creation-and-ios-app-schemes-b9b5e5851a92

좀 지난 자료인데 텔레그램 소스를 Bazel로 빌드해서 실행하는 방법을 설명해줍니다. https://itnext.io/build-and-run-telegram-ios-v7-3-in-simulator-with-bazel-fe36f305bd55

로컬 스위프트 패키지로 프로젝트 모듈화하기 https://itnext.io/modularize-xcode-projects-using-local-swift-packages-8fd844c19081

M1 맥북에서 만든 native ARM64 코드를 시뮬레이터에서 실행하도록 해킹하기 https://bogo.wtf/arm64-to-sim.html

테스트

단위 테스트 소개 https://medium.com/ivymobility-developers/unit-test-in-ios-1cc224aa35c3

UIKit 콤바인으로 확장해서 MVVM 형태로 단위 테스트하기 https://hammyassassin.medium.com/extending-uikit-with-combine-mvvm-and-unit-tests-597f47c76630

도구/오픈소스

저는 swan 이라는 정적 분석 도구로 소스 의존성 분석하는 도구를 만들고 있습니다. 이와 비슷하게 Xcode 프로젝트를 분석해서 클래스가 아니라 모듈 수준에서 라이브러리와 패키지 의존성을 그래프로 그려주는 XCGrapher라는 도구가 있네요. https://itnext.io/graphing-xcode-project-dependencies-introducing-xcgrapher-cb99aa0a325e

정규표현식 작성과 검증을 도와주는 맥 앱 - ViRE https://apps.apple.com/app/vire-regex-you-can-read/id1550861119

디자인

멋진 앱 아이콘 만들기 https://www.shopify.ie/partners/blog/app-icon

iOS 15 UI 디자인이 바뀌지 않을까 https://medium.com/macoclock/the-new-look-of-ios-15-4bd6ee3664cb

특허와 저작권으로 사용할 수 없는 UI/UX 패턴들 https://onezero.medium.com/the-ui-ux-patterns-you-literally-cant-use-64875a5c965f

godrm commented 3 years ago

제30호 발행했습니다. https://stib.ee/SNK3

godrm commented 3 years ago

링크 오류가 있었네요. 개발 환경 > 쓸만한 Xcode 단축키 https://medium.com/simform-engineering/most-useful-xcode-shortcuts-7a0523b305d5