letswiftconf / newsletter

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

제27호 (2021년 3월 14일 발행) #30

Closed godrm closed 3 years ago

godrm commented 3 years ago

다음번에는 뉴스 앱과 함께 찾아오겠습니다. 라고 써봅니다 ㅎㅎ

godrm commented 3 years ago

필권님 블로그 - SwiftGen으로 알아보는 선언형 프로그래밍 https://pilgwon.github.io/post/swiftgen-with-declarative

godrm commented 3 years ago

민소네님 블로그 - SwiftPM에서 ProcessInfo Environment 기반 환경설정 https://minsone.github.io/programming/processInfo-environment-based-build-configutation-swift-package

godrm commented 3 years ago

일반

벤쿠버에서 창업했던 buddybuild가 2018년에 애플에 인수되고 서비스를 셧다운 한다고 하네요. https://www.macrumors.com/2021/03/01/buddybuild-closing-after-apple-buyout/

스위프트로 iOS 개발하는 경우 좋은점과 나쁜점 https://ajaykumbhar-31775.medium.com/swift-development-for-ios-the-good-bad-and-latest-557bf4939cd7

코드리뷰할 때 Pull Requests 완벽하게 작성하기 https://betterprogramming.pub/how-to-perfect-your-pull-requests-9d575ce4b9ff

설계 관점에서 기술 선택하기 https://medium.com/codex/choosing-technologies-as-an-architect-8284a661f6a4

AWS 맥 인스턴스 하숑기 https://medium.com/macoclock/mac-experience-on-cloud-2021-68ef20c5ab7f

제목만으로도 엄청난 어그로가 될 수 있는 글이네요. OOP가 왜 우리를 고통스럽게 만드는가? 개인적으로 OOP는 객관성 있는 객체 설계가 어렵다는 것은 이해하지만, 주장하는 논거가 빈약해 보이네요. 댓글에도 필자의 오해를 지적하는 글들이 엄청나게 달려있습니다. 팝콘을 준비해서 읽어보세요 https://suzdalnitski.com/oop-will-make-you-suffer-846d072b4dce

애플

1984년 오리지널 매킨토시는 어떻게 생겼더라. 에뮬레이터로 체험하기 https://uxdesign.cc/the-1984-apple-macintosh-how-does-it-look-today-d08dde79da05

아직 한국에서는 자주 못 본 것 같은데, 앱 클립 관련 지표도 지원한다고 합니다 https://help.apple.com/app-store-connect/#/dev994e151ba

언어 : Swift

모든것을 다 알고 있는 God Class 대신에 Protocol로 작게 나누는 방식에 대해 소개합니다 https://medium.com/geekculture/swift-5-how-protocol-oriented-programming-saves-your-apps-part-1-714db7d41b98

곧 만나게 될 async/await 소개 https://broken-bytes.medium.com/using-async-await-in-swift-development-55a08fdcc224

Result Builder (@resultBuilder)로 사전 빌드하기 https://alejandromp.com/blog/better-dictionary-literals-with-swift-result-builders

스위프트 참조 타입이 앱 시작시간에 나쁜 이유 https://medium.com/geekculture/why-swift-reference-types-are-bad-for-app-startup-time-90fbb25237fc

탈출 클로저에 대한 짧은 요약 https://medium.com/codex/swift-closures-escaping-explained-f8c92a1f7d79

제네릭의 강력함 https://medium.com/geekculture/the-power-of-generics-ba37053a95d9

Objective-C 브릿지 연결할 때 주의해야 하는 이유 https://betterprogramming.pub/why-you-need-to-be-careful-with-objective-c-bridging-in-swift-fe6b197d2e87

복구 가능한 에러와 불가능한 에러 다루기 https://betterprogramming.pub/recoverable-and-non-recoverable-errors-in-swift-e6e4c1de89ba

@autoclosure 사용할 때 성능향상에 대해 https://www.avanderlee.com/swift/autoclosure/

Objective-C 런타임과 Private APIs 다루기 https://medium.com/@victor.pavlychko/private-apis-objective-c-runtime-and-swift-ceaeefbb6e48

왜 String 서브스크립트 인덱스는 Int가 아닌가? https://medium.com/@banghua.zhao/why-cannot-subscript-string-with-an-int-in-swift-281cfc83402

프로토콜 지향 프로그래밍이 왜 중요한가 https://medium.com/geekculture/swift-5-how-protocol-oriented-programming-saves-your-apps-part-1-714db7d41b98

기본 제공 타입을 사용하는 것을 피해야하는 이유 https://medium.com/swlh/4-fun-reasons-to-avoid-using-primitive-swift-types-in-your-code-1000c3fa64a5

설계 구조 : 패턴

SOLID 설계 원칙으로 문제 해결하기 https://betterprogramming.pub/5-problems-faced-when-using-solid-design-principles-and-how-to-fix-them-df6dbf3699fb

응답 체인 패턴으로 딥링크 다루기 https://levelup.gitconnected.com/handle-deep-linking-with-chain-of-responsibility-pattern-815902a9dc50

Clean Swift (VIP) 설명과 템플릿 https://yonivav.medium.com/clean-swift-explanation-templates-3cade3d5e0ad

LRU 캐시 구현하기 https://blog.usejournal.com/a-simple-lru-cache-implementation-in-swift-5-d3df244a8d02

뷰 프로그래밍 : SwiftUI

SwiftUI는 타당한가 - SwiftUI만 쓸꺼냐 UIKit도 쓸꺼냐 다들 고민인가 봅니다. 이 사람은 진리의 둘다!를 외칠꺼 같습니다. https://craft.faire.com/swiftui-the-faire-way-a8c702999195

로딩될 때 흐릿하게 움직이는 Shimmer 구현하기 https://joshhomann.medium.com/generic-shimmer-loading-skeletons-in-swiftui-26fcd93ccee5

내비게이션바에 Edit 버튼으로 편집모드 EditMode 다루기 https://michaellong.medium.com/swiftui-and-the-intermittent-editmode-b714c923f536

SwiftUI 미리보기 살펴보기 https://swiftwithmajid.com/2021/03/10/mastering-swiftui-previews

SwiftUI vs InterfaceBuilder 장단점 비교 https://medium.com/swift-blondie/swift-ui-vs-interface-builder-aa4cddd79653

자석 효과 제스처 구현하기 https://betterprogramming.pub/swiftui-magnification-gesture-fa41b9bd404e

스크롤뷰 코드로 다루기 https://levelupprogramming.net/swiftui-how-to-create-a-chat-screen-and-scroll-automatically-d82b4984d888

스크롤하는 콘텐츠 다루기 https://medium.com/swlh/creating-scrollable-content-using-swiftuis-navigationview-and-scrollview-761b57b2f160

온보딩을 위해 동적인 페이지 단위 뷰 만들기 https://www.avanderlee.com/swiftui/dynamic-pager-view-onboarding/

커스텀 액션시트 카드뷰 만들기 https://levelupprogramming.net/swiftui-how-to-create-a-custom-actionsheet-card-view-2c98c2ce463d

경로찾기 구현하기 https://medium.com/swlh/pathfinding-with-swift-and-swiftui-f15d53089bc6

파일 매니저 다루기 https://betterprogramming.pub/using-filemanager-in-swiftui-44bc0f33995e

BLoC 구조로 개발하기 https://medium.com/rewrite-tech/adapting-bloc-architecture-in-swiftui-using-combine-b8e6d4a17db5

스택뷰와 효율적인 Modifier 수식어 사용하기 https://levelup.gitconnected.com/how-to-stack-views-use-modifiers-efficiently-in-swiftui-e563c5e8989b

코드로 직접 라우팅하기 https://medium.com/dev-genius/programmatic-routing-in-swiftui-670524b1946c

NSFetchedResultsController 다루기 https://codeburst.io/how-to-use-nsfetchedresultscontroller-with-swiftui-de5b75f1b8d0

Attributed String 표시하기 https://medium.com/makingtuenti/rendering-attributed-strings-in-swiftui-8a49f6cf2315

뷰 프로그래밍 : UIKit

CollectionView로 쓸어넘기는 Carousel 화면 구현하기 https://medium.com/swlh/swift-carousel-759800aa2952

swiftgen으로 Assets 참조하는 안전한 코드 생성하기 https://medium.com/nerd-for-tech/swiftgen-the-swift-code-generator-91c266671149

키보드에 딱 맞는 뷰 구현하기 https://betterprogramming.pub/how-to-adjust-views-to-fit-the-keyboard-in-ios-63bcf42163b8

AlertController 대신 커스텀 Alert 다루기 https://kenny-dubroff.medium.com/refactoring-from-a-uialertcontroller-to-a-custom-alert-viewcontroller-3ab3b1a80371

오브젝티브-C로 SwiftUI 뷰 표시하기 https://levelup.gitconnected.com/presenting-swiftui-views-from-objectivec-12f49f88716e

버튼을 위한 Tap 퍼브리셔 만들기 https://samuelacewilliam.medium.com/creating-a-tap-publisher-for-swiftui-buttons-c5732568fa68

프레임워크

Combine 활용해서 절차형 코드를 리팩토링하기 https://betterprogramming.pub/refactoring-imperative-code-using-combine-in-ios-fdd9991da29f

웹소켓을 쓰려면 Starscream 이냐 URLSession 이냐 https://medium.com/macoclock/swift-websockets-starscream-or-urlsession-in-2021-ec9875fde86e

CombineCocoa으로 UIKit 이벤트 퍼브리싱하기 https://lickability.com/blog/building-a-customizable-uitextfield-with-combine/

CombineCocoa 오픈소스 저장소 https://github.com/CombineCommunity/CombineCocoa

사용자 데이터 저장하는 5가지 방법 - 더 세분화할 수도 있겠지만 어떤 역할의 데이터고 얼마나 자주 읽고 쓰냐에 따라 선택할 수 있는 경우는 많은 것 같습니다. https://betterprogramming.pub/5-ways-to-store-user-data-in-your-ios-app-595d61c89667

realm 으로 모바일 채팅 앱 구현하기 https://medium.com/realm/building-a-mobile-chat-app-using-realm-integrating-realm-into-your-app-7e13d4da51ea

RxSwift를 써야하는 이유 https://dylancfe15.medium.com/why-should-we-use-rxswift-624da73b0ad2

RxDataSources로 멀티섹션 애니메이션 가능한 CollectionView/TableView 코드 https://medium.com/@varender.iphone/rxdatasources-for-multiplesections-with-animation-and-without-animations-collectionview-and-d1028d483c32

데이터구조 없이 JSON 인코딩 다루기 https://jobandtalent.engineering/statically-typed-json-payload-in-swift-bd193a9e8cf2

푸시 노티피케이션 숨겨진 문제들 https://passiondev.medium.com/ios-push-notification-hidden-problems-in-actual-projects-8ad554bb69cc

Combine 기반에서 self와 cancellable 참조 해결하기 https://www.swiftbysundell.com/articles/combine-self-cancellable-memory-management/

개발환경

코어 데이터 Fetch Request 템플릿 https://medium.com/nerd-for-tech/coredata-fetch-request-template-e07e94bc013e

.pbxproj 충돌로 시간보내지 말자 https://medium.com/macoclock/stop-resolving-merge-conflicts-in-pbxproj-51e749759b8b

테스트

단위 테스트로 메모리 누수 감지하기 https://levelup.gitconnected.com/detecting-memory-leaks-using-unit-tests-in-swift-c37533e8ee4a

단위 테스트 기초 : MVC 패턴 효과적으로 적용하기 https://medium.com/academy-eldoradocps/the-foundations-of-unit-testing-2-3-effectively-applying-the-mvc-pattern-in-swift-3ad6838873a9

Combine 기반으로 단위 테스트하기 https://www.swiftbysundell.com/articles/unit-testing-combine-based-swift-code/

기타

스위프트 코드를 도와주는 7가지 도구 https://betterprogramming.pub/7-tools-to-help-you-write-better-swift-code-5e25bc77e88d

심볼릭 크래시 리포트 보여주는 맥앱 https://christiantietze.de/posts/2021/03/symbolicate-crash-logs/ 저장소 https://github.com/inket/MacSymbolicator

Swift Package 모아서 보여주는 swiftpackageindex 서비스에 내 패키지 표시하기 https://swiftpackageindex.com https://medium.com/swlh/how-to-add-your-swift-package-to-the-swift-package-index-ff6952738376

나름 유명한 diff 도구 Kaleidoscope를 Xcode 디버거로 활용하기 https://blog.kaleidoscope.app/2021/02/22/xcode-debugger-integration/

godrm commented 3 years ago

제27호 발행했습니다. https://stib.ee/Rl83