iOS Code Challenge bonprix Swift UI - aacml/Recruiting GitHub Wiki

We have created a small technical test for you to showcase how you work. Your task will be to create a small iOS Application that consists of two important views for an E-Commerce-App: a product-overview & product-detail-page

Challenges

  • Setup a new SwiftUI Application
  • Implement a ProductOverview-View with multiple products similar to the screenshots
  • Implement a ProductDetail-View with a scrollable view containing an image, price, color-selection as buttons, description and a add-to-cart button
    • depending on the color-selection, the add-to-cart-button should change its color
  • Use Example Product data in JSON structure:
[
    {
        "id": 906855,
        "title": "Strickkleid mit Bindeband",
        "price": {
            "value": 23.99,
            "currency": "€"
        },
        "imageUrl": "https://image01.bonprix.de/assets/275x385/1692190166/23120919-ledODpTJ.jpg",
        "description": "Modernes Strickkleid mit Ballon Ärmeln",
        "isAvailable": true,
        "variants": [
            {
                "id": 906855,
                "color": "grau meliert",
                "imageUrl": "https://image01.bonprix.de/assets/275x385/1692190166/23120919-ledODpTJ.jpg",
                "isAvailable": true
            },
            {
                "id": 953099,
                "color": "schwarz",
                "imageUrl": "https://image01.bonprix.de/assets/275x385/1692190099/23122048-j0pv69LB.jpg",
                "isAvailable": false
            },
            {
                "id": 935416,
                "color": "kastanienbraun",
                "imageUrl": "https://image01.bonprix.de/assets/275x385/1600856915/20167389-2HSkctsd.jpg",
                "isAvailable": true
            }
        ]
    },
    {
        "id": 932877,
        "title": "Loose Fit Schlupfhose, Straight",
        "price": {
            "value": 37.99,
            "currency": "€"
        },
        "imageUrl": "https://image01.bonprix.de/assets/275x385/1568788775/19227355-fbfUTxDQ.jpg",
        "description": "Sportliche Schlupfhose mit elastischem Bund und Cargo-Taschen",
        "isAvailable": true
    }
]

Please have a look at the following gif for a better understand of the functionality:

Screenshots

Hint:

  • Feel free to use a framework, if so please use SPM to include the dependency in your project.
  • You do not need to apply exact the same functionality. Focus on the design.

Requirements

  • Your code must be written in Swift 5.x
  • Minimum supported OS must be iOS 16
  • Use Xcode 14 or Xcode 15
  • It must compile and run in the iPhone Simulator
  • Write a paragraph or two on how you approached the work and what you considered during development
  • We like git so feel free to send us the link to your repository or send us the project as zipped archive

Additional Information

We understand that you’ve probably got a full-time job and a personal life so doing the above test could be definitely finished in a couple of hours.

If you have any questions, email us and we can add it to this readme.

Good luck!