Alizz



A technical balancing act
Back in 2015, while I was at Ubanquity (now Layer), we set out to release a new app for the Alizz Islamic Bank. Our goal was straightforward yet complex: to rewrite our existing white-label application into a more advanced V2, sharing as much business logic across Android and iOS.
We initially looked into React Native, but our commitment to native Java was unwavering, primarily to maintain the high-security standards crucial for banking apps (again this was back in 2015). Sticking with Java natively on Android, I moved to the MVP architecture from MVC for its ease of automated testing. Implementations like certificate pinning and SQLite Cipher for encrypted databases were key features, ensuring top-tier security. At the time, fingerprint security was also a new thing released in Android M that I was quick to implement.
We still wanted to share code across platforms, so we decided to add some C++ into the mix for all of our business logic on both iOS and Android and used the Android NDK. This was heavily inspired by Dropbox’s innovative approach.
The journey wasn’t without its challenges. Debugging C++ on Android was a nightmare! And after a few years of it I had enough and the Dropbox folks by 2019 felt the same too.