Project Screenshot

Loyalty app for fast food restaurant chain

European mobile loyalty app that allows customers to place order and track rewards

  • Our client’s request

    Our client from a fast food restaurant chain decided to change the business logic of their loyalty system in Europe. Previously, every European country fast food restaurant operated in had its own app for its loyalty program, with unique offers and discounts. But as the number of restaurants started to grow, it became challenging to manage all of these apps. This is why top managers decided to develop a single app for the entire European market.

  • Solution

    In close cooperation with our client’s development team, we created a loyalty app for iOS and Android that caters to European users.  

User roles


The admin can manage all content on the platform via a content management system (CMS). This content is different for each country.


Users can create profiles, check the menu, pre-order, get fresh offers and get discounts.


December 2019 - present
iOS - 2 Android - 2 QA - 1 PM - 1 Design - 1
Android and iOS app development

We built native Android and iOS apps. We used Kotlin for Android development and followed clean architecture principles. For the iOS app, we used Swift and implemented a service-oriented architecture. 

Clean architecture for Android

We created a presentation layer divided into feature modules that look like separate libraries. This allowed us to:

  • cut the app development time

  • easily add new features by creating new modules

  • reduce the app’s size

Service-oriented architecture for iOS 

We chose a service-oriented architecture in combination with the model–view–controller (MVC) design pattern. This architecture allowed us to prevent view controllers from being overloaded and reuse code. We implemented our own HTTP client to make requests and handle responses with native Codable decoding and encoding without third-party dependencies. This approach was time-efficient. 

Dynamic UI

The app has dynamic content that can be changed by the admin via a CMS. Meanwhile, the design looks and feels native to each platform. 

Offline mode

The app’s content is loaded once and then stored offline, minimizing the app’s storage needs. To store data and optimize images (by resizing and caching), we used Realm for iOS and Room for Android.

Dynamic localization without updating the app in the app stores

Dynamic localization allows our client to add new countries, languages, and images to the app at any time. It also allows our client to avoid spending money on a separate development team to maintain each country’s app and reduces the effort required to provide localized content via multiple APIs. To add support for a new country, a new loyalty app no longer needs to be uploaded to the app stores. The backend simply needs to be updated with localized content.

Implemented features 

Users can log in to the app, choose a country, and get special offers based on their location. Users can check out the menu, pre-order food and drinks, and track current offers.

Registered users can join the referral program and invite their friends. Each member of the program gets a discount on every purchase.

Users can pre-order food and drinks and thus skip the line. Plus, users get a discount when ordering in the app.

An automated carousel allows users to tap any offer and see the details. 

When ordering in a restaurant, users can scan the QR code in the app to earn points. They can also add a plastic loyalty card number to an existing app account.

Users can quickly find a nearby fast food restaurant, view its hours, get directions, and see the approximate time required to get there.

Users can customize their orders in the app. For example, they can add double cheese or exclude onion. They can also save their favorite order and give them custom names for quick search. 

Users can view their order history across all restaurants. 

Technology Stack

Swift icon
Retrofit icon
Google Maps icon
Google Maps
Kumulos icon
Codable icon
Koin icon
Realm icon
LiveData icon
Room icon
Kotlin icon

Client's feedback

Steelkiwi is working on an iOS and Android app for a loyalty program platform’s client. Steelkiwi’s work meets the mark, and the app performs well on the iOS and Android stores. The team is professional, organized, and on top of the ball. They always make a concerted effort to fully understand the requirements for their assignments. Steelkiwi is a reliable vendor that always delivers.

John Norrie, CEO of Loyalty app for fast food restaurant chain