foodfittery app for flexible recipes
Feature-by-feature migration of Breuninger's native Android and iOS app to the cross-platform framework Flutter
Client: E. Breuninger GmbH & Co.
Project: Migration of Breuninger's native online shopping apps to Flutter
Services: App development, backend development
Methods: Scrum
Technologies:
- iOS: Swift, SwiftUI, Combine, The Composable Architecture
- Android: Kotlin, Jetpack Compose
- Flutter: Dart, BloC
- Backend: Ktor, Spring Boot
Development period: July 2021 to June 2023
jambit worked with the internal Breuninger team to transfer their existing fashion apps feature by feature from native Android and iOS versions to the cross-platform framework Flutter. In the process, jambit also redeveloped existing functions in a new design and clean architecture.
Cross-platform development for shopping at the highest level
The name E. Breuninger GmbH & Co. stands for exclusive shopping experiences for lifestyle and textile goods in the premium segment. In addition to the 13 German department stores, clients can shop what their heart desires 24 hours a day in the company's own online store and the associated app.
To make app development even more efficient, to be able to react faster to requirements and to release client-visible features for an even better shopping experience, Breuninger decided to switch the fashion app completely to Flutter.
To drive the Flutter rewrite forward as quickly and securely as possible, Breuninger brought jambit on board as a reliable and high-performance external service provider with Flutter expertise.
Thanks to this efficient cross-platform approach, jambit could accelerate the development process together with Breuninger's in-house development team and create a standardized application for Android and iOS.
This led to shorter development cycles, faster time-to-market for new features and ultimately cost savings. The end users of the app now benefit from a seamless application experience across different devices.
Flutter: When an app conquers two worlds - cross-platform vs. native
A native app is an application that is developed specifically for a particular platform or a particular operating system. Native app development for Android and iOS often requires separate teams and resources for each platform. This increases development costs, development time and time-to-market.
And this is where cross-platform development for apps is focused. It enables the creation of high-quality mobile applications that run on different operating systems without having to develop separate versions for each platform.
A single code base is sufficient, and the app can be played on several platforms simultaneously. This reuse of code saves time and resources and offers app users an even smoother shopping experience.
No different development teams for Android and iOS, lower development costs, shorter time-to-market - the advantages for clients are obvious. But what exactly does Flutter change for the app's end users?
Improved shopping experience for app users thanks to Flutter
Thanks to the uniform code base, the user interface and user experience are consistent across different platforms. Therefore, there’re no differences in the apps between Android and iOS devices. This simplifies handling through similar appearance and behavior such as operation and navigation. On the other hand, it enables the same functions. As these only have to be developed once, they can be published simultaneously on all platforms. A real benefit for all users!
Updates and bug fixing can also be provided more quickly, as changes to the shared code base can be played immediately on both platforms. This gives users faster access to new functions and bug fixing.
Features implemented by jambit for an optimized shopping experience
Some existing app features were previously only optimized for iOS. As a part of the project, the jambit team developed these new features in Flutter in close cooperation with the in-house team. They’re now also available to Android users. These features include the address book for managing delivery and billing addresses and the fashion finder. This intelligent search function displays similar items matching a selected product.
A function based on the fashion finder is brand selection with product suggestions for selected brands. jambit also developed the frontend elements for in-app messaging. A sophisticated method that provides app users with action-based information on new features or current promotions.
Another feature is Breuninger Card Activation. With its help, clients can activate their Breuninger cards directly via the app to benefit from exclusive advantages.
The jambit team also worked on the order status for a transparent overview of orders and on the home feed. In the home feed, data is now loaded directly via the app's own ServiceAPI instead of transferring the data from the native apps to the Flutter module via a method channel. This makes the app even more efficient and flexible.
Backend component as an anti-corruption layer
In addition to mobile development with Flutter, jambit also worked on the app's backend. The backend acts as a centralized interface to integrate various APIs of the different development teams. This approach ensures that not all logic has to be implemented in the mobile apps. By aggregating and consolidating the data streams, the code base is also clearer and less prone to errors.
As a part of the backend development, the jambit team merged Breuninger's existing services into an Anti-Corruption Layer (ACL). The team used this intermediate layer strategically to significantly reduce the dependencies between the main components of the app and external services and APIs. Changes in these external systems can therefore be isolated and decoupled from the main components of the app. This ensures that the app doesn’t have to be updated even if changes are made externally, as the necessary adjustments can be made in the ACL.
Unexpected incidents or errors in the app itself could also be resolved quickly. Through the backend part, we have further improved the stability and reliability of the app.
The successes at a glance:
- Successful Flutter rewrite and migration of the two native platforms to Flutter.
- Accelerated in-house-driven development thanks to partnership-based collaboration with the Breuninger team.
- Conversion of the native apps to Flutter-only.
- Development of existing features in a new design and clean architecture.
- Faster market launch of new functions thanks to Flutter.
- Easier maintenance, further development, and cost savings thanks to a consistent code base in Flutter.
- Common development of new feature modules with the in-house team for a better user experience.
- Close exchange between Breuninger and the jambit development team for an ideal solution.
Interested in Flutter, too? Contact us for a consultation.
If you have any questions, please contact Maximilian Claus, Business Relationship Manager Industry & Energy, by simply leaving him a message here.
You can also contact him directly on LinkedIn or call him on +49.1516.78 53 678.
- Previous page
- To overview
- Next page