Mobile devices are the fastest-growing enterprise platforms in IT, with custom software development companies like Blueberry designing every possible mobile application to run on tablets and smartphones.
The fundamental consideration with delivering bespoke business applications over mobile devices is the wide variety of smartphone and tablet computers, and the ever-increasing number of features each device offers. This consideration is important since mobile apps can be designed in one of two ways – using a Web browser as its destination, or a dedicated app for each mobile device.
The advantage of using the web browser approach is that you don’t have to develop a separate application for each platform. Of course, it’s never as simple as that, but we can still write versions of an application for many different platforms using a single language and many pieces of reusable code.
With a dedicated app for a particular mobile device, there are cost implications associated with development. At the same time, a dedicated app will almost certainly be better than the performance of an app that has to run through a browser.
Depending on what the customer wants, successful mobile app development therefore often involves a combination of technologies and techniques. This is where a diverse skill set, together with an understanding of the mobile landscape, is essential to provide businesses not only with high-quality and relevant development services but also effective and ongoing guidance in this time of accelerating change.
The challenges at this stage in mobile technology are mirrored by an ever-increasing range of opportunities for businesses to implement new and improved processes. In general, there are two main approaches to delivering business solutions over mobiles:
1. Web
The mobile web has undergone enormous advances over the past few years. According to recent research by the UK telecoms regulator, Ofcom, approximately 66 per cent of adults in the UK are now using smartphones, and around 50 per cent are predicted to be using tablet computers, with the surge being driven by the increasing take-up of mobile broadband, providing faster online access. Many more mobile users now have some kind of internet access thanks to the ubiquity of smartphones and generous data plans. Although the functionality of mobile web browsers is now on par with their desktop counterparts, there are still some hurdles in terms of network connectivity and speed depending on user location – this is expected to improve as 5G becomes widely available.
2. Mobile Apps
Mobile applications are software solutions deployed directly onto devices such as tablets and phones – many of these tie into internet services in order to provide extended functionality of a website, although in some cases often the reverse is true where the mobile application is the priority and the website acts as an extension or alternate view into the application.
Mobile app development is split between native and hybrid, where the former involves writing code targeting the platform’s compiler. The advantage here is that developers have better access to device instruments, such as GPS, accelerometers, and temperature sensors, and can write better-performing applications by utilizing, for instance, native graphics or rendering libraries. However, native development requires that developers have to write separate code for each individual platform they wish to target, which increases the burden of knowledge they have to bear, and makes debugging quite painful if for example, an error appears on one platform but not another.
To help bridge the gap between mobile platforms, the concept of ‘hybrid’ development has taken off recently, where developers instead only have to maintain one codebase which can then be published to each platform. The primary disadvantage here is that a hybrid application tends to run in an abstracted environment, meaning that performance can suffer at times and there is considerably less access to platform-specific features as they are introduced, such as 3D touch on iOS. Over time, these disadvantages become less relevant as developers write plugins to cover these shortcomings while manufacturers make gains in device performance, lessening the performance penalty.
For relatively simple applications, hybrid apps would seem to be the future of app development as it allows for easier publishing and maintenance when targeting multiple platforms.
Native mobile applications are software solutions deployed directly onto devices such as phones. Many mobile applications link to internet services, with the application, or “app”, handling user interaction natively. Mobile apps have the advantage that they provide a deep level of interactivity that is suited to device hardware – for example, using gestures or sensors like GPS. The difficulty with using mobile applications to deliver business services is the range of platforms in operation.
There are currently several dozen leading mobile operating systems on the market. Currently, the most widely-used platforms are Android, the open-source system variations of which are used by tech giants such as Google and Samsung, and iOS, which is the proprietary system used by Apple.
In terms of technologies for mobile apps, the list is long and depends on which platform (or platforms) you choose to target. Among the most commonly used programming languages for mobile applications are HTML5, Java, C++, Objective-C, Swift, and C#. Each major platform has a specific Software Development Kit, with its own tools to help with the design, testing, debugging and deployment. To decide which language is best for mobile development depends on the specifics of the project.
However, the complexity of mobile application development is such that targeting even a single platform involves extensive testing. Some businesses maximise development resources by balancing native user interaction with cross-platform resources at the back-end, in which case a mobile app can effectively function as an interface for a Web application.