We cannot name it under the terms of the NDA.
To improve the existing native app and implement test automation
Initially, the bank addressed us with a task to improve their existing native app. The app design was outdated and users faced authorization and registration problems. . We discussed the project in detail and found out that creating a new Flutter application from scratch and laying a solid foundation for its further scaling would be easier and cheaper than modifying the existing one. In addition, such an application is much more efficient in terms of solving the bank goals.
Additionally, the client wanted us to implement test automation and infrastructure for automated tests — the tool saves the testing time for each prod and allows developers to fix bugs almost instantly. The application will evolve over the years, and automated tests will allow maintaining code coverage with tests and keeping the overall quality level.
Large task scope for the first release
We performed the first release with the largest scope as compared to other mobile banks projects that we had developed before, starting from 4 authorization methods throughout all most popular banking features to personal data management.
The project was sped up due to development with the cross-platform framework — Flutter allows saving to 40% of the developers’ time. The significant components of success were well-coordinated work of the complete project team and the reduction of testing time due to test automation. In addition, Surf brought in the expertise and a well-trained team with experience in more than 10 projects for major banks.
Flutter test automation and infrastructure for automated tests
This was the Flutter-based project where we implemented test automation and infrastructure for the automated tests. Thus, we reduced time for testing and bug fixing and provided for improving the app quality in general.
One code for apps of two different banks
The app for the second bank that belongs to the same group, is to be written based on the same code as for the first one. They will differ in design, set of features, and API access point. Due to the code reuse the terms and costs for the project can be reduced to 70%.
In the app we implemented test automation and infrastructure for the automated tests so that the bank can run tests on their own. Test automation allows improving the app quality and saving time at the testing prod.
Currently, about 65% of the app code is covered with end-to-end automated tests. E2E testing is a process implying the detailed emulation of the user environment. This means, various user actions are simulated: mouse clicks, tapping buttons, switching between screens, and others. Such testing is performed for release candidates, takes time but allows to monitor in detail the app quality.
The next step is adding the second type of the automated tests — widget tests. They can be run every iteration after adding new code. The widget tests allow at the early prod to detect bugs that are usually found during manual tests only. Developers can fix them promptly and this allows significantly improve the development velocity and code quality.
The home screen of the application offers the users the review of all their banking products: cards, accounts, deposits, and loans. For the user not to scroll through a long list, we added the option to hide unnecessary products. For example, unused cards. The user can open any banking product in the app, including card, account, loan, deposit.
Not all banking products are available in all regions. We considered such a use case: the product field will be inactive and shift to the bottom of the list.
The user can look through the history of operations and other actions. They can be sorted out by replenishment or withdrawal, specific filters can be added, or the required date can be selected.
Additionally, we implemented the expenses analysis. The traditional pie chart gives a clear picture of the amount spent for a specific category within a specified period.
There is also a My Finances module in the app. It offers the user analysis of the current financial situation: available funds or loan obligations. To make the picture more objective, we added the possibility to exclude the credit card funds.