Skip to content

An iOS app to show details about various dog breeds

Notifications You must be signed in to change notification settings

abintom/dogbreeds

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DogBreeds

Platform Language

An iOS application to display various breeds of dogs from the DogAPI endpoint.

Dependency

  • Mac OS Catalina 10.15.5
  • Xcode 11.5
  • git 2.24.3

Development

  1. 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
  1. Open DogBreeds.xcodeproj using Xcode application.

Architecture

  • MVVM (Model-View-ViewModel)

External libraries

  • Nuke for Image download and caching.

Scope for Improvement

  • 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.

Assumptions

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.

About

An iOS app to show details about various dog breeds

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages