close-icon

Nespresso vertuo experience

Nespresso was preparing to launch the latest Vertuo machine and sought an immersive activation at Mall of the Emirates for existing and potential customers. I was brought in as the technical partner to help create an engaging and memorable experience for the visitors.

Nespresso iOS app using Swift


Project highlights

  • In just one week, over 1,200 people engaged with the activation, receiving such positive feedback that it was later replicated in Kuwait

  • The iPad app was built in Swift, with a fully programmatic UIKit UI, leveraging AutoLayout, UIScrollView, and UIView animations

  • For data persistence, I used CoreData, UserDefaults, and the documents directory

  • Networking and API integration were handled via URLSession

  • Multithreading was achieved using DispatchQueues and DispatchGroups

  • I then hired and led a backend engineer to build the backend using Laravel and implement integrations with Twilio and SendGrid

I’ll now dive into some of my key engineering contributions to the Nespresso Vertuo iPad app

Visitor check in

Visitors to the Nespresso Vertuo experience were either existing or new customers. Upon arrival, they were required to check in, ensuring we collected essential visitor information for future marketing opportunities.

Nespresso iOS app data entry with Swift


Captured data was first stored offline using CoreData to handle unstable network conditions. Synchronization occurred in the background via URLSession, sending data to the backend through a REST API when connectivity was available. As a backup, the app could export data as a csv file and email it to prevent data loss.

iOS app for Nespresso.png


After check-in, visitors could register for exclusive Nespresso events and workshops, with event data dynamically managed via a CMS. Sign-ups triggered a backend API call, which integrated with SendGrid to deliver event details via email. The interface was built using a UITableView, with a custom radio button component developed to achieve the desired experience.

Coffee selector

The highlight of the app was the coffee selector, which delighted both visitors and Nespresso. The coffee selector survey asked targeted questions, and based on the responses, it recommended a selection of coffees best suited to each person.

Nespresso coffee selector built in Swift


Based on visitor responses, we identified their preferred flavor profile and taste palette. A formula then calculated the most likely coffees they would enjoy. Before implementation, I modeled this in a spreadsheet at Nespresso’s Dubai office to simulate results. The formula ran offline, with the model stored in CoreData to eliminate network dependency. The above user experience was built using a UICollectionView with horizontal paging and a custom page indicator.

Nespresso coffee app for iOS using Swift


Visitors could then visit the onsite barista at the activation or a Nespresso store elsewhere in the mall to complete their experience. By entering the visitor’s mobile number, the barista could access a screen displaying their personalized coffee recommendations.

iOS app for Nespresso


The barista could tap "Complete" to mark the visitor’s journey as finished. The iPad app then sent this update to the API, which triggered an email via SendGrid and an SMS via Twilio, offering an exclusive discount on the new Nespresso Vertuo machine.

Backend development

The backend played a crucial role in the wonderful experience we were able to create on the front end. A CMS was built to give the Nespresso team to manage content, events and voucher codes. Data was synchronised between the iPad app and the backend and some statistics were visualised on the CMS for the Nespresso team.

Nespresso CMS for the iOS app


Thank you for taking the time to review this project.

If you think I’d be a great fit for your project, please drop me a line at shawnfrank.work@gmail.com