Software Development For The Mobile Market
The furious rate of technological change and growth in the mobile market has made it very challenging for developers to strategically plan a bespoke project, not only from a technical standpoint, but also because the market share for smartphones is changing rapidly between different systems.
At the start of the smartphone revolution, the iPhone iOS dominated the mobile market, but Google Android has now demonstrably overtaken iPhone in terms of market share, due partly to the power of the Google brand and partly to the platform's openness. Other mobile operating systems include the BlackBerry and Windows 10 Mobile.
As well as the wealth of mobile platforms emerging, there are now more hardware manufacturers than ever producing mobile devices.
When considering how best to incorporate mobile technology into an existing business model, the primary issue for both clients and developers is currently the choice between native apps and web applications - or a combination of the two.
Other issues include:
- The inherent restrictions caused by loading, caching and latency issues on mobile devices.
- The unique interaction models in mobile hardware.
- Data transfer levels within mobile networks.
We also need to consider that “mobile” no longer just means phone handsets; a range of other device types have grown in popularity, such as the tablet computer or other devices positioned somewhere between a lightweight laptop and a smartphone, and even wearable tech.
The growth in mobile technologies has meant that businesses in certain sectors are even receiving most of their web traffic from users browsing in mobile contexts.
Which platform are you looking to develop your mobile app on? Native (Android/iOS) or Hybrid (Cordova/Phonegap)? When considering a mobile strategy, one of the big decisions for many clients is whether to focus resources on a Web application or on native apps targeted at specific mobile platforms. There is no "one size fits all" solution to this issue, because of the number of platforms operating, and the best approach for one business may be entirely different to that for another.
An additional complicating factor is the intense competition in mobile software, which is fuelling accelerated change within each of the platforms. Windows Mobile was replaced by Windows Phone, which has now become Windows 10 Mobile. Both Apple iOS and Android have undergone significant changes with each release, making the task of supporting users a major undertaking, even for a single operating system.
Some of the platforms – Android in particular – are being deployed on devices produced by a long list of manufacturers, each of whom like to modify the operating system to their particular requirements. Meanwhile, Android hardware is now available across a much wider market sector than ever before.
In the early days of the smartphone, the technology was essentially only available to consumers shopping within the top price brackets. Now these handsets have become more accessible in terms of cost, and approximately 76 per cent of people in the UK currently use smartphones.
The result is that developers have to consider a lengthy array of screen sizes, hardware specifications and configurations – and ultimately a range of fundamentally differing models.
Web or Native
There are two broad choices in deploying a system to mobile users:
- Creating custom native apps targeted at some or all of the major mobile platforms.
- Developing a Web application that is optimised for mobile access.
There are a number of benefits and drawbacks to each approach, all of which need to be weighed up along with the specifics of any particular project.
Apps targeted at specific mobile platforms enjoy a number of natural benefits:
- Native access to the user interface creates a level of interaction that is difficult, if not impossible, to achieve through a Web browser.
- Native apps are in prime position to exploit the unique hardware and software facilities within mobile devices, such as GPS and localisation tools, accelerometers and touchscreens.
The primary consideration when implementing a service using mobile apps is the number of platforms. If targeting a sizeable chunk of the market is necessary, the resources required may be considerable.
Mobile apps distributed commercially through app stores are subject to sales transaction charges. The task of promotion and adoption by new users is also increasingly challenging, as many of the app stores, particularly Android, are becoming extremely overcrowded.
For some purposes, a native app may be primarily used as a marketing resource, providing a supplementary service which highlights some larger branding or commercial objective.
Both short and long term native app development implications include:
- A diverse skill-set is necessary to develop apps for multiple platforms.
- There are significant maintenance implications, as the various operating systems, software and hardware contexts are in a constant state of flux.
Prospective clients should therefore look for a demonstrably high level of competence when considering any development services for mobile. A wealth of experience puts Blueberry in a strong position to deliver not only development expertise but sound advice on these issues.
Mobile Web Applications
There are also significant advantages to focusing development resources on Web applications accessible over the mobile network:
- Only one system need be developed, optimised and enhanced to cater for users.
- Both development and maintenance are simpler and less labour intensive for a single application, even allowing for the enhancements necessary to cope with user platforms.
Additional positive aspects of the mobile Web include:
- The sophistication level in mobile Web browsers is advancing at such a rate that in some cases the gap between mobile and desktop functionality is diminishing.
- For commercial applications, early evidence suggests that consumers are more inclined to make purchases via mobile websites than native apps.
The fundamental consideration when focusing on the mobile Web is that, while there are tremendous advantages from both development and deployment perspectives, the network technologies and infrastructure have some way to come yet, in terms of specification and support at the client end. This includes a modern browser to take advantage of the advances.
Mobile Web browsing has changed dramatically over the past couple of years and is predicted to change drastically again over the next two years, largely as a result of faster internet speeds (4G LTE).
Moreover, technological changes in the coming years will be substantial. Much has already changed. For example, today the screen size of a user's mobile device may be anywhere between the size of a wristwatch (wearable tech) all the way up to the size of a small laptop computer, where a tablet device is being used.
An increase in bandwidth and network efficiency will mean additional improvements - 4G LTE can result in wireless broadband that is 10 times faster than 3G, able to handle download speeds between 5 and 12 Mbps and upload speeds between 2 and 5 Mbps, with peak download speeds approaching 50 Mbps. This is important as existing studies of mobile Web service users indicate that speed is valued over functionality, with over a third of users saying they would begin abandoning a site within 5 seconds if it loads too slowly
Web applications have in the past been somewhat limited in terms of both hardware exploitation and user interaction. Innovative uses of scripting can approximate a native experience within a web application, for example via HTML5 and jQuery. However, the native app presently has the ability to create a much more intuitive and immersive user experience.
HTML5 has had a dramatic impact on the mobile Web, with some major sites already focusing on this latest markup language. HTML5 adds syntactic features that are vital to enrich the user experience. These include video, audio and canvas elements, as well as the integration of scalable vector graphics (SVG) content and MathML for mathematical formulas. These features are designed to make it easy to include and handle multimedia and graphical content on the web for much better user interaction, without worrying about proprietary plugins and APIs.
HTML5 has the following improved features:
- Offline Support - The cache manifest and offline storage database make it possible for mobile developers to store data locally on a device and know that interruptions in connectivity will not affect the user.
- Canvas and Video - These two features are designed to make it easy to add graphics and video to a page without worrying about plug-ins. The HTML5 APIs allow extensive levels of control over drawing and media playback functions.
- GeoLocation API - Although not part of HTML5, this specification is often bundled with it because HTML5 enabled mobile phones are generally supporting the GeoLocation API. The API promises to be a key element in bridging the gap between native apps and Web applications, as it will create a standardised way to provide localisation functions.
- Advanced Forms - The incorporation of the Web Forms 2.0 specification into HTML5 makes for significant improvements in forms within mobile applications.
Mobile Web development relies heavily on external libraries and support tools - some commercial, some open-source.
Additional scripting tools combine with jQuery to create improved user interfaces for mobile Web applications, coming some way towards a native app experience on the Web. Other libraries include The-M-Project, Mobi and jQTouch.
Native + Web
There are ways in which applications can adopt some of the characteristics of both Web and native apps. In general, the loading issues in mobile devices require efficient applications to adopt well-defined coping strategies such as:
- Utilising minimal HTTP requests.
- Carrying out as much processing as possible at server side.
- Generally minimising data and media content.
When these practises are adopted, there is increased scope for focusing platform specific development on creating lightweight interfaces, with server side processing usable across platforms. This model can allow projects to better maximise on development resources, while still catering for multiple user environments.
For many organisations, deploying both native and Web apps is still seen as necessary. Users are still using them both, and in subtly different ways. There are also specific cases in which it makes sense to target one or more platforms with dedicated apps, where the unique features of that platform have heightened relevance, for example with the superior level of Google Maps support on the Android platform.
For software developers, the dominant issues to consider when undertaking a project for the mobile market are:
- The pace of change in the mobile market makes strategic planning very difficult.
- A flexible position must be adopted to provide mobile services while keeping future options as open as possible.
- For the immediate future, both Web applications and native apps will continue to have significant relevance.
For prospective clients, the idea of being able to develop a Web application once and deploy it in multiple user environments is an appealing one. However, the pace of change in the mobile market makes strategic planning very difficult.
With end users exploiting multiple environments and communicating through an ever-increasing range of channels, the mobile Web seems most likely to be in a position to reach all of them in the long term. But given its present limitations, focusing exclusively on the Web will remain challenging. The accepted view is that most of the inherent advantages of native apps will be accessible from within Web applications eventually.
For now, web apps are not yet able to emulate native apps perfectly. Native apps talk directly to the operating system, while web apps talk to the browser, which talks to the OS. This extra layer that web apps have to pass through makes them slightly slower and coarser than native apps. However, the rapid pace of mobile web browser development is allowing more and more native device features to be accessed by web applications, slowly eliminating the gap between web and native.