부스트코스 “iOS 프로그래밍” 실습 프로젝트C. WeatherToday - 개발일지

Updated:

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