Why the future of apps is cross-platform
This article was first published on LinkedIn. Subscribe to Ahmed Dekmak's 'Building The Payments Web' newsletter to read his articles as soon as they are published.
At the end of 2021 we made a strategic decision to develop an in-house app, which allows us to better curate the user experience, gives us visibility over how our customers are interacting with the app, and have better control over the end-to-end experience (like the rest of our platform). We set out to utilise the capabilities offered by our CXTN API platform including P2P Transfers, Expenses, Bulk Payments and Currency Pots, and wrap them up neatly into our app.
Although we have always flirted with the idea of an in-house app, we have never had the dedicated resources or technical sensei to lay the foundations for such an app to be built. So, while our FinTech peers are mostly mobile-first, we have focused almost entirely on being platform-first to deliver a best-in-class orchestration layer and strengthen our core offering, knowing that we would be able to develop our in-house app off the back of this.
Excluding an ill-fated attempt to use Xamarin (Microsoft), most of our app incarnations have been written in native programming languages (Objective-C / Swift for iOS and Java / Kotlin for Android) and have been completed almost always through an agency.
Our latest version of the app was built using React Native, a development framework which enables efficient mobile app development through a single codebase. Having already been burnt once with a cross-platform development framework (see Xamarin above), we felt that revisiting this option was the wisest choice given the skills we have within the team.
Choosing React Native over native languages was a conscious decision and would ultimately result in building a single codebase which caters for both iOS and Android. This not only streamlines the Dev & Test effort, but also allows us to have a single date/goal in mind for release; as technically if the build is fit for one platform, then it is ready for the other too!
Build once, deploy twice™
Development of the app was an arduous task, which took a few months just to build the correct foundations from the ground-up. Ultimately the end-to-end process breached the 9-month mark and involved several members of the tech team including UI/UX, QA, Backend and DevOps; not-withstanding the Product squad who were extremely efficient at dispelling the clouds of doubt whenever they appeared.
The prospect of delivering a superior experience for clients meant every member of the team was fully invested in successfully delivering the app.
Although our previous app never won us any prizes, it did the job with regards to functionality, albeit through the integration of our CXTN API. We mapped the functionality of the existing application, to deliver at a minimum what was previously offered whilst also considering what has always been missing from our app offering and what our customers have told us over the years, namely: the ability to book international payments via the app.
The mapping and curation of the APIs was notably the easiest aspect of this task, as our platform has relied on our APIs for several years now, giving us further confidence in building new app functionalities over it.
Last, but no means the least, was the integration of the app build and deployment process into our existing Azure based CI/CD tooling. This was a gruelling process encompassing three separate systems (including the app store) and is probably deserving of its own blog post!
The release of our latest app – Version 9 – marks the 4th incarnation of the Caxton Card App, which introduces the ability to make international payments natively in the app for the first time. We hope that this is the final variation of the app, and one of many iterations that we can build upon over the next few years as we continue to listen to our customer feedback.
If you’d like to see the hard work that the team has put into this app release, it is available on iOS and Android.