Tip-Calculator (8)
Add image Snapshot test Snapshot Test 간단하게 말해서 디자인 시안대로 UI를 잘 구현했는가에 대한 테스트 Snapshot Test Github 여기에 들어가면 readme에 설명이 있다. 이 라이브러리를 사용해서 테스트를 한다. import XCTest import SnapshotTest...
Add image Snapshot test Snapshot Test 간단하게 말해서 디자인 시안대로 UI를 잘 구현했는가에 대한 테스트 Snapshot Test Github 여기에 들어가면 readme에 설명이 있다. 이 라이브러리를 사용해서 테스트를 한다. import XCTest import SnapshotTest...
Unit Test 세팅 import XCTest import Combine @testable import tip_calculator final class tip_calculatorTests: XCTestCase { override func setUp() { super.setUp() } ove...
결과를 Result View에 출력 현재는 bind 함수에 콘솔로 보여주게만 되어있다. 그걸 이제 result view에 출력이 되도록 한다. func configure(result: Result) { let text = NSMutableAttributedString( string: String(result.a...
TipInputView publisher 생성 private let tipSubject: CurrentValueSubject<Tip, Never> = .init(.none) var valuePublisher: AnyPublisher<Tip, Never> { return tipSubject.eraseToAnyPub...
컴바인을 사용하여 Calculator ViewModel 만들기 input과 output 정의 우선 ViewModel을 구성할 CalculatorVM을 하나 만들어준다. import Foundation import Combine class CalculatorVM { struct Input { let billPubli...
컴바인에 대해 공부를 해야할 필요성을 느껴 공부를 하게 되었는데, Udemy 공부를 하면서 코드의 흐름은 파악이 되지만 정확하게 어떤 의미로 작동하는지를 확실하게 하기 위해 여기에 적는다. 이전에 패캠 강의를 구매해두고 Udemy꺼만 봤는데, 이럴때 도움이 될줄은 몰랐다. 내가 찾은 이미지와 내용 + 패캠강의를 mix시켜 적어보도록 한다. 사용예...
코드를 통해 이해해보기. 2탄 Scheduler let arrPublisher = [1,2,3].publisher let queue = DispatchQueue(label: "custom") let subscription = arrPublisher .map { value -> Int in // operator prin...
코드를 통해 이해해보기. Publisher & Subscriber let just = Just(1000) let subscription1 = just.sink { value in print("Received Value: \(value)") } // Received Value: 1000 하나만 전송하고 끝. let arrayPubli...
Input View 디자인 HeaderView라는 클래스를 하나 만들어 주고 시작한다. class HeaderView: UIView { init() { super.init(frame: .zero) } required init?(coder: NSCoder) { fatalError("...
Warning 해결 현재 실행을 하게되면 Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constra...