Developing an IoT App when the Device doesn’t Exist Yet

by | Sep 12, 2020

IoT mobile apps present new challenges that normal mobile app development does not have to face. This is due to the fact that IoT blends two classically separate domains, Software and Hardware, as well as introduces the important connectivity piece that puts them together. Bartek Hugo Trzciński at Untitled Kingdom provides an excellent approach when developing an IoT mobile application.

The Device (The Hardware)
The first step for understanding what needs to be done about developing your hardware device is to ensure you have a strong mental map of the device requirements. It’s important to make sure to think through the use case, constraints, edge cases, and desired behavior and goal of the device. From this foundation, you can begin to research and develop a proof of concept, either from looking for available solutions or more likely, develop yourself. If you have no in house hardware capabilities, find a service firm or an individual to help you. Proof of concept is just the beginning, iterating over your design and development is crucial, and prototypes hardly ever resemble the final product. During this process, however, it is important to forecast optimizations you may need for your app and device so you don’t dig yourself into a hole later down the line. Things like how quick your device might drain its battery, security issues, or if your app needs to run in the background are important to be aware of when starting the development process - even if they are not addressed immediately.

Connectivity (Software and Hardware communication)
You will need to think through how the hardware needs to talk to your application. There is no one-size-fits-all communication protocol, rather they all have their strengths and weaknesses and the right one should be determined from your use case. Untitled Kingdom’s article provides an excellent list of the most popular communication processes in use today. Besides the protocol, the data itself is worthy of consideration. What does the data look like? Does it only need to work when the app is connected? Does it save and batch data on the device and wait for a connection to send? Does the device need to respond to data and events after its data has been processed? These are all questions that are highly relevant to how your app behaves and what the development process will look like.

The Application (The Software)
Many parts of an application can be worked out in parallel. There is the UI itself, navigation, user flows, etc. all of which can be worked on while waiting for a device prototype to be developed. However, knowing how you want to use, present, and interact with the device data will be important information for your UI Designer. Just dumping all available data on their laps does not present a clear picture of how the app should behave. If there is a device prototype available, you should use it in the app development process. If there is no prototype available, however, you should not halt your development process. Simulators are a powerful tool to mock device behavior and allow you to further your app development process while the device is worked on in parallel. There are a few ways to simulate your device's behavior, ranging from adding temporary behavior within the app itself, creating another app with similar connectivity capabilities as your device, to online available solutions.

Read further in Untitled Kingdom's article for an in-depth explanation of different simulator methods and techniques.
Continue to original Article >

Ioterra – Where you go for IoT Development

Find the right solutions and services for your needs from the most comprehensive marketplace for IoT projects.