Since the launch of the iPhone in 2007 organisations have gone from taking their first baby steps into the world of “Apps” to today’s Mobile First approach. Early iPhone apps were built as “native” apps with software and programming languages supplied and supported by Apple.
Today’s apps need to support multiple platforms such as Android, Windows Phone and BlackBerry which can mean numerous different tools and technologies. In addition they must now contend with multiple “form factors” in the guise of different size phones and tablets requiring new User Interface (UI) design skills.
Whereas those early apps were stand-alone, green-field applications aimed at customers the new generation of apps need to be integrated with legacy systems and serve customers (B2C), employees (B2E) and partners (B2B).
Hybrid is a compelling solution to the multi-platform problem
The story is one of increasing complexity on all fronts. When you consider the tight relationship that has evolved between mobile and Cloud this presents another domain which developers and IT professionals must struggle to adopt. Technology has emerged to help address the challenge of different platforms and form factors in the form of Hybrid Mobile Development.
Hybrid apps enable developers to create apps that target multiple device platforms using a single code base. This means one set of tools, technologies and skillsets which greatly reduce the time and cost of both creating apps and maintaining them.
The business case for hybrid over native development is compelling especially inside organisations where IT is moving elements of traditional Line of Business apps to mobile. What these teams want is the ability to quickly target multiple platforms with a range of apps that provide functionality to different business functions but perhaps share common features.
The real challenge is what lies behind the app
These tools now provide developers with the ability to create, deploy, distribute and manage apps in a fast and cost effective way. However the developer still faces a problem which these tools do little to help with. For many years developers have built client/server based applications on a traditional architecture whereby both the client and server parts lived on the same network. In addition the overwhelming majority of application logic resided within the client code base.
Taking that application mobile poses two significant challenges: the first being the ability to expose certain server side resources such as data outside of the network; and second having to rebuild existing logic within a new code base built on a different technology stack. For example, the company’s internal Oracle database now needs to be open to the world beyond the firewall and much of the client Java code needs porting to HTML.
Many IT functions will focus on the time and cost of creating the mobile app what cannot be neglected is the implications of enabling the backend infrastructure to serve that app. As any developer who has worked with a code base built up over many years will know moving the guts of that logic to another app carries considerable work and risk.
It is this fundamental problem that sunk Rich Internet Applications (RIA) a few years ago. Many organisations wanted the benefits that came with more usable, efficient and effective application interfaces but the work to enable backend services to support the UI meant projects got bogged down sometimes for years in developing Web Services.