Anytime, anywhere – developing for data on the go
Posted on: March 2, 2023We take them for granted, but mobile computing environments underpin much of our modern lives, from Zoom calls with colleagues to finding your way on google maps, watching real-time news or events, and posting on social media. Here we take a look at mobile computing, what developers need to consider when designing mobile apps, and how this fast-paced field has evolved over the decades.
What is a mobile computing environment?
“Just as with mobile telephony, the use of mobile computing has permeated the understanding that network access is ubiquitous. As WiFi access has become widespread, we now take connectivity for granted anywhere, instantly.” write Jean Philippe Vasseur and Adam Dunkels, in their book Interconnecting Smart Objects with IP.
Quite simply, mobile computing is an integral part of our daily lives – from the calls we make to the emails we send and the web services and apps we use. It is the technology we use for transmitting our voices and data through small, portable computing devices – for example phones, tablets and laptops – using wireless-enabled networks. A mobile computing environment is a space where mobile users access information through a wireless network connection. The mobile unit may be stationary, in motion, or it could be connected to a fixed (wired) network.
What are the main concepts of mobile computing?
The defining concepts of mobile computing are generally agreed to be:
Portability – devices or ‘nodes’ connected with the mobile computing system that allow the user to move around and use it on the go. While these devices might have limited capabilities and power supply, they should have enough processing capability and be easy enough to carry around to operate as wireless communication in a moveable environment.
Connectivity – computing on the move should not mean having to put up with lag or downtime, so this principle defines the quality of service of the network connectivity. Network availability is expected to be maintained at a high level without being affected by the mobility of the connected nodes.
Interactivity – the nodes within a mobile computing system communicate and collaborate through active trading of data.
Individuality – a mobile computing system should be able to adapt to cater to the needs of the individual user, and also to get hold of the contextual information of each node.
What types of mobile computing environments are there?
Mobile computing environments are made up of three parts: infrastructure, hardware and software technology:
- Infrastructure. These are the technical components that allow devices to communicate, such as the wireless networks, wireless protocols and data formats.
- Hardware. The physical mobile device and supporting hardware that users interact with make up the mobile hardware. Mobile phones, laptops, tablets, wearables (such as smart watches) and accompanying chargers and accessories are all examples.
- Software. The applications that run on mobile devices are the mobile software, including mobile operating systems, and user-facing applications, such as mobile platforms and browsers and e-commerce applications.
What should a developer consider when developing mobile computing applications?
“The funny thing about “mobile computing” is that mobility is the easy part. What is actually of interest to the consumer, and hence to those who need to sell to the consumer, is computing despite mobility. There is a small segment of the population who will buy a new device purely for the sake of its coolness, but mass appeal does not come until there exists an application that is sufficiently compelling to justify purchasing (and carrying around) a new device,” says Roy T Fielding in his foreword to the 2004 book ‘Mobile Computing Principles’ by Reza B’Far.
While mobile computing technology has advanced considerably in the time since this was published, it remains true that the appeal of mobile computing is still largely dependent on its apps. By the end of 2010 smartphone sales outstripped those of personal computers for the first time. As this area has rapidly evolved, the industrial lead position has been passed on several times within only a decade, from Palm to Nokia to Apple. This motivates researchers and designers to keep innovating and developing new technology and mobile applications.
The mobile computing environment is constrained by unreliable mobile elements and low-bandwidth wireless links. These factors heavily restrict the design and structure of mobile computing applications.
Firstly, new models have to provide efficient access to both applications that currently exist and new ones if they’re to be acceptable. Another important design consideration is the type of functionality assigned to mobile hosts. Mobile units are after all unreliable and prone to hard failures, such as theft, loss or accidental damage.
Therefore, mobile application development should encompass these requirements for the mobile computing environment, according to Mahendra Gojil at Mjginfologs.com:
- Type of Application – if your app requires access to local resources then consider designing a native application, whereas a mobile web application is compatible with all devices with an internet connection and a browser.
- Target device – consider the screen size, user operation (touch screen or non-touch), orientations, resolution, memory and CPU performance of the device and platform the app will run on.
- User experience – the user interface should be intuitive and responsive and factor in other functions of the device that could be distractions to end users, such as incoming calls.
- Resource constraints – for example, take into account the limited CPU, memory and battery life and the impact on the overall power usage of reading and writing to memory or specialised hardware and processor speed.
- Platform agnostic – developers of an app for more than one device should design first for the subset of functionality that exists on all of them and then customise for device-specific features when they are detected.
- Security – mobile devices are less secure than a desktop computer and can be lost or stolen easily, so developers must ensure that the server communication is secure and accepts requests only from trusted sources.
- Network Communication – this is slow and expensive on one device, so reduce network traffic by combining several commands in one request. Compress large text or XML data to lessen network traffic.
A brief history of mobile computing
1970s – In the early 1970s, mainframe computing sometimes provided remote access using a modem-based dial-up connection, typically at 300 to 1,200 bits per second (a tiny fraction of today’s UK average internet speed of 50 million bits per second). Mobile terminals appeared in this era too, but they were big, heavy and expensive by today’s standards with slow network speeds. They were based on early operating systems like MS-DOS and used floppy disks, small black and white cathode ray tube displays and, when available, plug-in modems of up to 2,400 bps.
1980s – Early laptop computers, such as the GRiD Systems Compass Computer 1101 appeared in the early 1980s, which required AC power and were large, heavy and expensive. The first commercial mobile phone appeared in 1983.
1990s – Laptops became a popular form of wireless computing in the 1990s as technology improved and design became more portable. Displays improved and prices began to come down thanks to add-on and internal Wi-Fi links, reliable battery power and contemporary operating systems, such as Microsoft Windows, MacOS and Linux. Personal digital assistants (PDAs) that stored and retrieved calendars and phone directories also first appeared in the early 1990s.
2000s – Mobile phones gained popularity as they became more portable and networks became more widespread. The addition of cellular voice, data and Wi-Fi led to the smartphone. In 2002, Blackberry launched the first smartphone, and 2007 saw the launch of the Apple iPhone. User demand soared and improvements in hardware components led to the development of mobile operating systems; Apple iOS appeared in 2007 and Android in 2008.
2010s – Apple released the first iPad in 2010, and both iOS and Android models are still popular now. Contemporary tablets are really just larger versions of smartphones. Many tablet models do not include cellular communication but do connect to Wi-Fi.
2020s – Today’s mobile computing architecture is increasingly cloud-based, with web and cloud-based access essential for many applications. Key cloud computing services include software distribution, device management, data storage and sharing, and access to shared applications.
Arm yourself with the skills sought by industry and academia
The MSc in Computer Science at the University of Wolverhampton builds on the fundamentals of undergraduate computer science by developing a depth of knowledge across several specialised and applied areas of computer science, such as software development, mobile and web development, advanced databases, and distributed computing. These are skills in high demand by both industry and research.
Study on our MSc Computer Science and you’ll get a strong emphasis on practical experience backed up with the underlying theory from the academics who are active and publishing researchers. The course focus is on teaching up-to-date and relevant in-demand knowledge and skills, from web development through to ethical hacking.
Furthermore, you can choose to study the course part time over two years, or full time over one year, whichever suits you best.