jeonghomoon / ios-data-layer Goto Github PK
View Code? Open in Web Editor NEWBoilerplate for building a data layer.
Boilerplate for building a data layer.
Swift 깃허브 문서의 성능 최적화 팁 중에 해당 단락 을 참고하여 성능 향상 작업을 진행합니다.
macOS: Monterey 12.5.1, Apple M1
iOS: 15.5, iPhone 13 mini
IDE: Xcode 13.4.1
Related: #
macOS: Monterey 12.5.1, Apple M1
iOS: 15.5, iPhone 13 mini
IDE: Xcode 13.4.1
응답에 대한 처리를 할 때, body에 포함된 payload 외에도 statusCode를 이용해야할 수도 있습니다.
macOS: Monterey 12.5.1, Apple M1
iOS: 15.5, iPhone 13 mini
IDE: Xcode 13.4.1
Related: #8
API 통신을 주관하는 NetworkService 클래스를 작성합니다.
macOS: Monterey 12.5.1, Apple M1
iOS: 15.5, iPhone 13 mini
IDE: Xcode 13.4.1
macOS: Monterey 12.5.1, Apple M1
iOS: 15.5, iPhone 13 mini
IDE: Xcode 13.4.1
요청에 대한 응답값을 decoding 하기위해 특정 객체가 필요합니다.
본 프로젝트가 Boilerplate 임을 고려하여 관련 값을 제네릭하게 처리하려고 합니다.
macOS: Monterey 12.5.1, Apple M1
iOS: 15.5, iPhone 13 mini
IDE: Xcode 13.4.1
Related: #
Refs: https://developer.apple.com/swift/blog/?id=27
macOS: Monterey 12.5.1, Apple M1
iOS: 15.5, iPhone 13 mini
IDE: Xcode 13.4.1
KeychainService 클래스에 대해 테스트 코드를 작성합니다.
macOS: Monterey 12.5.1, Apple M1
iOS: 15.5, iPhone 13 mini
IDE: Xcode 13.4.1
Keychain Item Class의 이해 부족으로 #15 에서 kSecClassGenericPassword 외의 데이터를 저장하지 못하는 구조로 만들었었습니다.
kSecClassGenericPassword외의 데이터를 배재하여 현재 구조를 kSecClassGenericPassword 형태의 데이터를
마치 UserDefaults처럼 kSecAttrAccount-kSecValueData의 key-value 형태로 저장하도록 구조를 수정합니다.
macOS: Monterey 12.5.1, Apple M1
iOS: 15.5, iPhone 13 mini
IDE: Xcode 13.4.1
Related: #15
#20 번 이슈에서 NetworkService 클래스에서 처리하는 응답 인터페이스를 수정하였습니다. 이에 따라 테스트코드가 수정되어야 합니다.
또한 이전 테스트 코드 작성시 확인하지 못했던 encoding, multipartFormData의 경우에 대한 테스트도 추가합니다.
macOS: Monterey 12.5.1, Apple M1
iOS: 15.5, iPhone 13 mini
IDE: Xcode 13.4.1
Related: #20
Keychain에서 저장하는 정보 외의 알람 설정같은 간단한 키-값 쌍의 데이터를 UserDefaults를 통해 저장할 수 있습니다.
macOS: Monterey 12.5.1, Apple M1
iOS: 15.5, iPhone 13 mini
IDE: Xcode 13.4.1
Related: #
NetworkService 클래스에 대한 테스트 코드를 작성합니다.
WWDC 2018에서 공개한 networking stack의 테스트 코드 작성 팁을 참고하여 진행합니다.
macOS: Monterey 12.5.1, Apple M1
iOS: 15.5, iPhone 13 mini
IDE: Xcode 13.4.1
Related: #
DataLayer에서 유저의 Password, Certificate, Token 등을 저장하기 위한 목적으로 Keychain을 사용합니다.
애플 개발자 문서를 참고하여 Keychain에 대한 기본 연산을 구현할 수 있습니다.
macOS: Monterey 12.5.1, Apple M1
iOS: 15.5, iPhone 13 mini
IDE: Xcode 13.4.1
Related: #
ios-data-layer 프로젝트의 초기 설정을 진행합니다.
요구사항
macOS: Monterey 12.5.1, Apple M1
iOS: 15.5, iPhone 13 mini
IDE: Xcode 13.4.1
Related: #
github에서 Issue 또는 PR을 생성하는 경우 관련 내용을 작성하여야 합니다.
repository 관리 차원에서 특정 형식의 템플릿을 통해 해당 내용을 통일하려 합니다.
macOS: Monterey 12.5.1, Apple M1
iOS: 15.5, iPhone 13 mini
IDE: Xcode 13.4.1
Related: #
앱의 크기가 커짐에 따라 네트워크 스택을 구축할 때 공통 패턴을 채택하기 위해 라우팅을 이용합니다.
이를 구현하기위해 Alamofire에서 제공하는 URLRequestConvertible 프로토콜을 채택한 Routable 프로토콜을 작성합니다.
해당 구현의 대한 예시는 Alamofire의 공식 문서에 포함되어 있습니다.
macOS: Monterey 12.5.1, Apple M1
iOS: 15.5, iPhone 13 mini
IDE: Xcode 13.4.1
Related: #
macOS: Monterey 12.5.1, Apple M1
iOS: 15.5, iPhone 13 mini
IDE: Xcode 13.4.1
Related: #29
macOS: Monterey 12.5.1, Apple M1
iOS: 15.5, iPhone 13 mini
IDE: Xcode 13.4.1
macOS: Monterey 12.5.1, Apple M1
iOS: 15.5, iPhone 13 mini
IDE: Xcode 13.4.1
Related: #35
라이브러리등의 프로젝트 종속성 관리를 위해 SPM나 CocoaPods를 사용합니다.
해당 프로젝트에서는 빌드 설정의 용이성이 있는 CocoaPods를 사용하겠습니다.
macOS: Monterey 12.5.1, Apple M1
iOS: 15.5, iPhone 13 mini
IDE: Xcode 13.4.1
Related: #
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.