Introduction
The client, one of the leading banks in the country, came to us with the idea of improving their existing application. They detected several problems with the application and based on their data knew that customer satisfaction is declining. Since they operate in a relatively small market with strong competition, they needed to offer excellence in both capabilities of the app and the overall experience.
We began our collaboration with several workshops where we detailedly went through the application functionality and noted opportunities for improvements. We took the extra step of thoroughly testing the whole app and found more places for improvements. The client was impressed by our proactive approach and decided to invest their trust in our company. Following the workshops where we agreed on the plan and dynamics of work, the way of testing, and their insight into our progress, we started working on the app.
Challenges:
At the very beginning, we dealt with the client’s main request. With the first launch of the application, we saw a problem with the unacceptably long loading of the main screen of the application. A detailed analysis found that the problem was in the third-party library that was used to implement the carousel for displaying current notifications. We removed the problematic library and created our carousel component that worked flawlessly.
Browsing the application, we right away noticed a large number of UI imperfections, which were caused by poor implementation. The poor auto-layout practice has led to UI problems with devices with larger screens and notch. Therefore, we checked all application screens and fixed other irregularities.
Since it was a banking application, with a large set of functionalities, creating and sending different types of requests and orders, tracking the balance of multiple accounts, tracking money transfers, etc., we had to check a large number of forms for creating requests. After checking, we found a large number of unchecked scenarios which, after sending incorrectly filled forms, led to crashes. We added local validation of the form field and prevented the submission of an incorrectly filled form, by pointing out a fault to the user.
We also noticed that there were some problems in the displaying of the user transactions and how it was implemented. Users who had dozens of transaction records failed to view some of the transactions. The mechanism was such that users can load 50 transactions by request, then when the list of the first 50 is reached, they will be replaced with the next 50 transactions. However, scrolling upwards, due to poor implementation, always loaded the first 50 and not the previous 50. Also, the constant loading of the new 50 transactions had a negative effect on the user experience. We have improved this so that transactions are being loaded naturally, as the user scrolls, keeping the existing and adding new transitions to the list. After that, the user could easily scroll between transactions.
Fraud detection SDK
Finally, we had a request to integrate an SDK for fraud detection service which enables banks to build completely trusted and safe online banking systems. We had a few sessions with the provider of the SDK and coordinated our approaches to integrating the SDK. After the implementation, the app was put through rigorous testing processes. We also had an online session to verify and confirm the data exchange between the application and the server where fraud detection was implemented.
Results
In the end, we met the client’s expectations, found and fixed much more bugs than were noticed at the beginning. As a result, we now have a reliable application, which will not crash on incorrectly submitted forms, and that greatly improves the user’s experience. Changing UI, the application now looks great on all versions of the iPhone, which was not the case at first. Through persistent testing, various irregularities in the UI, which the client did not even know existed, were discovered and eliminated. Adding fraud detection SDK and converting an application to Swift 5, we got a reliable, secure, fast loading, and up-to-date application ready to use.
*Client’s design