CH 08. 코로나 현황판 앱 만들기

1 분 소요

Simulator Screen Shot - iPhone 11 Pro - 2022-04-13 at 17 00 21 Simulator Screen Shot - iPhone 11 Pro - 2022-04-13 at 17 00 35

기능 상세:
  • 시도별 신규 확진자 수가 파이 차트로 표시
  • 도시 항목을 선택하면 상세 현황을 볼 수 있는 화면으로 이동
활용 기술:
  • 굿바이 코로나 19 API
  • Alamofire
    • Swift 기반의 HTTP 네트워킹 라이브러리
    • URLSession 기반한 라이브러리
    • 네트워킹 작업을 단순화하고 네트워킹을 위한 다양한 메소드와 json 파싱등을 제공
    • 주요특징
      • 연결가능한 request, response 메소드를 제공
      • url, json 형태의 파라미터 인코딩 지원
      • 파일 데이터 스트림, 멀티파트 폼 데이터 등 업로드 기능 제공
      • http response 검증과 광범위한 단일 테스트 및 통합 테스트 보장
    • URLSession 대신 Alamofire을 사용하는 이유
      • 코드의 간소화, 가독성
      • 여러 기능을 직접 구축하지 않아도 쉽게 사용
  • Cocoapods
    • iOS 및 MacOS, TVOS 등 애플 플랫폼에서 개발을 할 때 외부 라이브러리를 관리하기 싶도록 도와주는 의존성 관리 도구
    • 설치방법
      • Terminal 접속
      • sudo gem install cocoapods
      • Xcode에서 프로젝트생성
      • Terminal에서 생성한 프로젝트 경로로 이동
      • pod init
      • 프로젝트 경로에 Podfile 생성완료
      • Podfile 수정(외부 라이브러리를 프로젝트에 추가)
      • pod install
      • xcworkspace 확장자를 가진 프로젝트 실행
에러:

Escaping closure captures non-escaping parameter ‘completionHandler’

  • Escaping closure
    • 함수의 인자로 클로져가 전달되지만 함수가 반환된 후에도 실행
    • 비동기 작업을 하는 경우 completion handler로 사용(네트워킹 통신)
      - 서버에서 데이터를 언제 응답해줄 지 모르기 때문에
      Ex) responseData 함수에서 정의한 completion handler closure는 fetchCoivdOverview 함수가 반환 된 이후에 호출
      escaping clousre로 completion handler를 정의하지 않는다면 서버에서 비동기로 데이터를 응답받기 전 즉, responseData 메소드 파라미터에 정의한 completion handler closure가 호출되기 전에 함수가 종료돼서 서버의 응답을 받아도 fetchCoivdOverview 함수에 정의한 completion handler가 호출 되지 않음
추가할 기술:
  • 막대 그래프 변경
  • 지도 이미지 변경

카테고리:

업데이트: