안녕하세요 개발하는 윤기사입니다! 🍎
이번 포스팅에서는 저번 포스팅에서 알려드렸던 Alamofire와 SwiftyJSON을 이용한 API 통신에 관한 코드를 깔끔하게, 축약하려고 합니다!
글 읽어 보시기 전에 고차함수에 대한 좋은 정리 윤기사 포스팅이 있으니 꼭 읽어보고 오세요!
https://swiftyun.tistory.com/32
[Swift_문법] 고차함수(map, filter, reduce)에 대해 알아보자 _ 11
안녕하세요! 이웃님들!! 오랜만에 스위프트 기초문법에 관한 내용을 가지고 돌아왔습니다!! 오늘은 <고차 함수>에 대해서 포스팅해보겠습니다! 바로 출발하시죠! - 고차함수 - 매개 변수로 함수
swiftyun.tistory.com
자 그럼 시작하겠습니다!
1. 아래와 같이 TMDB(https://www.themoviedb.org/)에서 영화 Trending 일주일 영화 순위 정보를 받아와서 띄워주려고 합니다.
2. 필요한 것들은 영화제목, 영화 포스터 이미지, 영화 줄거리, 영화 평점, 영화 개봉일 등이 있을 겁니다! Alamofire와 SwiftyJSON을 이용하여 가져와 보도록 하겠습니다. https://developers.themoviedb.org/3/trending/get-trending
API Docs
developers.themoviedb.org
3. MovieInfo에 관한 정보를 받아주기 위해 구조체를 하나 만들어줍니다!
4. APIManager를 관리하기 위한 그룹과 Swift 파일을 하나 새로 만들어줍니다.
5. RequestMovieDataAPIManager라는 클래스를 하나 만들어줍니다. 아래와 같이 선언합니다.
- SingleTon Pattern을 이용해서 Class를 인스턴스화 시켜줍니다.
- 그리고 혹시라도 init 함수를 호출해서 또 인스턴스를 생성하는 것을 막기위해 init() 함수 접근 제어자를 private으로 지정해줍니다.
- completionHandler를 @escaping 클로저를 이용해 [MovieInfoStruct] -> () 로 선언해준다.
🍎 requestTMDBAPI() 함수에서 사용되는 completionHandler 클로저는 함수 실행 중에 즉시 실행되지 않고, 밑에 요청이 끝난 후에 비동기로 실행이 됩니다. 즉, 함수 밖에서 실행되는 클로저입니다.
6. list 안에 map 고차함수를 이용해서 넣어줍니다. 그리곤 completionHandler는 list 값을 반환해줍니다.
7. 불러올 곳에서 아래와 같이 선언해줍니다.
이번 포스팅은 여기서 마치겠습니다!
고차함수를 이용한 APIManager를 만들어 봤는데, 다들 잘 따라 하셨나요?
다음 포스팅에서는 더욱 알찬 내용 가지고 돌아오겠습니다!
개발하는 윤기사는 오늘도 빡코딩 하겠습니다~~
'iOS_Swift 앱개발👍' 카테고리의 다른 글
[iOS_Swift] View의 Frame & Bounds 차이 _ 18 (30) | 2022.08.12 |
---|---|
[iOS_Swift] UIView를 Cell로 사용하기 (테이블뷰 안에 컬렉션뷰) _ 17 (30) | 2022.08.09 |
[iOS_Swift] HTTP 통신하기! (feat. API) _ 15 (1) | 2022.08.02 |
[iOS_Swift] PickerView의 기본 _ 14 (0) | 2022.07.28 |
[iOS_Swift] Xcode 단축키 꿀팁 모음 _ 13 (31) | 2022.07.25 |