10주차 과제 (9)
우선 과제제출은 끝났다. 하지만 Combine이라는 새로운 녀석을 쓰다보니 예외처리하는 부분이 상당히 빡세다. 우선 시급한 예외처리 서치바에 내용이 지워졌을때 빈배열 만들기 & page init 현재 최근 본 리스트에 coredata에 이상하게 입력이 되는 문제 1. 첫번째 문제 Publisher...
우선 과제제출은 끝났다. 하지만 Combine이라는 새로운 녀석을 쓰다보니 예외처리하는 부분이 상당히 빡세다. 우선 시급한 예외처리 서치바에 내용이 지워졌을때 빈배열 만들기 & page init 현재 최근 본 리스트에 coredata에 이상하게 입력이 되는 문제 1. 첫번째 문제 Publisher...
이제 무한스크롤만하면 할건 다했다, 그리고 VM에서 alert 구현하면 끝날것같다. 무한스크롤 기능 추가. 보아하니 meta가 관리하는걸로 보인다. BookModel에 meta를 추가 struct BookModel: Codable { var meta: Meta // added var documents: [Documen...
현재 디자인도 개판이고, 전체 삭제, 추가버튼도 이제 실행이 되게 해야한다. 전체삭제는 말 그대로 그냥 다 지우면 되고, 추가버튼은 화면전환을 한뒤 서치바 활성이다. 그리고 SwipeAction을 통해 부분 삭제를 가능하게 해야한다. 여기까지 구현을 하고서, level5 무한스크롤 까지 끝내고 과제의 요구사항 및 선택적으로 있는 추가기능도 확인을...
CollectionView에 적용. 이제 데이터 넘어오는것도 확인이 되었고 구현을 해보도록 하자. 우선 extension으로 관리할거니 파일을 하나 만들어주고. extension MainViewController: UICollectionViewDelegate, UICollectionViewDataSource { func colle...
상세페이지 돌아가기 버튼 구현 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...