An iOS application to display various breeds of dogs from the DogAPI endpoint.
- Mac OS Catalina 10.15.5
- Xcode 11.5
- git 2.24.3
- Clone the repo from the github using ssh or https. If you are using ssh make sure that you have added your ssh key to github.
git clone git@github.com:abintom/dogbreeds.git
- Open
DogBreeds.xcodeproj
usingXcode
application.
- MVVM (Model-View-ViewModel)
- Nuke for Image download and caching.
- Use SwiftGen to avoid boilerplate code for resouce management like localization and to make it type-safe
- Use SwiftLint and SwiftFormat for linting and formatting
- Implement pull to refresh to reload data
- Show alerts during errors or failures
- Add placeholder image for failed or loading images.
As there isn't any backend specs, the below assumptions are considered when developing the app.
- Dog breed type fetched from the backend would be always unique (even the name is same). There is no filtering done in the backend to remove duplicates
- Life span is always of the regex pattern
\d+\s*(\p{Pd}\s*\d+)?\s*years?
and the data which don't follow this pattern is ignored. - The list is sorted by taking an average lifespan for the range.