This Client fetches a post list from jsonplaceholder.typicode.com
. By using it you can see the newests posts, favorite, delete and refresh them.
- This Project was built with MVVM Architecture using Reactive Patterns
- In order to implement a precise layout this client uses an Dependency called Snapkit (https://blog.pusher.com/mvvm-ios/).
- Included CoreData as Persistency Manager
- Using XCTest for Unit Tests
- SnapKit: Used for Programatic Layout Design (http://snapkit.io/)
- Moya: Used for creating a Networking layer (https://github.com/Moya/Moya])
- RxSwift: Implementation of reactive patterns in app (https://github.com/ReactiveX/RxSwift)
- Design App Architecture
- Create XCode Project
- Install Dependencies
- Organize project structure
- Create & Test Models
- Create Networking Layer
- Create Post List Controller with Layout
- (Posts, Data Persistence) Connect Database with View Model Controller & Test
- (Posts, Networking layer) Connect Networking layer with Database and update once data is fetched
- Create Post Details View Controller with Layout
- (Post Details) Connect ViewModel With Controller
- (Favorite Post) Integrate Favorite Post
- (Delete Post) Integrate Delete Posts
- (Reload Data) Integrate Data refresh from API
- Animations for delete row after user swipes
- Refresh button clears database and then fetch data from api.
- Comments API data structure does not include a createdAt or id, this means that there is not a clear way to sort them unless the id is being automatically generated (like
MYSQL auto increment
)