Tips for Cross-Platform Mobile Architecture

Building 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. That’s where the cross-platform mobile architecture comes in.

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.

Tip 1: Know Your Developer Platform

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 the 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 the consistency that is hard to achieve in different environments.

Tip 2: Keep the Source Code Organised

It is vital that the 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 the practice is adhered to greatly, improves knowledge of the code to everyone involved.

Tip 3: Reuse and Recycle

To deliver projects on time and in the 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 the 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.

Tip 4: Don’t Fight the Operating System

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 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.

To conclude…

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 mobile architecture 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.