letswiftconf / newsletter

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

제31호(2021년 5월 9일 발행) #34

Closed godrm closed 3 years ago

godrm commented 3 years ago

이제 다음 이벤트는 WWDC21을 향해가겠네요!

godrm commented 3 years ago

박병일님 블로그 - OpenCV 사용하기 http://practical.kr/?p=391 민소네님 블로그 - 서드파티 라이브러리 잘 관리하기 : Static Library와 Dynamic Library의 관점 분리 https://minsone.github.io/mac/ios/managed-third-party-library-static-dynamic

godrm commented 3 years ago

애플

애플 2분기 실적 발표가 공개되었습니다. 계속 사상 최고치를 갱신하고 있네요. 특히 M1 맥 때문인지 맥 부문 매출이 엄청 올랐다네요. 애플 망한다는 기사들 요즘은 없나요? https://www.apple.com/kr/newsroom/2021/04/apple-reports-second-quarter-results/

앱 프로모션을 위해서 검색 광고 방식을 소개했습니다. https://developer.apple.com/news/?id=p5kjwfnf

애플 공식 소식은 아니고 애플 개발자 문서가 불편해서 그것을 개선해보자는 시도를 하고 있네요. https://www.hackingwithswift.com/articles/231/reimagining-apples-documentation

스위프트 5.4가 Xcode 12.5와 함께 공식 배포되었습니다. https://swift.org/blog/swift-5-4-released/

일반

일상에서 느껴지는 개발자 유머들 https://levelup.gitconnected.com/10-funny-jokes-from-every-day-struggles-of-a-programmer-f590c9b1ae3

AirTags 후기가 올라오고 있습니다. 타일과 비교하기도 하고, 스토킹에 사용되기도 했다는 단점도 있을 것 같습니다. 몰랐는데 애플 아이디 하나당 16개까지만 등록이 된다고 하네요. 그나저나 한국에서는 어떻게 되는걸까요? 차라리 그냥 안된다고 누가 좀 알려주면 좋겠습니다 ㅎㅎ https://medium.com/tonys-tech-corner/apple-was-smart-not-to-put-a-key-ring-doohickey-on-airtags-a03d1fba071a

CPU를 빠르게 만드는 것들을 아주 쉽게 설명해주는 글입니다. https://medium.com/geekculture/what-makes-a-cpu-fast-344517cf91f9

M1X를 기대하면서 M1에 대한 세부적인 비교를 해주는 글입니다. https://erik-engheim.medium.com/debunking-apple-m1x-naysayers-6f72c96c5502

M1 맥을 위한 틱-톡 모델의 부활. 인텔이 써먹었던 한 번은 CPU 내부 구조를 개선하고, 한 번은 제조 공정을 개선하는 전략이 다시 부활한 것 같다는 의견입니다. https://medium.com/macoclock/the-rebirth-of-the-tick-tock-model-gave-us-the-m1-mac-c1c8ddf0aaeb

맥 없이 iOS 앱 개발하는 방법. VMWare에서 가상으로 macOS를 돌리는 방법인데 사실 애플에서 권장하는 방법이 아닙니다. 아직까지 macOS는 맥 하드웨어가 있어야 설치하고 사용하는 사용자 라이센스 정책을 펼치기 때문입니다. https://blog.devgenius.io/how-i-developed-an-ios-app-without-a-mac-11a05413927a

개발자에게 최고 키보드는 무엇일까요? 다들 정말 기계식 키보드 하나씩 있으신가요? https://bajcmartinez.medium.com/best-keyboards-for-programming-in-2021-24545440898d

언어 : Swift

토스 슬래시21 - 안정원님 발표 : 메모리에 남지않는 문자열 String 내부 구조를 이해하고 ByteBuffer를 비우는 방법을 제시하고 있습니다. https://toss.im/slash-21/sessions/3-6 발표자료 https://static.toss.im/slash21/pdf/[토스_SLASH%2021]%20메모리에%20남지%20않는%20문자열_안정원.pdf

스위프트로 특정 조건을 명시하면 코드를 생성해주는 ResultBuilder 활용한 사례가 점점 많아지고 있네요. 이번에는 특정한 상태머신을 위한 DSL입니다. https://twittemb.github.io/posts/2021-02-13-StateMachineDSL/

짧고 간결한 글이지만, 금액이나 환율을 표시하기 위해서 Double 타입과 Decimal 타입을 활용하는 방식을 소개합니다. https://stevenpcurtis.medium.com/this-is-how-to-store-money-and-currency-using-swift-89fbf9697dfa

새로 공개된 스위프트 콜랙션 라이브러리 중에서 순서가 보장되는 집합 OrderedSet 사용하는 방법을 소개합니다. https://oleb.net/2021/ordered-set/

긴 매개변수 목록을 피하는 방법

C++ 에서 스위프트로 스위치하기 https://alimovlex.medium.com/switching-from-c-to-swift-3920f3494e9b

UUID 이외에 타입에 안전하게(type-safe) Identifier 지정하기 https://stevenpcurtis.medium.com/using-type-safe-identifiers-in-swift-5b8c5ca2d624

똘똘한 5가지 Extension 방법들 https://levelup.gitconnected.com/5-swift-extensions-to-write-smarter-code-7287b86fde68

대수적인 데이터 타입 (Algebraic Data Types) https://medium.com/nerd-for-tech/algebraic-data-types-in-swift-2a777b24253d

안전한 Enum 디코딩 방법 https://medium.com/mobimeo-technology/safely-decoding-enums-in-swift-1df532af9f42

스위프트포럼에 제안된 동기 코드를 async 활용한 비동기 코드로 바꾸는 방법 https://forums.swift.org/t/initiating-asynchronous-work-from-synchronous-code/47714

설계 구조 : 패턴

VIPER 프로젝트 시작하기 - 이 글은 단지 클래스를 나누는 것 뿐만 아니라 모듈 관점까지 확장해서 설명해서 좋네요. https://anup2028.medium.com/viper-design-pattern-or-architecture-swift-debee247f9cf

싱글톤 클래스의 매력 https://medium.com/next-level-swift/the-power-of-the-swift-singleton-class-6868c4bef4f7

확장 가능한 구조를 위한 스켈레톤 프로젝트 https://bobbyphtr.medium.com/a-skeleton-project-for-scalable-ios-development-a2a2bf0bc963

뷰 프로그래밍 : SwiftUI

스위프트 5.4 새로운 기능으로 뷰 개발에서 바뀌는 것들 https://maheshsai252.medium.com/taking-advantage-of-swift-5-4-changes-in-swiftui-development-d06a74cd87a

TCA와 함께 실제 제품에 SwiftUI 적용하기 https://toupper.medium.com/swiftui-in-welt-first-blood-f26e0bb5aec2

SwiftUI 탭뷰(TabView)의 비밀. 탭바를 상단에 위치하는 것을 애플이 권장하는 않지만 뭐든지 시도해보는 것은 좋은거겠죠? https://kristaps.me/blog/swiftui-tabview/

커스텀 상단 탭바(Tab Bar) 구현하기 https://abbasgujjar2525.medium.com/custom-top-tab-bar-in-ios-swift-swiftui-93e4fc3e5d5b

파이 차트 구현하기 - 이제 그래프 그리는 것도 단골 주제가 되어 가는 것 같네요. https://betterprogramming.pub/build-pie-charts-in-swiftui-822651fbf3f2

내비게이션링크를 다룰 때 이상한 점 https://betterprogramming.pub/swiftui-navigationlink-does-what-67947249bd8c

VisionKit로 문서 스캐닝 앱 구현하기 https://prafullkumar77.medium.com/swiftui-how-to-build-document-scanner-using-apple-visionkit-53939a743e70

카드뷰 만들기 https://abbasgujjar2525.medium.com/cardview-in-ios-swift-swiftui-52b4ac9d8f32

Realm 데이터 @ObservedResults 활용하기 https://medium.com/realm/mongodb-realm-and-swiftui-observedresults-bb8822ec305f

뷰 프로그래밍 : UIKit

테이블뷰에서 구분 선을 고치는 방법 https://stevenpcurtis.medium.com/fix-those-annoying-separator-lines-in-swift-9837cd78e3e6

오토레이아웃으로 슬라이드 애니메이션 처리되는 메뉴 구현하기 https://medium.com/next-level-swift/create-an-animated-slide-up-menu-programmatically-with-auto-layout-d7cd095623d4

유투브 스타일 로딩 애니메이션 구현하기 https://medium.com/swlh/creating-youtube-style-loading-animation-d30b465ce0ca

DiffableDataSource 테이블뷰 다루기 https://medium.com/my-ios-studies-en/first-steps-with-uitableviewdiffabledatasource-part-1-a70f12dfd5c9

UICollectionViewCell 다이나믹 높이 처리하기 https://medium.com/swift2go/implementing-a-dynamic-height-uicollectionviewcell-in-swift-5-bdd912acd5c8

키-값 옵저빙으로 화면 업데이트하기 https://medium.com/geekculture/week-4-reactive-ios-applications-with-key-value-observing-b11fdd0483dd

커스텀 뷰 컨트롤러 트랜지션 https://medium.com/geekculture/custom-view-controllers-transitions-aa8c052f8049

프레임워크

박병일님 - OpenCV 프로젝트 초기 설정하기 http://practical.kr/?p=391

코어 데이터 소개와 시작하기 https://tonywillson.medium.com/core-date-in-swift-basics-ededf37574b0

iOS 14.5에서 가장 뜨거운 감자는 앱 추적 투명성이겠죠. 커니님 - 앱 추적 투명성 적용하기 https://androidhuman.com/2021-04-28-ios_att_explainer

앱 추적 추명성 프레임워크 활용하기 https://medium.com/next-level-swift/app-tracking-transparency-framework-in-swift-and-ios-14-5-45f73697174a

파이어베이스로 문자열 로컬라이즈와 버전 관리하기 https://levelup.gitconnected.com/ios-strings-localization-and-versioning-with-firebase-be5c67087ddd

UDP 리스너 구현하기 https://itnext.io/udp-listener-in-swift-1e4a0c0aa461

Core Foundation 수준 API 중에서 메모리 관리에 도움을 주는 함수를 소개합니다. CFGetRetainCount(), CFGetAllocator() https://medium.com/geekculture/core-foundation-2-useful-memory-management-functions-447648693527

아고라 API를 활용해서 스트리밍 영상통화 서비스 구현하기 https://medium.com/agora-io/how-to-create-an-ios-or-macos-video-streaming-application-with-a-few-lines-of-code-8dac963934bb

URLSession 백그라운드 다운로드-업로드 태스크 다루기 https://www.avanderlee.com/swift/urlsession-common-pitfalls-with-background-download-upload-tasks

콤바인 파이프라인 타이밍 조절하기 https://www.swiftbysundell.com/articles/controlling-the-timing-of-a-combine-pipeline/

CIQRCodeGenerator로 QR 코드 생성하기 https://medium.com/geekculture/swift-qr-codes-in-2-minutes-8f4c2c8e070a

소켓 커넥션 다루기 https://medium.com/programming-with-pierre/connecting-to-socket-using-swift-5-19717fcc9c1

Date 타입 다루기 https://betterprogramming.pub/how-to-work-with-dates-in-swift-99f445a6179d

구글 계정으로 로그인하기 https://itnext.io/google-sign-in-as-deep-as-possible-ios-b35e3cf03ecf

GCD 활용하기 https://betterprogramming.pub/guide-to-multi-threading-gcd-83009f5d62cb 같이 읽으면 좋을만한 글입니다. Producer-Consumer 또는 Reader-Writer 문제를 해결하기 위해 GCD를 활용하는 방법에 대한 설명입니다. https://medium.com/swlh/the-readers-writers-problem-swift-edition-dcba94c3f02d 동시에 또는 배치Batch 작업을 위한 GCD API 활용방법입니다. https://betterprogramming.pub/a-look-at-concurrent-programming-in-swift-ce886bd49c31

개발환경

민소네님 - 서드파티 라이브러리 잘 관리하기 : Static Library와 Dynamic Library의 관점 분리 https://minsone.github.io/mac/ios/managed-third-party-library-static-dynamic

Xcode 스킴과 XCConfig로 개발환경 관리하기 https://yehiaberam.medium.com/how-to-manage-different-environments-using-xcode-schemes-6081ae3db55d

스위프트 5.4에 개선된 Swift Package Manager 내용들 https://www.fivestars.blog/articles/spm-5-4/

작년 12월 글이지만 앱 바이너리 사이즈에 대해 읽어볼 만한 글입니다. https://cbrauchli.medium.com/binary-size-woes-acb5d96f058a

iOS 앱 디버깅 기초 https://medium.com/wizeline-mobile/debugging-in-ios-40234caf52aa

테스트

어느 개발자가 iOS 개발할 때 TDD를 잘 활용하지 못하는가에 대한 반성글입니다. 이게 좋아! 하고 답을 알려준다기 보다 같은 앱을 TDD 안하고 개발할 때, TDD 적용해서 개발할 때를 스스로 비교해본 결과입니다. TDD로 개발할 때 시간이 좀 더 들어가지만, 설계에 대한 고민과 그것을 테스트하기 위해 작은 단위로 생각하게 되서 커밋도 작게 하게 된다고 하네요. https://wadedunk.medium.com/why-tdd-is-so-rarely-used-in-ios-development-4bc80dc773a9

도구/오픈소스

ResultBuilder와 스위프트 문법으로 정규표현식을 사용할 수 있는 DSL 오픈소스입니다. https://swiftpackageindex.com/kodlian/SwiftRegexDSL

iOS 앱 개발 생산성을 높여주는 5가지 라이브러리 - SwifterSwift, SwifterSwift, Hero, Alamofire, SnapKit https://medium.com/geekculture/week-6-five-swift-libraries-to-speed-development-up-9a6da15683e9

사용하지 않는 함수나 변수를 찾아주는 루비 스크립트 https://manvendrasinghrathore.medium.com/how-to-find-unused-swift-code-5dc8c0e6d031

디자인

영감을 받을만한 앱 디자인들 파트7 | 파트8 https://medium.com/theymakedesign/app-design-inspiration-7-61fcfd6ab673 https://medium.com/theymakedesign/app-design-inspiration-8-4ef4915f9464

godrm commented 3 years ago

제31호 발행했습니다. https://stib.ee/aCO3