신규 화면개발을 할 때 UI를 구현 후 비즈니스로직을 구현하거나 비즈니스로직 구현 후 UI 구현 등을 진행할텐데 그와 별개로 API가 개발되기 전 테스트를 할 때, 서버와 응답값형식을 정했다면 Mock JSON 파일을 추가하여 테스트를 진행할 수 있습니다.
해당 방식으로 했을 때 장점은 API가 개발되기 전 미리 앱을 TestFlight에 배포하여 테스트시간을 단축시킬 수 있고, UnitTest를 작성하여 직접적인 네트워킹 없이 테스트가 가능합니다.
- JSON 파일 추가
- 파싱 함수 추가
import SwiftyJSON
func loadLocalJSONFile(filename: String) -> JSON {
if let path = Bundle.main.path(forResource: filename, ofType: "json") {
do {
let data = try Data(contentsOf: URL(fileURLWithPath: path), options: .mappedIfSafe)
let json = try JSON(data: data)
return json
} catch {
fatalError("데이터를 읽어올 수 없습니다.")
}
} else {
fatalError("경로가 잘못되었습니다.")
}
}
🤖 의존성 라이브러리 업데이트
프로젝트에서 사용 중인 라이브러리의 버전을 고정하여 사용 중이여서 1년 주기로 업데이트 작업을 진행 중이다.
- 구글로그인 버전이 5.0에서 7.0으로 업데이트가 되면서 일부 싱글톤객체와 동작구현방식이 변경됨에 따라 변경점들처리
- 참고 링크
- 구글로그인 라이브러리의 Dependencies의 GoogleUtilites는 Firebase 제품들과 연결되어 있어 버전을 맞춰야 합니다.
- Firebase 제품들은 각 Dependencies과 연결이 복잡하여 확인 후 작업을 진행해야 합니다.
- Cocoa Pod 검색창에서 라이브러리 검색후 CocoaPods Spec 이동하여 dependencies 키값 확인 후 따로 설치하는 것들 제거, 버전별 맞춤처리
- 🧐 [CP] Copy Pods Resources 삭제 되었다??Firebase 제품들과 구글로그인 팟버전을 업그레이드하는 경우 Xcode → Build Phases에 pod install시 자동으로 생성되는 [CP] Copy Pods Resources가 추가되지 않는다.→ [CP] Copy Pods Resources 스크립트의 목적은 CocoaPod에서 자동생성되는 스크립트인데 추가한 Pod에서 Resource(이미지, 폰트 등등)있는 경우 생성되는 스크립트입니다. 위의 이슈 사항은 Firebase, 또는 구글로그인 팟들 중에서 Resource가 없어졌기 때문에 발생한 것인데 이슈는 아닙니다.
- 수동으로 설치된 Pod 검토 후 변경
- 수동으로 라이브러리를 설치하면 커스텀하여 사용할 수 있다는 장점이 있지만, 업데이트가 되지 않아서 큰 이유가 없는 경우는 원격으로 설치하는 것이 안정성이 높습니다.
주의사항
- CocoaPod의 Spec과 Github의 Releases Tag버전이 다른 경우라이브러리별 Github 저장소의 Release태그버전을 확인 한 후 pod을 설치하여도 CocoaPods Spec에 없다면 설치가 안되므로 CocoaPods Spec기준으로 설치합니다.
- 만약 라이센스를 표기하는 경우라면 버전도 함께 업데이트 처리해야했는지 확인이 필요합니다.