뽀모도로 타이머 앱 / DispatchSourceTimer / UIView Animation
날씨앱 / Current Weather API / HTTP / URLSession / Codable
코로나 현황판 앱 / 굿바이 코로나19 API / Alamofire / Cocoapods
이번 4주차는 다른 주차랑은 별개로 가장 만족도가 높은 주차이다. 뽀모도로 타이머 앱을 구현할 때 재미있다고 느껴졌고 기능 구현들도 잘 진행되었기 때문이라고 생각한다. 나머지 날씨앱과 코로나 현황판 앱을 통해 API를 다루고 Codable과 Alamofire를 사용해보면서 앞으로 iOS개발에서 많이 사용하게 될 기술들에 대해 맛보기로 체험을 해볼 수 있다고 생각했다. 또 이번 주차 강의를 활용해서 좀 더 개발하고자 하는 앱을 업그레이드 할 수 있도록 해야겠다고 생각했다.
뽀모도로 타이머 앱 / DispatchSourceTimer / UIView Animation
이번 주차에서 흥미로운 프로젝트였다. 애니메이션을 활용하고 타이머를 활용해 간단하면서도 기능이 직관적인 어플이라고 생각되었다.
추후에 내가 만들 운동 관련 어플에도 이러한 기술들을 적용해볼 예정이다.
DispatchSourceTimer
Swift에서 Timer라는 클래스로 타이머를 구현할 수 있지만 GCD API에 있는 DispatchSourceTimer를 사용해 타이머를 구현했다.
UIView Animation
애니메이션에서 사용되는 API를 타입 메소드로 제공하고 이 메소드를 활용해 비교적 단순한 코드로 애니메이션을 구현해봤다.
날씨앱 / Current Weather API / HTTP / URLSession / Codable
웹통신과 Protocol
- 인터넷 상에서의 통신을 말함.
- 많은 정보들이 주고 받기에 인터넷에는 엄격한 규약이 존재함. 이것을 Protocol이라 함.
HTTP(Hyper Text Transfer Protocol)
Hyper Text를 전송하기 위한 프로토콜
HTTP Mehtod
클라이언트가
GET: 서버의 리소스를 요청할 때
POST: 서버의 리소스를 새로 만들 때
PUT: 서버의 리소스를 전체 수정할 때
PATCH: 서버의 리소스를 일부 수정
DELETE: 서버의 리소스를 삭제할 때
HEAD: 정상 작동 여부 확인할 때
OPTIONS: 해당 URL이 어떤 메소드를 지원하는 확인할 때
CONNECT: 프록시를 통해 서버와 SSL통신을 하고자 할 때
TRACE: 서버간 통신 관리 및 디버깅 할 때
HTTP Status
100번대 / Informational / 요청 정보를 처리중
200번대 / Success / 요청 정상 처리함
300번대 / Redirection / 요청 완료 위해 추가 동작 필요
400번대 / Client Error / 서버가 요청 이해 못함, 클라이언트 에러
500번대 / Server Error / 서버가 요청 처리 실패함, 서버 에러
Codable
자신을 변환하거나 외부 표현으로 변환할 수 있는 타입을 의미
객체에서 Codable을 채택하게 되면 Codable을 채택한 객체는 Json으로 만들 수도 있고
Json데이터를 객체로 변환할 수도 있다. WeatherInformation구조체와 ErrorMessage구조체에 Codable을 채택해
서버로부터 응답받은 Json데이터가 WeatherInformation 객체와 ErrorMessage객체 맵핑되게 구현을 했었음.
.
URLSession
특정한 url을 이용하여 데이터를 다운로드하고 업로드하기 위한 API
URLSessionDataTask
URLSessionUploadTask
URLSessionDownloadTask
URLSessionStreamTask
URLSessionWebSocketTask
코로나 현황판 앱 / 굿바이 코로나19 API / Alamofire / Cocoapods
굿바이 코로나19 API
코로나 API를 무제한으로 무료로 사용할 수 있는 사이트라 초보 개발자에게는 양질의 자료가 될 듯 싶다.
Corona-19-API
코로나바이러스감염증-19에 대한 무료 API 서비스를 제공합니다.
api.corona-19.kr
Alamofire
Swift기반의 HTTP네트워킹 라이브러리
- 연결가능한 Request Response Method를 제공
- URL JSON형태의 파라미터 인코딩을 지원
- 파일 데이터 스트림 등 업로드 기능 지원
URLSession 대신 Alamfire를 사용하는 이유
코드의 간소화, 가독성 측면에서 도움을 주고 여러 기능을 직접 구축하지 않아도 쉽게 사용할 수 있음.
Cocoapods
외부 라이브러리를 관리하기 쉽도록 도와주는 의존성 관리도구이다. 프로젝트에서 필요한 외부 라이브러리를 코코아팟을 통해 쉽게 관리하고 사용할 수 있다. flutter의 pubspec.yaml처럼 앱스토어 같은 역할을 해주는 아이라고 생각했다. swift에는 이런 역할을 podfile이 해준다. flutter의 pubdev사이트처럼 외부 라이브러리를 모아놓은 검색 사이트도 있다. 플러터에서 낯설었던 파일들의 기능을 알고나니 이해가 참 쉬워지는 것 같았다. install은 아래와 같이 podfile에 작성해주면 된다.
pod '원하는 외부라이브러리'
코코아팟을 통해 여러 유용한 외부라이브러리를 모아 놓은 서치 사이트는 아래 링크에서 확인할 수 있다.
https://cocoapods.org/
'IOS' 카테고리의 다른 글
[Swift] 낯선 개념: $0의 의미 (0) | 2022.04.01 |
---|---|
나만의 iOS 앱 개발 입문 : iOS개발 강의 5주차 (0) | 2022.03.28 |
나만의 iOS 앱 개발 입문 : iOS개발 강의 3주차 (0) | 2022.03.15 |
나만의 iOS 앱 개발 입문 : iOS개발 강의 2주차 (0) | 2022.03.08 |
[Swift] 스토리보드 시작점 세팅하는 법 (0) | 2022.03.07 |