프로젝트생성
프로젝트 지원기기 / 최소버전 / 화면전환 설정
apiKey 깃 이그노어, 리드미 추가
cityList.json 추가
-) 주석넣어놨어서 파싱이 안됐음. *json 파일안에선 주석 지워야함!
cityList.json codable 모델 생성, 파싱
-) quicktype 이용
searchController 추가
-) largeTitle 이슈..
collectionView 추가
-) UICollectionViewCompositionalLayout 헤매는 중
-) UICollectionLayoutListConfiguration 시도 중
-) 구현했으나 section별 구현 방안 구상 중
-) NSCollectionLayoutSection으로 구현 중
-) 섹션 별 셀 구현 중
각 셀의 identifier 사용을 위해 프로토콜 생성
Alamofire 이용한 API 추가 & JSON 파싱
-) 기존에 하던 방식으로 decode 불가 > 일단 리터럴하게 해결
collectionView 셀에 JSON 값 로드
propertyWrapper 이용한 UserDefaults 헬퍼 추가
메인 뷰 collectionView 안에 가로 스크롤 collectionView 추가
.replacingOccurrences(of: "BeforeString", with: "AfterString")
-) Date 변환 중 formatter가 안 먹혀서 상관없는 문자 이걸로 지워주고 해결
마지막 api호출 시간과 현재 시간 비교해서 api 요청 제한 로직 구현
-) 콜 제한 방지
네트워크 상태 확인 추가
-) 연결 상태 확인 후 설정으로 이동 유도
Realm 추가
-) api 제한하여 데이터 저장 필요
collectionView 섹션 0, 1 수정
-) 복잡한 로직 조금 수정, UI 수정
검색 결과 셀에서 api 요청 연결 구현
-) api 요청은 잘된다. 검색 결과 셀이 안 사라짐..
5일치 날씨 예보 목록 셀 구현
맵뷰 셀 구현
4등분 셀 구현
refreshControl 구현
서치바 & 서치컨트롤러 미해결
-) 서치컨트롤러는 뷰 하나로 가능하지만 collectionView 재사용에 어려움이 있음.. -> 컴포지셔널 레이아웃 에러 만나는 중..
-) 서치바는 라지 타이틀도 해결가능하나 검색 결과화면을 따로 써야하고 값 전달 등 계속 서로 비교해가며 테스트 중
LaunchScreenVC 추가
-) GCD asyncAfter 를 이용해 api / 로딩 시간 해결
searchBar 채택
-) modal present로 searchVC 표현
searchBar 텍스트 입력 기준 검색 결과 구현
searchBar 검색 결과 터치시 mainVC에 결과 구현
-) 컬렉션뷰 셀렉 아이템
searchBar cancel버튼
-) UISearchBar의 버튼을 활용하려 했으나 네비게이션 영역 한번 탭해야 활성화됨
-) UIBarButtonItem 따로 생성해서 cancel 버튼 구현
cancel버튼 UI & 로직 구현
-) mainVC API 값의 반영을 위해 1초 후 dismiss
mainVC CollectionView의 셀 맵뷰 & 컬렉션뷰 리로드 이슈
-) 맵킷은 다른 쓰레드에서 다시 어노테이션 그려줘서 해결
-) 메인 컬렉션 뷰 리로드 될 때 각 셀 안의 컬렉션 뷰 리로드
searchVC 제스처 이벤트 추가 / 키보드 나타내기
-) 메인 뷰에서 searchBar 탭시 화면 전환 -> 키보드 나타내서 사용성 개선
-) 검색 중일 때 스크롤하면 키보드 사라지게 사용성 개선