CustomNetflix
NetFlix의 URL을 활용한 넷플릭스 영상 추천 앱 CustomNetflix
사용 기술 및 라이브러리
- Swift, iOS
- URLSession, AVFoundation
개발 일지 (역순)
201007 searchAPI class - Searchterm 구현
- search Bar 키보드 표시 관련 dismissKeyboard 함수 구현 - searchTerm - URLSession protocol을 활용한 Data 연동 테스트 -> 검색어 잘 전달되어 내려오는 것을 확인 - 지난 Networking 때 사용한 iTunes URL을 활용해 Test code 작성 (https://github.com/YongJinLeee/networking/blob/main/URLSession_class.playground/Contents.swift)URLSession관련 componenets, query Item 등 URL관련 프로퍼티 구현
[Movie] let string = String(data: resultData, encoding: .utf8) print("search URL Operation Test : \(string)") // completion([Movie]) // Test 후 Movie 구조체에 맞게 데이터 받아오도록 Codable 함수 작성 } dataTask.resume() } } ">
let session = URLSession(configuration: .default) var urlComponents = URLComponents(string: "https://itunes.apple.com/search?")! let mediaQuery = URLQueryItem(name: "media", value: "music") let entityQuery = URLQueryItem(name: "entity", value: "song") let termQuery = URLQueryItem(name: "term", value: term) urlComponents.queryItems?.append(mediaQuery) urlComponents.queryItems?.append(entityQuery) urlComponents.queryItems?.append(termQuery) let requestURL = urlComponents.url! let dataTask = session.dataTask(with: requestURL) { data, response, error in let successRange = 200..<300 // error 테스트 코드 guard error == nil, let statusCode = (response as? HTTPURLResponse)?.statusCode, successRange.contains(statusCode) else { print("Error Code: \(successRange)") completion([]) return } guard let resultData = data else { completion([]) return } //data -> [Movie] let string = String(data: resultData, encoding: .utf8) print("search URL Operation Test : \(string)") // completion([Movie]) // Test 후 Movie 구조체에 맞게 데이터 받아오도록 Codable 함수 작성 } dataTask.resume() } }
211006
Netfilx와 유사한 형태의 tap Bar 화면을 구현하고 가장 먼저 URL 테스트를 진행해야 하므로 searchBar 구현