Source Control with Github
기본적으로 xcode는 Source Control을 기반으로 작동한다.
예를 들어 코드 에디팅 화면에서 라인 번호 왼쪽에 푸른색 줄이 있을 것이다. 푸른색 줄을 클릭하면 discard 등의 행위를 할 수 있다.
- 나는 이미 Github과 연동해서 관리 중이었기 때문에 해당 부분은 다루지 않겠다.
API Call
GraphQL이나 REST 등의 api호출 방법이 존재하는데 강의에서는 REST만을 사용하여 구현한다.
API 모듈 제작
APIClient 그룹에 이하의 파일들을 생성한다.
- RMService - API Call을 해주는 부분
- RMRequest - resquest를 담당하는 부분
- RMEndpoint - 엔드포인트를 설정해 주는데 이 경우 location, episodem character가 있을 것
RMEndpoint에는 @frozen을 붙여주라고 했다고 기록했는데 현재 진행 중인 코드에는 frozen이 없어서 당혹스러웠다.
잠깐 알프라즈를 대신해 frozen 어노테이션에 대해 설명하자면 해당 어노테이션을 붙은 타입(class, struct, enum)은 불변이며 향후에 추가 케이스나 필드를 추가할 수 없음을 의미한다. 이를 통해 컴파일러는 더 높은 최적화를 진행해 준다.
RMService
- API의 싱글톤 객체를 생성하고 API를 호출하기 위한 클래스이다.
/// Primary API service object to get Rick and Morty data
final class RMService {
/// Shared singleton instance
static let shared = RMService()
/// Privatized constructor
private init() {
}
/// Send Rick and Morty API Call
/// - Parameters:
/// - request: Request instance
/// - completion: Callback with data or Error
public func execute(_ request: RMRequest, completion: @escaping () -> Void) {
}
}
RMEndpoint
endpoint란 API가 서버에서 리소스에 접근할 수 있도록 가능하게 하는 URL이며, 소통 채널에 있어 한쪽 끝을 의미한다.
/// Represents unique API endpoints
enum RMEndpoint: String {
/// Endpoint to get character, location, episode info
case character
case location
case episode
}'Swift > Rick & Morty' 카테고리의 다른 글
| [iOS] Rick&Morty - #6 Character List View (0) | 2023.03.03 |
|---|---|
| [iOS] Rick&Morty - #5 API Call (0) | 2023.03.02 |
| [iOS] Rick&Morty - #4 API Request (0) | 2023.03.01 |
| [iOS] Rick&Morty - #3 Data Models (0) | 2023.02.28 |
| [iOS] Rick&Morty - #1 Setup (0) | 2023.02.26 |