부스트코스 “iOS 프로그래밍” 실습 프로젝트C. WeatherToday - 개발일지
2020.09.04
프로젝트 환경구성
- 프로젝트 생성
- 깃허브 연동
- 필요한 assets 추가
- README.md 추가
화면구성
뷰 컨트롤러 구성
- ViewController를 WorldViewController로 이름 변경, 스토리보드 연결
- CityViewController 커스텀 클래스 추가, 스토리보드 연결
- DetailViewController 커스텀 클래스 추가, 스토리 보드 연결
- 내비게이션 컨트롤러 임베드
2020.09.05
화면 1 - 세계 국가 리스트
테이블뷰로 국가 리스트와 이름 보여주기
- WorldViewController
- 스토리보드에 테이블뷰와 셀 추가
- UITableViewDataSource 프로토콜 추가
- “counries” JSON을 Country Struct로 디코딩
- 테이블뷰에 국가 이름과 이미지 보이기 구현
- Country
- Country Struct용 swift 파일 생성
- JSON 인코딩/디코딩 가능하도록 Codable 프로토콜 추가
2020.09.06
프로젝트 구성
SceneDelegate 제거
- info.plist에서 Application Scene Manifest 제거
- SceneDelegate.swift 제거
- AppDelegate의 UISceneSession Lifecycle 관련 메서드 제거
- AppDelegate에 프로퍼티 var window: UIWindow? 추가
화면1 기능
테이블뷰 셀을 선택하면 화면2로 전환하기
- Segue로 테이블뷰 셀에서 화면2로 연결
- 화면2로 바뀔 때 선택된 셀의 국가 이름을 화면2의 내비게이션 바 타이틀로 지정
2020.09.07
화면1 기능
테이블뷰 셀을 선택하면 화면2로 전환하기 수정
- Segue로 화면1에서 화면2로 연결
- 셀 정보를 이용하지 않고 선택된 행 정보로 country 정보를 이용한다
화면2
테이블 뷰 셀에 도시별 날시 정보 표시
- 커스텀 테이블뷰 셀 “CityTableViewCell” 생성
- 국가별 JSON을 city Struct로 디코딩
- 날씨 state별 이미지 표시
- 온도, 강수확률 표시
2020.09.08
화면 3
화면2에서 탭하면 화면3으로 이동, 도시 날씨 정보 표시
- 세그로 화면2에서 3으로 연결하며 데이터도 넘기기
- 가져온 데이터로 화면3에 날씨 정보 표시 날씨 정보를 가져오지 못했습니다.
코드 리뷰 준비
리팩토링
- 주석 추가
- Extension으로 코드 분리
2020.09.09
코드 리뷰 준비
- 코드 정리
- 오토레이아웃 관련 워닝 제거
코드 리뷰 제출
- 리뷰어에게 질문 남기고 프로젝트 제출
Leave a comment