Interface to other hardware 

Collecting data from external devices

There are many peripheral devices that can easily be linked to an app.  The most obvious examples are the Apple watch and various health and fitness products that have become popular recently.

Bluetooth is used to link most of these devices to the phone, although WiFi is also possible and is a better method where a longer range is needed.  

It is also possible to monitor devices at long range using the internet and cellular phone network.  In these cases, mobile phone hardware can actually be used to monitor equipment at a remote location.  The same hardware that is used to make a mobile phone (but possibly leaving out the screen, camera for example) can be used to make a dedicated device that monitors something and ‘calls home’ with statistics or warnings.  

This is a very broad topic so it is difficult to give generalisations.  However, it can be noted that products made for the Apple or android systems like the Apple Watch or the ‘Android Wear’ devices are designed to work with apps, and interfaces are reasonably easy to implement. 

Cost and technical implications: Very broad range of possibilities.  Medium cost for the simplest watch type implementations, otherwise high cost.   

Internet of Things

There is an increasing number of domestic and industrial devices that can be controlled over the internet.  Communication between devices over the internet is a concept referred to as the ‘Internet of Things’.  

Recently there has been bad publicity about security problems with all these devices, and suggestions that they are open to hacking.  This is certainly true, but these problems should be ironed out as the technology becomes more mature and widespread.  

Cost and technical implications:  Almost always high cost, very much depending on the nature of the device being monitored or controlled, and the manufacturer’s policies on allowing other people apps to control them.

Note that some manufacturers are actually quite keen to embrace this technology, and publish APIs to allow it.  (see APIs in the next section)