NoMo is a mobile app for personal finance management – it calculates daily available funds using the customer’s bank data. With personalised in-app communication and focus on regular bank customers, users in the UK can spend their money more consciously and efficiently. Find out how we took care of NoMo’s end-to-end development with the use of iOS, .NET platform and API integration.
The idea behind NoMo is one of those you would call simple enough to become a game changer: provide a 24/7 private finance assistant to everyone, no matter the account balance. The application eliminates banking jargon, overwhelming numbers and other factors of the financial world that scare most of bank customers away. It recommends daily spending limits and shows financial performance based on data extracted from the user’s bank account. The role of Code & Pepper was to develop a high-performing application that will process banking data swiftly and securely.
NoMo owners struggled with their backend and the existing version of iOS app. The code in Java turned out hard to maintain while the part in Objective-C required several improvements. Our key challenges included:
- rewriting and unification of the back-end code using .NET
- fixing the issues with Objective-C
- improving the software architecture
- finding an optimal cloud solution to keep the application data safe and sound
Solutions for NoMo
Code & Pepper provided a team of experts responsible for different elements, including a mobile solution architect, iOS developer, back-end developer, and project manager. Here’s how they handled all the issues and shipped a revived version of the NoMo app.
Integration with DirectID
Users’ banking data are at the core of all features for personal finance management available through NoMo. The application uses DirectID—the client’s proprietary banking data aggregator—to access and analyse transactional data, then transforms it into custom insights and recommendations. Seamless integration with DirectID Connect was the first step towards fulfilling the project objectives and it influenced subsequent technology choices.
Hexagonal architecture in Microsoft Azure
The next thing on our to-do list involved the design and deploy of an optimal cloud architecture. We upgraded the monolithic architecture to the Ports and Adapters pattern (also called hexagonal architecture), which improved the clarity and overall quality. The new architecture was deployed to Microsoft Azure with Azure Notification Hubs used for sending push notifications to iOS devices. We also handled all the DevOps part of the new architecture implementation.
New back-end code in .NET
One of the first significant changes we made in NoMo was rewriting the Java back-end in .NET. It seemed natural to adapt the back-end to the rest of the app’s code structure. The DirectID Bank Data API, which integrates with banks using Open Banking API, was written in .NET, a cross-platform development framework created by Microsoft. That’s why the new back-end was implemented using .NET and programmed in C#.
Tidying up with Objective-C
Another issue to tackle regarded the iOS code written in Objective-C, including many overengineered elements affecting the application’s overall performance. Instead of rewriting the whole code in Swift, the final choice was to add new features and improvements to the existing code.
Project management and cooperation
While working on NoMo, we shared the roles with the client in the development process. The product requirements were not fully described, so product ownership stayed on the client’s side. They also took over the tests of the application with the use of existing bank accounts.
We value Code & Pepper for its proactive attitude, responsiveness and transparency. It is a reliable and dependable company that we can recommend for other business entities to cooperate with.
James Varga CEO & Founder