We were tasked with the development of an Android-based banking app for a local bank which would replace an already existing outdated app. One of the primary goals was to not only develop an app which would update the design and improve user experience, but to ensure a high level of security as online banking often falls prey to hackers and malicious users.
We used Kotlin and Coroutines framework to develop the app. The backend was created by the bank’s in-house developers using Protocol Buffers. We had access to data structures which could be used to generate classes. This approach both reduces development time by eliminating the need to create object types and lowers the chance of query errors as classes are created automatically.
We have implemented multi module app architecture which provides great benefits during the development process. Each module exists separately and can be implemented and tested individually. On top of that this approach makes the reuse of code easy and convenient.
To ensure the safety of user data transfer, we have implemented end-to-end encryption to prevent data spoofing by malicious users through the replacement of a beneficiary account during money transfer. We used a androidx.crypto library to implement data encryption as an out-of-the-box solution was the most cost efficient option for the client.