Tips for Cross-Platform Mobile Architecture


Developing mobile apps is difficult – there’s a lot thought and practice required to get apps doing what everyone expects. How it looks, works and responds is vital to a successful app and there are a lot of variables to consider.


This problem is further complicated by the need for businesses to keep their customers mobile. Customers have choices by siding with Apple, Google or Microsoft for how they achieve being mobile. Apps today typically need to work in a cloud connected, cross-platform world, and getting the foundations right for a development team to cater to these needs makes it even more difficult.


But there are ways to ensure that this process is easier to manage and ultimately develop. Personal experience in developing mobile software at this level of detail has enabled me to figure out a few things.


Traditionally, cross-platform meant writing code that basically does the same thing in different development environments. You might have had the same app, one version written in Objective-C, another written in Java. But, in enterprise, this is now being seen as a tedious practice and also more expensive to maintain.


Business is increasingly looking at ways to make this process cheaper and more consistent. Examples of ways of achieving this are products such as Facebook’s React Native or Microsoft’s Xamarin platforms. Both of these use one language to unify development between all an app’s target platforms, which encourages code re-use for business logic (and to a lesser extent UI), cuts development costs and delivers on consistency that is hard to achieve in different environments.


It is vital that organisation of an app’s source code and its dependencies are put into place at the start of the project. Developers are not always the best at making sure classes, files and assets are in a good structural order, but having the scaffolding in place to ensure practice is adhered to greatly improves knowledge of the code to everyone involved.


To deliver projects on time and in budget, particularly when many projects have been completed in an organisation, common patterns and implementations often become apparent. For cross-platform, abstraction is a fundamental tool to use in app development – build a component in code with the foresight to ensure that it can be dropped into another project with minimum hassle. Also apply this thinking to these components that handle differences in target platform, but still provide a simple, unified way to reuse something.

It is also worth bearing in mind that developers before are likely to have had the same problems, and sometimes also publish these solutions in an open forum, like GitHub. Finding these resources and recycling them in projects (and even contributing back!) will help in delivering projects. Don’t reinvent the wheel.


Excellent mobile apps augment the functionality of the device they are running on, without trying to replace what users and customers alike expect. Don’t try to mimic or replace something that is a common pattern, be it in code or even in a design. In cross-platform development, and enterprise especially, use the standard tools given to you for free by iOS and Android. It will save time in development but also support.


Mastering a lot of this is crucial in building successful apps. It can take considerable investment to get to a good place when making them, but believe in the team and the cross-platform tools available.


I hope that by sharing my thoughts and tips it will help highlight why it is so important to make sure practices are followed to overcome potential difficulties.


What are your mobile app development experiences and challenges? We’d love to hear about them. Leave a comment or drop into our Bournemouth office for a cup of tea and a chat.