본문 바로가기

분류 전체보기

(62)
SwiftUI 공부 with TCA 회사에서 진행중인 프로젝트는 이제 화면단위로 SwiftUI의 전환이 이루어지고있고 현재 SwiftUI 전환이 약 6개월정도 이루어졌다 현재 진행중인 피처들은 모두 SwiftUI개발을 진행하고있지만 개발을 하면 할수록 과거 취준생 시절했던 SwiftUI 전혀 다르고 그때는 개념이 없이 사용만 했던 시즌이기에 새롭게 공부가 필요성을 느끼게 되었고한국에서 가장 많이 사용되는 TCA에 대해 분석하고 왜 이렇게 만들어져있는지를 분석해보려고한다.https://github.com/pitt500/OnlineStoreTCA GitHub - pitt500/OnlineStoreTCA: A demo covering the basics of the Composable Architecture (TCA)A demo covering..
[wwdc] Design protocol interfaces in Swift https://developer.apple.com/videos/play/wwdc2022/110353 Design protocol interfaces in Swift - WWDC22 - Videos - Apple DeveloperLearn how you can use Swift 5.7 to design advanced abstractions using protocols. We'll show you how to use existential types, explore how...developer.apple.comSwift에서 프로토콜의 설계를 진행하다보면 여러가지의 추상화 타입을 만들게 되고 이를 기반으로 끝없이 타입을 추론해가며 개발이된적이 있다 그리고 여러가지 이유로 개발을 진행할때 많은 부분들의 추상화를..
WWDC 2019 Binary Frameworks in Swift 보호되어 있는 글입니다.
Actor 공부하기 지난번 WWDC를 통해 Actor에 대해 알아보았는데 영상만 봐서는 이해를 했다? 의 느낌은 부족하여 문서를 더 읽어보고 하나씩 테스트 해보면서 공부를 하려고한다. https://github.com/swiftlang/swift-evolution/blob/main/proposals/0306-actors.md#interleaving-execution-with-reentrant-actors swift-evolution/proposals/0306-actors.md at main · swiftlang/swift-evolutionThis maintains proposals for changes and user-visible enhancements to the Swift Programming Language. - s..
WWDC2021 Protect mutable state with Swift actors Swift Actor를 이용한 데이터레이스를 방지해보자 class Counter { var value = 0 func increment() -> Int { value = value + 1 return value }}let counter = Counter()Task.detached { print(counter.increment()) // data race}Task.detached { print(counter.increment()) // data race} 위의 상황에서 개발자는 자연스럽게 데이터레이스 현상을 겪게된다 Task.detached를 통해 서로 다른 스레드에서 하나의 클래스의 내부변수를 바꾸려는 시도가 생김 위의 동작에서 아래의 함수가 동시에 실..
WWDC 2021 Meet AsyncSequence 정리 어제 시청중이던 WWDC영상의 마지막에 Meet AsyncSequence에 대한 이야기가 나와 다음날 바로 정리하는게 좋겠다 생각이 들어빠르게 정리해본다. @mainstruct QuakesTool { static func main() async throws { let endpointURL = URL(string: "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.csv")! //비동기 처리를 순차적으로 처리해주는 지난번 글에 정리한 for try await 구문 for try await event in endpointURL.lines.dropFirst() { let va..
WWDC 2021 Explore structured concurrency in Swift 정리 WWDC 정리글 2차 어제 async await 영상을 정리했는데 관련 영상인 Swift의 구조화된 동시성 영상도 여유가 있을때 미리 정리해두려고한다. 프로그래밍은 시간이 지나면서 위에서 아래로 코드를 읽는 형태로 발전해나갔고 구조화잘되있고 정리가 잘 된 위 -> 아래 코드블럭은 개발자의 가독성이 높아진다. func fetchThumbnails( for ids: [String], completion handler: @escaping ([String: UIImage]?, Error?) -> Void) { guard let id = ids.first else { return handler([:], nil) } let request = thumbnailURLRequest(for: id) ..
WWDC 공부 정리 1차 Meet async/await in Swift WWDC를 하나씩 정리해야할 필요성을 느끼게 되고 현재 재직중인 회사에서 네트워크 계층을 리팩토링하는 과정중기존의 비동기코드의 completion Block을 async/await 새롭게 리팩토링하게되었고 async/await에 대한 지식이 필요하고 기존에는async/await는 completion Block을 간단하게 쓸려고 async/await 아니야? 정도만 알고있던 지식의 견문을 넓히기 위해 나 자신을 위해 블로그글을 작성합니다.  Swift async/await가 탄생한 배경 completion Block / clouser의 코드는 너무 복잡하고 개발자들을 힘들게 하였고 이를 문제삼아 async/await가 탄생되었다.그리고 completion Block / clouser 보다 더 안전하게 개발..