10주차 과제 (5)
상세페이지 돌아가기 버튼 구현 private var closeButton: UIButton = { var button = UIButton () button.backgroundColor = .gray button.setImage(UIImage(systemName: "x.circle"), for: .normal...
상세페이지 돌아가기 버튼 구현 private var closeButton: UIButton = { var button = UIButton () button.backgroundColor = .gray button.setImage(UIImage(systemName: "x.circle"), for: .normal...
코드 리팩토링 아무생각없이 구글링을 하다가 보완할점을 발견하여 보강을 하려 한다. 출처 우연히 발견한건데 이분글에는 없는게 뭘까 라는 생각이 든다. combine을 사용하면서 publisher로 선언한 변수를 그냥 계속 쓰는듯하다. 나는 그러지않고 vc에서 다시 배열을 만들어서 거기에 집어넣었는데, 글을 참고하여 더 Combine스럽게 바꿔보려...
이제 진짜 문제의 시작. 문득 씻다가 이런생각이 들었다. VM에 대해서 생각을 좀 해보았는데, 우리가 VC에 TableView관련 함수를 쓸 수 밖에 없었던 가장 큰 이유는, VC에 tableview가 있었고, 그걸 TableView 관련 protocol들을 가져왔어야 했기 때문이었다. 그러다보니 자연스럽게 VC가 처리할 내용이 많아졌다. M...
SearchBar Publisher 생성 CollectionView, TableView의 Delegata, DataSource를 어떻게 해야할지 고민 하기전에, 우선 SearchBar에 대한 부분은 먼저 끝내는게 좋다고 판단했다. Publisher를 하나 만들어준다. 사이트를 참고하여 searchBar에 publisher를 연결하여 구현해본...
이번에도 과제가 주어졌다. 사실 MVC로하면 길어야 이틀짜리 과제인데, 이번엔 좀 새로운 시도를 해보고자 컴바인을 공부를 하면서 mvvm도 약간 공부를 했는데, 그래서 이걸 적용을 해서 과제를 해보면 아주 Best of Best 일것 같아서 이렇게 과제를 해보려 한다. 물론 TableView, CollectionView 도 DataSource가 ...
UI Test Hacking with Swift 에서 어떤 property를 사용할지 확인이 가능하다. 파일을 하나 만들어준다. UITest를 체크를 꼭 하자. 이 파일은 일종의 Constants를 관리한다. enum ScreenIdentifier { enum ResultView: String { case t...
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...