Google reports that over 1.3 million new Android devices are activated daily, and Apple has sold 400 million iOS devices since the iPhone introduction in 2007. This huge growth means that mobile devices will become the device of choice for all transactions. The power of the ‘mobile app’ thus cannot be underestimated.
The power of the cloud and the ubiquity of mobile handheld devices has unleashed a whole new world of ‘mobile app development’. While appearing similar to traditional software development approaches, building truly cross platform mobile apps is a completely different animal to deal with.
The first question that comes to mind when designing cross platform mobile apps is: what are the platforms for which apps are to be designed. The most predominant platforms are (a) Android, (b) iOS, and (c) Windows.
However, the main challenge with building individual apps for each platform is that the platforms rely on their own SDKs and tools in order to build “native” applications. Each SDK also has its own dependencies. Developers are forced to commit not only to developing for all platforms, but also for maintaining the apps for all development platforms.
What are the best practices that developers can adopt while developing cross platform mobile apps?
Best practice 1: Select a native development platform
Each platform has its own native development platform. For Apple iOS, the development platform is Objective C with Cocoa, for Windows, it is Objective C# with .NET, and for Android, it is Java with ADK.
The main advantage of choosing the native development platform is that the complete feature set of the SDK is available for the developer.
Best practice 2: Start by defining a user experience/look and feel
Although the functionality of the app will be fixed across platforms, such things as look and feel, color themes, still need to be designed to be in sync with the platform in question.
Developers need to ensure a fine balance between creating a custom look and feel for their app, while still staying within the look and feel of their platform, so that app users do not have a steep learning curve when switching from one platform to another.
Best practice 3: Create a distinction between platform specific and business specific portions of the app.
This will ensure that the business logic can be reused across platforms, but the platform specific aspects of the app are dictated by the native platform.
For instance, code for the GUI layer will be different across platforms, but that is not the case with the business logic.
Creating this distinction helps build cross platform apps with ease.
Best practice 4: Adopt rapid release approach
The mobile world is used to more frequent updates; so traditional update frequency of weeks or months will not find favour with users. Each release cycle should contain a set of smaller features which can be developed in a few weeks or less. Each release cycle can be a logically complete set of features which could be released if desired.
While stabilizing the code, some team members can start planning the next release cycle. In this way, release cycles can keep rolling, and customers can enjoy the updates that they expect.
Best practice 5: Minimize the use of third party libraries and/or application frameworks
Third party libraries, many a time, run the risk of being poorly maintained thereby giving rise to performance issues. Most of the time, the required functionality can be achieved with the native platform libraries themselves. If external libraries have to be used for performance reasons, go for modular and well supported application frameworks.
Got some best practices that have worked well for you? Feel free to share with us.