Skip to content

allie0147/TCAGithubSearch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TCAGithubSearch TCA v1.0.0

TCA Github Search Example App

Let's Swift 2022 워크샵 402C 영상을 참고하여 제작했습니다.

  • 기본적인 프로젝트 셋팅입니다.
  • SwiftUI와 MVVM 패턴으로 기본적인 feature를 구성합니다.
  • SearchStore를 만들어 View와 연결합니다.
  • @BindingStateBindableAction/BindingAction을 사용하여 양방향 데이터 바인딩을 구현합니다.
  • .continuousClock을 활용하여 바인딩된 keyworddebounce를 추가합니다.
  • search action 횟수를 requestCount에 표출합니다.
  • 테스트 코드에 TestClock을 추가하여 debounce를 구현합니다.
  • 네트워킹을 위한 SearchClient를 만들어 SearchStore에 주입합니다.
  • SearchStore에서 API를 fetch하여 succssfailure케이스를 작성합니다.
  • 받아 온 데이터를 화면에 노출합니다.
  • 테스트 코드를 위한 mock을 SearchClientSearchEntity에 작성합니다.
  • 위의 내용을 테스트 코드로 작성합니다.
  • 현재 키워드와 이전 키워드를 화면에 띄우기 위해 seach action이 실행될 때 Effect.concatenate()를 사용하여 두 개의 Effect를 합칩니다.
  • 위의 내용을 테스트 코드로 작성합니다.