IoT mobile app development is now a required front-end layer with almost all consumer IoT products. While a web-based UI will often be sufficient for industrial or enterprise-grade IoT devices, most manufacturers will have a hard time selling a consumer IoT device that can’t be controlled by the user’s smartphone. Figuring out how to develop an IoT app will allow you to make the right decisions regarding choosing your IoT platform and other important considerations. So in this guide, we’ll walk you through everything you need to know to build IoT apps.
This article was originally published by Nabto.
Custom Build v Off the Shelf IoT Platforms
The first thing you need to decide is whether to custom build a platform or use an off the shelf application enablement IoT platform.
So firstly, the custom build option.
It goes without saying that IoT development is complex and the technical barrier to entry for those looking to build their platform from the ground up is very high. If you choose to go down this route, budget for plenty of time and money, as you could be looking at a build time of 12 to 24 months.
You will need to design, build, test, and maintain each part of the IoT stack, including:
- Server deployment and maintenance
- Database build and maintenance
- UX and UI build
- Developing 3rd party connections and APIs
- Security considerations
- Access control
- Front end build and maintenance
Therefore, while some IoT device manufacturers go down the custom build route, most opt for the second option: an off the shelf IoT application enabled platform (AEP).
An AEP is a self-contained IoT environment that developers can utilize to build and deploy IoT products and services quickly.
Well, known AEPs include:
- Azure IoT
- AWS IoT
- IBM Watson
The Nabto IoT Platform
Here at Nabto, we have our own IoT application enabled platform, enabling developers to build and deploy IoT mobile apps quickly. Our AEP has three core features that make it unique within the IoT ecosystem.
- White Label IoT Mobile App: We’ve made building an IoT app as simple as possible by providing a white-label mobile app front end that can be used for a variety of deployments, including smart thermostats, HVAC controls, and smart security cameras.
- Peer-to-Peer Connection: Our IoT platform uses peer-to-peer connectivity instead of the cloud. This provides superior security and reduced latency compared to cloud-connected alternatives. Download our P2P IoT explainer ebook for more details.
- No Backend Development Required: Unlike some IoT platforms, there is no backend development required with Nabto. This means embedded device developers can easily connect to apps, while app developers can easily connect to embedded devices without worrying about complex backend development.
What to Consider When Building Your App
We’re guessing that you’re probably going to use an IoT AEP platform instead of building your own custom solution. In which case, the first decision you need to make when creating an IoT app is what platform to use.
Some key factors you need to consider here include:
- Cost – particularly the cost of scaling your product when you take it to market
- Security – Where is the data stored, and does the platform deliver end-to-end encryption to ensure privacy?
- Speed – What’s the maximum latency that’s acceptable to you?
- APIs – Does the solution provide open API’s to glue the solution together with your own backend systems?
- Use of standards – Does the solution build upon community standards, ensuring a well thought out system with an easy learning curve?
- Documentation – A good system without the proper documentation is hard to navigate, so you should be sure that the system is delivered with good documentation. The use of standards helps with this point.
Just as with using a third-party IoT platform, it’s likely you’re going to use hardware from other manufacturers. This includes MCUs, WiFi modules, sensors, and actuators. Therefore, you must ensure the hardware supports your design requirements. Your connection protocol must also be defined at this point, such as WiFi, ethernet, Bluetooth, P2P, or other options.
A centralized cloud storage solution is often the first thought when developing an app for IoT, as this can provide effective data transmission and storage. However, central data storage in the cloud can present security vulnerabilities as well as less than ideal latency for the app user. An alternative is device-level storage using a peer-to-peer IoT network. This is discussed in more detail below.
You need to build a server-side solution that collects and sorts the data. But on top of that, you need to develop an algorithm that will analyze the data and solve routine tasks. This will then become the basis of the functions your app can provide to users. Backend development in IoT is complex and time-consuming, so if you’re not using an AEP with a ready-made backend solution, you’ll most likely need to invest heavily in developers with experience in this field.
When designing your app, you must also consider scalability. Do you have a product roadmap mapping out future release schedules? If not, how do you see the product evolving over the medium to long term? Future releases will likely have to manage increasing amounts of data and possibly different devices using different hardware.
IoT App Security
Security is the fundamental design consideration when developing an IoT app. Smart homes, health, and security devices all transmit extremely sensitive personal data, and any data breaches could be harmful to users, not to mention disastrous for the device manufacturer’s reputation.
- Audit your chosen IoT AET platform: Inspect the security credentials of your chosen IoT platform provider and check to see evidence of regular penetration tests and security updates.
- Consider where the data is stored: Most IoT environments store device data in a central server in the cloud. This presents an inherent vulnerability that needs to be managed with an appropriate level of encryption. An alternate option is to store the data within the device using a P2P model, which removes the risk of storing data in a central server. This is discussed in more detail in the below section.
- Decide on the most secure connection protocol: This needs to be carefully balanced against broader design and operational considerations and constraints. For example, wired ethernet may provide greater security versus WiFi but is often impossible in remote settings.
- Use two-factor authentication, obfuscation, and encryption: This will help ensure only authorized users can access the IoT app.
- Use PKI for authentication and encryption: This ensures end-to-end privacy for your users. Nobody but the user will be able to access the collected data.
Cloud Versus Peer-to-Peer for IoT App Development
As discussed in the above section, a Peer-to-Peer IoT platform solution, such as Nabto, can provide security advantages versus a cloud solution. But this model can provide other benefits as well when it comes to building and deploying IoT apps.
How it Works
The Nabto platform provides a direct P2P connection directly through firewalls between an end-user client and IoT devices. Under this solution, the data is only stored on the IoT device and is under full control of the end-user. However, in database-driven solutions, data is stored on a central server before being presented to the user.
Advantages of a P2P Platform for IoT App Design
- Security: By storing data at the IoT device level instead of the cloud, you avoid the risk of bulk data theft or loss from a central server.
- Low latency: Latency can present a serious issue in many big data/cloud-based IoT solutions and easily be more than 5 seconds. However, a P2P IoT solution provides a direct connection, enabling the data communication between the end-user and IoT device to travel as fast as possible, with the lowest latency, enabling the most responsive IoT apps.
- Lower running costs: With P2P IoT, data is stored on the devices rather than the cloud. Since device running costs (which is mostly electricity) is paid by the end-user, and the price of flash storage is ever decreasing, the total costs of manufacturing and running the device for the vendor is lower than cloud-based systems, where the vendor needs to take care of hosting databases and web services.
Examples of Great IoT Apps
Homewizard provides a platform for user user-friendly and wireless control of smart home devices, including smart energy and security.
It’s Cameras App enables users to view and operate multiple cameras simultaneously, as well as access live audio. It’s also possible to record and store video clips within the app.
You can read the full case study explaining how Homewizard built their IoT app using the Nabto platform here.
SOREL is a manufacturer of electronic temperature controls for the heating industry. The company provides intelligent solutions for weather-compensated heating systems, solar thermal systems, smart thermostats, manufacturing freshwater systems, domestic hot water, heat pumps, and more.
Its °CALEON app provides mobile access to °CALEON Room Controllers. The main app functions are:
- View temperatures and humidity in real-time
- Select operating mode
- Set target temperatures
- Configure time program
- Activate holiday mode