A provider of software accounting solutions turned to Altoros to build highly available, scalable, and secure apps for Android and iOS that would facilitate corporate administrative and financial routine.
Brief results of the collaboration:
- By consolidating the functionality of 4 cross-platform apps into 2 native solutions (one for Android and one for iOS), the company significantly improved user experience and grew its customer base from 117,000 to 210,000 daily users across 1,000 enterprises. Furthermore, the satisfaction rate increased from 2 to 4+ on App Store.
- With the best practices in place, the apps securely store and process financial and personal data, while minimizing the risk of fraudulent activities.
- Thanks to the RPA mechanisms driving receipt processing, the organization was able to automate expense reporting and approval.
- Relying on expert recommendations by Altoros, the company developed a performance optimization strategy to decrease server response time by 10x.
Based in Denmark, the company provides software solutions for corporate expense management. Founded in 1997, the customer operates in 46 countries and has already helped to manage 5 million transactions of its clientele.
To manage business trip expenses, the provider had offered its customers 4 Xamarin-based mobile apps, each responsible for different stages of the same process. Users had to switch between the apps to submit receipts, track mileage, log working hours, and approve expense requests. The company started to receive multiple complaints about the functionality being smeared across 4 systems. The apps were also architecturally and technologically outdated. Being cross-platform, the systems significantly limited receipt recognition, GPS, in-app billing, etc. To retain its customers and expand globally, the provider wanted to consolidate the functionality into a single solution.
Relying on the profound expertise of Altoros in mobile development, the company wanted to build native apps for iOS and Android, focusing on scalability, security, and facilitated feature delivery.
Under the project, the team at Altoros had to address the following issues:
- Since the mobile apps gathered, stored, and processed financial and personal data (invoices, transactions, card numbers, etc.), it was important to ensure security.
- To prevent manual data entry, the apps had to scan the receipts submitted by employees and automatically extract certain information (a country, a currency, a tax, etc.) to fill out reports.
- The information between the server and the apps was sent in XML. Due to the structure of this data format, server response times could have reached up to 40 seconds.
Stage 1. Employing the modular architecture, the mobile developers at Altoros built native apps for Android and iOS, each comprising 8 modules. First, the team consolidated the functionality of 4 existing apps into corresponding modules (Expenses, Mileage, Time, and Approve). Then, the engineers delivered 4 new modules—Unit, Invoice, Allowance, and Report—to create custom categories, process invoices, request full expenses coverage, and generate time/expense reports. With the chosen architectural approach and code reuse, the developers ensured high availability, scalability, ease of maintenance, and agile feature delivery.
The UI/UX specialists built a comprehensive dashboard featuring widgets to quickly access and navigate between the 8 modules.
Stage 2. One of the efforts to safeguard sensitive data was implementing security protocols and practices for iOS and Android. To prevent fraudulent activities, the iOS developers also implemented in-app purchases validation. By using AppAuth on iOS, the team enabled protected single sign-on.
Stage 3. On both iOS and Android, the engineers employed Google ML Kit for precise text recognition of receipts and enabled it in 7 languages with accuracy of up to 98%. Then, the team created an algorithm that detects the receipt, distinguishes it from a surface, and automatically extracts necessary data.
Stage 4. On Android, the developers utilized the OpenCV library to process images of the submitted receipts. To minimize image distortions, the engineers also built an algorithm that managed camera settings.
Following the Android best practices, the team established proper GPS tracking.
Stage 5. To decrease server response time by 10x, the developers suggested migrating XML data to the JSON format with the SwiftyJSON library.
Stage 6. Finally, the QA engineers performed integration, localization, regression, and other tests to ensure the apps meet all the functional requirements.
daily active users
Partnering with Altoros, the provider consolidated the functionality of existing 4 cross-platform apps into 2 native systems (one for Android and one for iOS). This helped to grow the customer base from 117,000 to 210,000 daily users across 1,000 enterprises and increase user satisfaction rate from 2 to 4+ on App Store. With the RPA mechanism driving receipt processing, the company automated expenses approval. Thanks to the improved architectural approach, the apps are now more secure, scalable, and easy to maintain.
Swift, Objective-C, Java, Kotlin
Frameworks and tools
Google ML Kit, OpenCV, Core Image, Google Maps, Core Location, Core Data, StoreKit, Google Play Billing, AppAuth, Firebase, Alamofire, Retrofit, Coroutines