Overview

기능 정의

메인 화면

  1. 화면
  • 메뉴 버튼이 있습니다.
  • 지역을 찾는 버튼이 있습니다.
  • 즐겨찾기된 지역을 보는 버튼이 있습니다.
  • 미세먼지 수치를 색상으로 보여주는 뷰가 있습니다.
  • 미세먼지 수치를 직접 나타내는 레이블이 있습니다.
  1. 기능
  • 위치정보 사용 동의시 자동으로 유저의 위치를 파악하고, 거부할 경우 유저가 선택한 위치를 기반으로 미세먼지 수치를 검색합니다.
  • 메인 화면에 도달하면 수치를 업데이트 합니다.
  • 혹은 Pull to refresh 기능으로 수치를 업데이트 합니다.

메뉴 화면

  1. 화면
  • 실시간 위치 사용 스위치가 있습니다.
  • 간소화 보기 모드 스위치가 있습니다.
  • 위젯 색상 보기 모드 스위치가 있습니다.
  • 예보 확인 버튼이 있습니다.
  • 도움말 버튼이 있습니다.
  • 버그 및 개선 제안 버튼이 있습니다.
  • 오픈소스 라이선스 버튼이 있습니다.
  1. 기능
  • 실시간 위치 사용 스위치로 현재 위치 사용 여부를 결정할 수 있습니다.
  • 간소화 보기 모드 스위치로 메인 화면의 정보 구성을 결정할 수 있습니다.
  • 위젯 색상 보기 모드 수위치로 위젯의 화면 구성을 결정할 수 있습니다.
  • 내일, 내일모레까지 예보 확인이 가능합니다.
  • 미세먼지 및 요새먼지 앱에 대한 정보 확인이 가능합니다.
  • 개발자에게 바로 메일 전송이 가능합니다.
  • 오픈소스 라이선스에 대한 정보 확인이 가능합니다.

지역 찾기 화면

  1. 화면
  • 전국 동단위 주소가 있습니다.
  1. 기능
  • 주소 선택시 해당 주소로 미세먼지 수치를 업데이트 합니다.

즐겨찾기 화면

  1. 화면
  • 즐겨찾기된 지역을 볼 수 있습니다.
  1. 기능
  • 현재 지역을 바로 추가할 수 있습니다.
  • 검색하여 새로운 지역을 추가할 수 있습니다.
  • 밀어서 삭제 또는 드래그 앤 드롭을 통해 구성을 바꿀 수 있습니다.

어려웠던 점

  • 외부 라이브러리 없이 XML을 파싱하는 것이 어려웠다. 구글링으로 공부해서 첫 출시부터 얼마까지는 XML 파싱 방법을 썼으나 이후 JSON 파싱 방법을 알았고 SwiftyJSON 라이브러리로 쉽게 대체했다.
  • 개발자 등록부터 인증서 관리, 앱 등록까지 모든 과정이 처음이라 어려웠다.

사용 라이브러리

  • AIFlatSwitch
  • Alamofire
  • Crashlytics
  • EZYGradientView
  • Fabric
  • Firebase/Core
  • SideMenu
  • SwiftyJSON
  • TableViewDragger