Subway

Loyalty app for a fast food restaurant chain

Industry:
Retail & eCommerce
Location:
Europe
Platforms:
Native iOS
Native Android
Loyalty app for a fast food restaurant chain
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 and had its own app for a 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

We crafted Android and iOS apps, leveraging Kotlin for Android development while adhering closely to clean architecture principles. For the iOS app, we used Swift and implemented a service-oriented architecture.

With the revamped app, adding support for new countries doesn’t need an app store update. The backend simply needs to be updated with localized content. At the same time, the new app has a dynamic UI/content structure that can be changed by the admin via a CMS, so it can fulfill marketing and business needs for various markets and purposes. The design looks and feels native to each platform.

Globaldev engineering team

We built a team of 10+ specialists for modernizing the client’s applications.
Project managers
Mobile developers
UI/UX experts
Business analysts
QA engineers

Implemented features

Android and iOS development process

1
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.
2
Service-oriented architecture for iOS
We chose a service-oriented architecture in combination with the model–view–controller (MVC) design pattern. This 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.
3
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, and reduce the app’s size.
4
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.
Video preview

Ready to build your retail solution?

1
2
3
4

Please, select the pivotal building blocks of your product, so that we can make a more accurate assessment of the project.