Tuesday, September 10, 2013

LX Group considers the challenges of IoT platform mobile app development

In a typical Internet-of-Things mobile device application, the mobile device itself essentially becomes the user interface for the IoT platform and network of devices. Thus you can say that the mobile device (such as a smart phone or tablet), and the app running on it, is at the centre of the user experience.

From the end user's perspective the whole app may seem quite simple, however from the developers' point of view – things can be quite the opposite. Let's look at some important considerations for software developers producing applications for mobile devices for the remote end-user control of smart devices and networks in an Internet-of-Things-enabled home.

What are some of the potential challenges encountered by developers when designing apps for the control of Internet-of-Things networks from mobile devices, and what tools are available today to help smooth these challenges? These development tools can significantly assist in the smooth deployment of mobile applications bringing the Internet of Things right to the user's fingertips from across a diverse range of different mobile platforms and operating systems.

There are a number of different common platforms we can consider, for example Apple's iOS, Android, Blackberry or Windows Mobile. When creating apps for mobile Internet-of-Things interfaces, there are obviously significant savings of time and labour to be made if we can potentially share some of the same code or the same development environments when developing software targeted at these different platforms.

Most mobile Internet-of-Things applications will typically talk to an Internet-of-Things device on the local area network over TCP/IP, or to a server or cloud service over the Internet. However, it is also possible to have an Internet-of-Things device directly connected to a smartphone or tablet via Bluetooth, Bluetooth Low Energy, USB or Apple Thunderbolt.

Talking to an Internet-of-Things device via a connection to the device on the LAN allows high data throughput and allows your device to be integrated into an existing wireless LAN without cables. Furthermore, it allows familiar TCP/UDP communications between your Internet-of-Things system and your mobile app.

For hardware devices that connect to an iOS device over Bluetooth (but not Bluetooth Low Energy) or the wired Thunderbolt interface, Apple's proprietary MFI (Made for iPhone / iPad) hardware approval process is required, requiring a proprietary Apple authentication coprocessor IC in your hardware. This can represent a significant barrier to the development of iOS-based solutions involving a Bluetooth or Thunderbolt cabled interface to the iPhone or iPad.

iOS apps communicate to WiFi-connected devices like they do any other network service – via the iOS networking stack. Many third-party libraries offer rich, easy-to-use abstractions on top of the iOS networking framework, simplifying the development of connected apps.

In the case of iOS devices, communicating over the LAN also removes any requirement for your hardware to meet Apple's approval process. However, irrespective of what type of interface to the network is employed, working in app development on iOS still brings with it the challenge of needing to submit your software application to Apple's approval process, whether it is for an App Store submission or even just an application for ad-hoc distribution. In regards to these factors, working on the Android platform brings with it much more openness.

Appcelerator's Titanium Mobile is one example of a platform for developing mobile applications using web technologies, which supports development for multiple different platforms including Android, iOS and Blackberry. When using Titanium, your application source code gets deployed to the mobile device where it is interpreted using a Javascript engine such as JavaScriptCore for iOS or Rhino on Android and Blackberry.

This interpretation does introduce some overhead in terms of software performance compared to native development for each new platform. However, the advantage of such a system is that it allows relatively fast development of mobile applications across these different platforms with significant re-use of the same code.

Worklight, which has recently been acquired by IBM, provides a range of cross-platform mobile application development technologies such as the Eclipse-based Worklight Studio IDE. The Worklight platform is suitable for developing mobile applications in both consumer and industry-focussed environments, and enables rich cross-platform app development without requiring code translation, proprietary interpreters or unpopular programming languages. Worklight includes SDKs for iOS, Android, Blackberry and Windows Mobile.

Thingsquare Code is a recently announced IDE specifically targeting the Internet of Things from Swedish IoT experts Thingsquare, which is currently in open beta. This IDE is the world's first online, web-based IDE for the Internet of Things, allowing developers to connect IoT systems and products such as lighting, thermostats and similar home automation technologies to smartphone applications.

Finally, ThingWorx is another example of a software provider targeting development environments for Internet-of-Things developers. ThingWorx provides a rapid application development environment, including the ThingWorx Mashup Builder which offers significant assistance when it comes to the rapid development of cross-platform mobile interfaces.

As an alternative to developing a native app on top of multiple different smartphone operating systems, however, we also have the option of just working in HTML, inside the web browser where we don't really care about the underlying choice of operating system. There is a significant trend in mobile development today toward HTML5, which allows developers to write an application once and easily deploy it across diverse mobile devices and operating systems.

After this quick review, the gap between idea and implementation of a smartphone app for your platform or device can seem rather vast. However it doesn't have to be. With an idea, a solid set of requirements and the right partner your app needs can become a reality.

Along with our wide range of experience in the embedded hardware design field, we can also take charge of app development and ensure tight and seamless integration with your hardware systems – within your required time-frame and your budget.

For more information or a confidential discussion about your ideas and how we can help bring them to life – click here to contact us, or telephone 1800 810 124.

LX is an award-winning electronics design company based in Sydney, Australia. LX services include full turnkey design, electronics, hardware, software and firmware design. LX specialises in embedded systems and wireless technologies design. http://www.lx-group.com.au

Published by LX Pty Ltd for itself and the LX Group of companies, including LX Design House, LX Solutions and LX Consulting, LX Innovations.



No comments:

Post a Comment