51. 스파르타 코딩 클럽 - 봄여어름갈겨어울 #1 (날씨앱)
🌤️ 봄여어름갈겨어울 (심화 팀 프로젝트)
최종 프로젝트 전 마지막 팀 프로젝트인 심화 주차 팀 프로젝트가 오늘 시작되었다.
기간은 5월 20일(화)부터 5월 28일(수)까지 주말 제외 일주일이다.
우리 팀은 날씨앱, 알람앱, 단어앱 중에 날씨앱을 주제로 선정하였고,
프로젝트 대시보드를 작성하였다.
퍼스트파티 프로젝트 대시보드 | Notion
0. 팀 소개
www.notion.so
우리의 주제는 사용자에게 날씨에 맞는 옷차림을 추천하는 날씨 앱이다.
OpenWeatherAPI를 사용하여 날씨 정보를 받아오고, 직관적인 UI/UX 화면에 날씨 데이터를 표시한다.
📱 와이어 프레임
👨🏻💻 역할분담 - API 총괄
팀 프로젝트에서 역할은 크게 4가지로 나뉜다.
- 위치 총괄
- CCLocationManager을 사용해서 사용자의 현재 위치 가져오기
- 디자인 총괄
- 5개의 화면 연결하기 (메인, 검색, 강수량/습도, 일출/일몰, 설정)
- 비즈니스 모델 총괄
- ViewModel - View 바인딩 작업 (RxSwift)
- API 총괄
- API 연동 (네트워크 매니저) 및 데이터 모델 파싱
이 중에서 나는 API 총괄을 담당하게 되었다.
API는 OpenWeather API를 사용 할 예정이고, 네트워크 통신은 Alamofire로 진행 할 예정이다.
현재 날씨와 5일간의 날씨 예보를 위해 OpenWeather API 중 2개의 API를 사용할 예정이다.
[ 1. Current weather data ]
Current weather data - OpenWeatherMap
openweathermap.org
- API Call 방법
https://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&appid={API key}
날씨 정보를 받을 지역의 위도와 경도 값을 넣고, 본인의 API Key를 입력한다.
온도의 표기의 기본 단위는 섭씨온도(℃)와 화씨온도(℉)가 있으며, 우리나라를 포함한 동양과 유럽에서는 섭씨온도 단위를 사용하고 미국을 포함한 영어권에서는 화씨온도를 사용하고 있다.
우리 팀의 날씨 앱에서는 사용자의 선택에 따라 기온의 표기를 섭씨 또는 화씨로 변경하여 표현해야 하기 때문에
두 가지 API Call 방법을 모두 사용할 수 있어야 한다.
섭씨(℃)의 API Call 방법
// 방법 - 기본 API Call 맨 뒤에 &units=metric 추가 작성
https://api.openweathermap.org/data/2.5/weather?q=Seoul&appid={API Key}&units=metric
화씨(℉)의 API Call 방법
// 방법 1. API Call 주소 맨 뒤에 &units=standard 추가
https://api.openweathermap.org/data/2.5/weather?q=Seoul&appid={API Key}&units=standard
// 방법 2. 기본 API Call 그대로 사용
https://api.openweathermap.org/data/2.5/weather?q=Seoul&appid={API Key}
[ 2. 5 day weather forecast ]
5 day weather forecast - OpenWeatherMap
openweathermap.org
- API Call 방법
api.openweathermap.org/data/2.5/forecast?lat={lat}&lon={lon}&appid={API key}
현재 날씨와 마찬가지로 날씨 예보를 받고 싶은 지역의 위도와 경도 값을 입력하고, 본인의 API Key를 입력한다.
5 day weather forecast API를 사용하면 5일 동안 3시간 간격의 날씨 예보를 받아올 수 있다.
5 day weather forecast API도 마찬가지로 기본값이 화씨(℉)이다.
따라서 섭씨로 데이터를 받아오려면 맨 뒤에 &units=metric을 추가로 작성하면 된다.