Merging multiple mobile apps

The client - as a group - provides various services on the financial market. Initially, the client released and maintained separate native mobile apps for iOS and Android for each product. However, aiming to simplify product cross-selling and streamline the use of its products, the client decided to combine the functionality of all these apps into a single mobile app for iOS and Android.

Image

Project in a nutshell

Industry

Financial

Technologies

Android: Android SDK (API level 33), Kotlin, Hilt, Coroutines, Android Jetpack libraries, Google Filament, Lottie, Firebase (Crashlytics, Firestore, Remote Config, FCM), jUnit, Espresso

iOS: iOS 16 SDK, Swift, SwiftUI, Combine, SceneKit, CoreData, Lottie, Firebase (Crashlytics, Firestore, Remote Config, FCM, Internal App Distribution), SwiftGen, XCTest

Duration

9 months

Team

2 Team Leads

5 Android Developers

5 iOS Developers

1 QA Specialist

1 UI Designer

1 UX Designer

1 Project Manager

1 Business Analyst

Form of cooperation

Agile, Time & Material

Scope
  • Product workshops & analysis

  • UI/UX design

  • Technical stack assessment

  • Native mobile apps

  • QA

  • SLA & maintenance

Innovations and challenges

As part of the innovations during the development of the app, we implemented full UI automated testing (Android Espresso + iOS XCTest). We also used only the latest libraries, architecture and components for iOS (SwiftUI, Combine) and Android (Kotlin, Hilt, Jetpack). By using Google Filament in Android and SceneKit in iOS, we implemented parts of the UI in 3D and even integrated the apps with Lottie to use vector animations.

The biggest challenge faced during the development of the new app was to combine 3 apps written in different architectures with legacy code (Java, UIKit). This required creating a new architecture and rewriting new technologies (100% Kotlin in Android and 100% Swift + SwiftUI). It also involved creating missing controls not available in SwiftUI. An additional challenge was to ensure the highest security standards in the highly fragmented world of Android by, among other things, using dedicated and widely recognised libraries such as Bouncy Castle. The client's requirement to ensure consistent app performance across multiple iOS versions did not make the work any easier.

Image

Contact us

Have an idea for a project?
Let's talk!