본문 바로가기

전체 글148

클린코드 6장 - 객체와 자료구조 자료 추상화 // 구체적인 Point 클래스 // 구현을 노출한다. public class Point { public var x: Double public var y: Double } // 추상적인 Point 클래스 // 클래스 메서드가 접근 정책을 강제한다. public protocol Point { func getX() -> Double func getY() -> Double // 조회는 각각 가능하지만 func setCartesian(Double x, Double y) // 설정을 2개의 값을 동시에 넣어주어야 한다. func getR() -> Double func getTheta() -> Double func setPolar(Double r, Double theta) } 변수를 private로 선.. 2021. 12. 20.
[RxSwift] Operator 결정 트리 1. 생성 나는 새로운 Observable을 생성하고 싶은데 그 Observable이 특정 항목을 생성해야 한다면: Just 구독 시점에 호출된 Action, Callable, Runnable 또는 그와 유사한 함수 등을 통해 생성된 항목을 리턴해야 한다면: From 지정된 시간 이후에 항목을 배출해야 한다면: Timer 특정 Array, Iterable 또는 유사한 형태의 소스로부터 항목들을 배출해야 한다면: From 퓨처에서 연속된 항목을 가져와야 한다면: From 반복적으로 연속된 항목을 배출해야 한다면: Repeat 사용자가 정의한 로직을 통해 생성되어야 한다면: Create 각각의 옵저버가 Observable을 구독한 후에 생성되어야 한다면: Defer 연속된 정수를 배출해야 한다면: Range.. 2021. 12. 14.
[Rxswift] Operators - To 1. To To — Observable을 다른 객체나 자료 구조로 변환한다 구현부 public func toArray() -> Single { PrimitiveSequence(raw: ToArray(source: self.asObservable())) } 예시 Observable.of("A", "B", "C") .toArray() .subscribe(onNext: { print($0) }) // ["A', "B", "C"] 출처 : http://reactivex.io/documentation/ko/operators.html ReactiveX - Operators 연산자 소개 ReactiveX를 지원하는 언어 별 구현체들은 다양한 연산자들을 제공하는데, 이 중에는 공통적으로 제공되는 연산자도 있지만 반대로.. 2021. 12. 14.
[Rxswift] Operators - 연결(9) 좀 더 정확히 제어되는 구독 역학을 가진 전문 Observable들 - Connect, Publish, RefCount, Replay 1. Publish Publish — 일반 Observable을 Connectable Observable로 변환한다 구현부 public func publish() -> ConnectableObservable { self.multicast { PublishSubject() } } 2. Connect Connect — 구독자가 항목 배출을 시작할 수 있도록 Connectable Observable에게 명령을 내린다 구현부 override func connect() -> Disposable { return self.lock.performLocked { if let connect.. 2021. 12. 14.
[WWDC15] - Optimizing Swift Performance 안녕하세요 ◠‿◠ 고고입니다! 이 WWDC의 아젠다 1. swift 2.0 성능 업데이트 2. swift 성능 이해하기 3. swift 프로그래밍의 성능 통계하기 위해 Instruments 사용하기 개발자들은 아래의 high-level 기능들을 대상으로 하는 컴파일러 최적화를 구현하여 Swift를 빠르게 만들습니다. 그 중 한 가지 예를 보겠습니다. Bound checks elimination Swift는 당신이 배열의 밖을 읽거나 쓰지 않도록 보호합니다. 컴파일러는 조건을 위로 보내 한 번만 실행되도록하여 최적화했습니다. Xcode는 파일을 개별적으로 컴파일합니다. 따라서 컴퓨터의 여러 코어에서 많은 파일들을 병렬로 컴파일할 수 있습니다. 하지만 문제는 옵티마이저의 범위가 하나의 파일로 제한된다는 것입.. 2021. 12. 14.
Xcode Cloud Beta 튜토리얼 (2) Xcode Cloue Beta 튜토리얼 (1) - https://gogo-ios.tistory.com/ 안녕하세요 ◠‿◠ 고고입니다. 이 편에서는 Worflow가 성공하도록 설정하겠습니다. 저번 편에서 master 브랜치를 첫번째 빌드로 정했더니, Fail이 떴습니다. XcodeGen을 사용하느라 .xcodeproj를 깃허브에 올리지 않아서 .xcodeproj가 없어서 발생한 오류입니다. 이건 조금 후에 고치고, 다른 기능들을 살펴보겠습니다. Product -> Xcode Cloud에서 빌드 보기, 시작하기 등등의 기능이 더 보입니다. App Store Connect에서도 Xcode Cloud를 볼 수 있습니다. 이제 오류를 해결해보겠습니다. 우선 이 오류를 고치려면 CI/CD를 하기 전에 스크립트를 실.. 2021. 12. 8.