[UMC] 8주차 워크북

nini·2022년 6월 25일
0

UMC

목록 보기
8/13
post-thumbnail

Kingfisher

: 이미지를 손쉽게 관리할 수 있게 해주는 라이브러리

Kingfisher 설치
Podfile 안에 pod 'Kingfisher', '~> 7.0' 추가하기

Kingfisher GitHub

활용코드

import Kingfisher
....
if let urlString = arrayCat[indexPath.row - 1].url {
                let url = URL(string: urlString)
                cell.imageViewFeed.kf.setImage(with: url)
            }

<Kingfisher 라이브러리를 통해 이미지 url을 이미지뷰에 띄어보기>
이미지뷰


Decodable

: Decodable -> data를 원하는 모델로 Decode 해주는 것

  • typealias Codable = Encodable & Decodable
  • Codable을 이용한 Decoding : JSON 형태의 Data를 struct, class, enum 등의 인스턴스에 자동으로 파싱해 주는 것

Encodable

: Encodable -> data를 Encoder에서 변환해주려는 프로토콜로 바꿔주는 것

  • Codable을 이용한 Encoding : 내가 원하는 struct, class, enum 등등의 인스턴스를 JSON 형태의 Data로 만들어주는 것

Multipart

: Alamofire에서 제공해주는 기능으로 이미지를 data로 전환해서 전송하는 방식

multipart/form-data

  • 서버에게 이미지파일 자체를 보내는 방법 = upload 메소드를 사용해서 MultiPart의 형태로 보내기

  • multipart 통신에서는 일반적으로 String, Int, Double, 이런 식으로 바로 데이터를 보내는 것이 아니라, byte buffer 형식으로 보내야 한다.
    그렇게 때문에 보내고자 하는 값 각각을 최종적으로 Data() 를 이용하여 형변환을 해 준 다음에 append 해줘야 한다. 각 값에 utf8 을 적용한 이유는 인코딩을 위해서다.


Firebase

  • 2014년도에 구글에서 인수한 모바일, 웹 애플리케이션 개발 플랫폼
  • 위 모든 플랫폼을 프로젝트 구축 시, 자동적으로 만들어 준다. 또한 서버를 구축하기 위해서 리눅스 명령어를 알 필요도 없고, 도메인을 구입할 필요도 없으며 개발하는 동안에는 서버를 구입할 필요도 없다.
  • 백엔드 기능을 클라우드 서비스 형태로 제공하기 때문에 서버리스 애플리케이션 개발 가능
  • FireBase 플랫폼으로 프론트엔드 개발자와 백엔드 개발의 경계가 모호해질 것이며, 적은 비용으로 매우 좋은 앱을 만들 수 있을 것이라 기대됨

<Firebase에서 제공해주는 기능>
Firebase에서 제공해주는 기능


error.localizedDescription

: error의 코멘트 역할
error.localizedDescription

LocalizedDescription 활용 방법

  1. Error를 준수하는 타입 정의
  2. 디폴트 localizedDescription는 "The Operation couldn't be completed (...)"
  3. localizedDescription을 재정의하기 위해서, LocalizedError 준수하고 errorDescription 연산 프로퍼티 정의
  4. localizedDescription 반영 완료

LocalizedError

  • 오류에 대한 발생 이유를 설명하는 오류 프로토콜
  • 해당 프로토콜을 준수하고, computed property인 "public var errorDescription: String?"를 정의하면, 사용하는 쪽에서 .localiedDescription사용이 가능
    LocalizedError
profile
도전하는 iOS 개발자

0개의 댓글