Andrei Migatchev, CTO, Magic Software SAAndrei Migatchev, CTO, Magic Software SA

Developing a mobile application follows standard application design practices, i.e. inception, planning, analysis and design, development, testing and deployment. Mobile application development is made more complex due to decisions regarding which device the application will be rolled out to and the commensurate development effort that brings.

Not much has changed in the supported technologies on mobile devices since the last instalment of this series in which we dealt with enterprise mobility (iWeek issue 260). There is still no single programming language, or a development paradigm, which is supported on all the major mobile platforms sold today. So…how does an organisation best deliver the functionality required to the mobile devices?

Web-based delivery, especially with the advancements in the mark-up language and browser capabilities, still remains a viable option. However, browser technology has inherent challenges. To date there are still problems when accessing business applications from the mobile device, namely lack of offline support and vast differences between browsers in rendering forms, executing client-side logic, and functionality that is exposed.

Developing an application for selected device(s) only remains an option for an organisation’s internal usage of the mobile application, where an organisation can dictate the choice of a mobile technology. This is slowly changing with the BYOD (Bring Your Own Device) concept gaining popularity around the world and South African organisations are already implementing BYOD policies across their workforce. This is especially the case with tablet devices, which have gained wide acceptance, and are becoming a commodity rather than luxury item.

Devices are advancing rapidly as vendors compete to provide new and exciting features to ensure adoption of their technology. Mobile application markets are growing exponentially in size with thousands of new applications published every day. Some more recent mobile applications feature functionality which competes with that of a similar application running on a conventional desktop PC.

Consumers expect applications to be supported on the major brands of smart phones and tablets, demanding a high quality of applications and their functionality. If you build a consumer app, or follow a BYOD in your organisation, you will have no choice but to support multiple devices. In order to achieve this, an organisation either has to increase the number of technologies supported by its IT department to include the mainstream mobile technologies; or outsource mobile development to software houses, which specialise in mobile development.

However, there is another alternative, i.e. meta-data driven development platforms, which provide support on multiple platforms, but do not require the developers to code in various programming languages or paradigms. These platforms abstract the developer from the technical implementation of the envisaged application on the specific devices, allowing the business logic, presentation and creativity to dominate the development effort.

These platforms have existed for years in the desktop space in the form of 4GL and RAD environments for desktop and server deployment. Recently they have been extended to take care of presenting the application on any given mobile device. This addresses the challenge of multi-device support, enabling an organisation to leverage off the years of their experience in the field without incurring overwhelming costs and delays.