小程序
传感搜
传感圈

Skills and Apps Needed for IoT Mobile App Developers

2022-07-13
来源: iotforall
关注



Unique Skills and Apps for Building IoT Mobile Applications

Many Internet of Things (IoT) products or services rely on mobile applications. Whether they are for industrial, commercial, or consumer use cases, mobile applications are often critical user interfaces to communicate with, configure, or control connected-devices or digital services in an IoT system.  

A lot of traditional mobile application development companies say they can do IoT, and that might be true. However, we find that creating IoT applications requires specialized expertise to do it well. If a traditional app development company lists IoT as just one of their many mobile capabilities, that should be a warning flag. Doing IoT right takes expertise that only comes with a focus on IoT over an extended period of time. 

Based on our years of experience building end-to-end IoT systems that integrate mobile applications with connected-devices and digital services in the cloud, we’ve gathered a list of some of the unique capabilities and skills that mobile application developers for IoT systems need to have.


'If a traditional app #development company lists IoT as just one of their many mobile capabilities, that should be a warning flag. Doing IoT right takes expertise that only comes with a focus on IoT over an extended period of time.' - @SpinDanceIncClick To Tweet

Important Mobile App Skills for IoT Developers

Bluetooth Low Energy

First on our list is Bluetooth Low Energy (BLE). BLE allows smartphones to connect directly to IoT devices such as sensors, smart appliances, and so on. This allows mobile applications to do things like collect data from the devices, control or configure their behavior, provision network credentials, update the device’s firmware, etc. 

Although based on the same radio technology as traditional Bluetooth, BLE uses less power. BLE is better suited for IoT applications which by their nature are often battery powered and don’t send/receive a large amount of data. BLE has universal support within modern smartphones. 

BLE is especially useful in its ability to provision network credentials, such as sharing WiFi SSIDs and passwords to an IoT device. The key is to do this securely, which requires know-how beyond the basics.

Working with BLE requires knowledge of not only the communication protocols, but also the unique behaviors of the IoT devices. This includes knowing how to troubleshoot and debug issues that come up. More often than not, this demands experience working with the embedded microcontroller systems that power most devices. Many traditional mobile app firms do not have this type of experience. 

Knowledge of the nuances of BLE in different mobile application frameworks such as React Native, as well as iOS and Android environments is also critical. Each framework or environment does things a little differently.  

Zero-Configuration Networking

Zero-Configuration (often called Zeroconf) is another way that smartphones can identify and communicate with nearby devices. It is less commonly used than BLE for this purpose, however it is useful for communicating with devices that are connected on the same local WiFi network as the smartphone. A variety of protocols are available that allow for the mobile app to discover devices on the network without requiring any special network configuration. Thus, these protocols are collectively known as Zero-Configuration Networking. Such protocols include MultiCast DNS (MDNS) and Apple Bonjour. 

Smartphones send multicast messages on the network to discover specific device types. The devices that support the protocol will respond with their service name and their IP address. The smartphone is then able to establish a direct connection with the device. 

Having skills and experience with networking and embedded devices is important for implementing Zeroconf networking. Security is also of the utmost importance. Experience troubleshooting and debugging is critical. 

IoT Cloud Service Integration 

Most IoT mobile applications integrate with IoT cloud services. This connection to digital services running in the cloud allows users to interact with devices even if they aren’t within range of them. It also helps users tap into and gain useful insights from IoT system data. Cloud service providers offer several unique software services specifically for IoT that do things like route messages, index devices, process events, and aggregate data. Mobile applications often need to interact with these services. 

Frequently, mobile applications for IoT interact with custom cloud APIs that streamline the interaction between the mobile application and the cloud services. Experience with HTTPS and REST API standards is very important. Equally important for IoT applications is having familiarity with GraphQL and MQTT.

When connecting to cloud services, implementing good security protections is of the utmost importance. This requires expertise in methods for authenticating user accounts as well as setting up access policies. This ensures the right users and systems have access to the right resources and others do not. This is a non-trivial task for IoT and knowledge of the nuances of IoT services is required. 

Mobile app developers that have cloud experience, especially the IoT-specific cloud services and patterns, are extremely useful when building great mobile apps for IoT. Experience with multiple cloud service providers and their different capabilities and subtleties is a huge plus. Having this experience also helps select the optimal services and providers for specific use cases.

Interfacing with IoT Devices

By their nature, Iot systems bridge physical devices through networks to digital services and user interfaces. To perform their functions, these physical devices have computing capabilities embedded inside them. These small computers have external interfaces to take sensor measurements, drive displays, store data, etc. As mentioned earlier, often mobile apps connect to IoT devices over BLE, however, the actual data passed over BLE varies from device type to device type. The way the data is packaged and sent over BLE depends on the firmware running on the device. This data could be in a variety of formats including binary.

To unpack this data and debug any issues as they come up, it is critical to have knowledge of encoding, decoding, serialization, and bitwise operations. Additionally, understanding the data requires understanding the nuances of how the IoT device works. This may require reading datasheets and specification documents and sometimes even reviewing the embedded firmware. Having embedded systems knowledge together with mobile knowledge makes this process smoother and more efficient. 

Security

IoT systems operate on networks and often handle important and private data. They are sometimes the target of attacks by criminals, security researchers, or others just looking for a challenge. To protect your products and your brand, IoT systems require good security measures that cross the boundaries between the devices, cloud, and mobile apps.

Authentication of users and devices is a critical feature. Mobile apps need to make sure that a user attempting to login is valid. This user must have unique permissions and data access policies depending on their account.  Also, mobile apps need to ensure that any device they attempt to connect to is authentic and hasn’t been tampered with. This is possible with cryptographically signed software and digital certificates. The data between devices and the mobile apps should be encrypted as well. Lastly, mobile apps often play a critical role in updating the firmware of the specific connected devices that they are designed to support. This may require securely downloading firmware files, verifying them, and transmitting them over to the device. 

To build such systems, security knowledge is required from end-to-end. Experience with data access policies, claiming devices to accounts, and Over-the-Air (OTA) firmware updates with cryptographically signed firmware is critical.  

Cross Platform Development

Why write two apps when you can write one? Just a few years ago applications for Android and iOS had to be developed separately. However, today there are mature cross-platform development frameworks that target both. This means a single development project can result in mobile applications for both Android and iOS. 

We have found that cross-platform development frameworks such as React Native and Flutter can generate excellent results in less time. Each of these frameworks allow developers to write code in a single language but then render applications in native code. The native code differs between Android versus iOS. This means that there is not much of a performance tradeoff. The resulting mobile apps perform well and have the look and feel that Android or iOS users expect.

These frameworks have been used in thousands of mobile applications as well as web applications. Leveraging a common framework for both web and mobile applications, brings a lot of benefits to the consistency of your user experience. 

With IoT systems, having experience with cross-platform frameworks as well as native app development environments is crucial. This is especially true with the lower level interfaces such as BLE and networking. (Read our recent post on selecting an IoT platform)  

Mobile App Architecture for IoT

Mobile apps for IoT have to look and feel great. They also have to function flawlessly. We acknowledge that the best people to construct the user interfaces are not always the developers who specialize in the core functionality.  Look for a company that delivers the core IoT capabilities for an app inside a bundle of software that customers or other partner companies use within the mobile application they are building. This allows them to focus on creating a polished user experience, and not worrying about the complexities of the IoT features underneath. 

Your developer should bundle the core IoT capabilities into mobile software development kits (SDK) that abstract all the IoT complexity into a bundle of software that exposes clear APIs to other mobile app developers. 

These SDKs include APIs for cloud connectivity, account management, device data access, and so on. This gives mobile developers with less IoT experience access to the IoT APIs, so they can focus on the user facing features of the application. This collaborative mindset combined with known patterns for success is critical.  

Summary

These are just a few reasons why Mobile Apps for IoT are unique and require unique skills to develop. These include the IoT-specific core features of mobile development such as BLE as well as the cross-domain experience such as embedded and cloud. If you are looking to create great IoT experiences for your customers then working with a company that has these skills under one roof is a great advantage. By partnering with an experienced mobile app development company, you can achieve greater success and lower risks than trying to pull everything together yourself or working with less experienced firms. Ultimately, this saves cost and time in the long run. 



Tweet

Share

Share

Email

  • Bluetooth

  • Cloud Software

  • IT and Security

  • Security


  • Work

  • Developer

  • Bluetooth

  • Cloud Software

  • IoT Prototyping and Development

译文
物联网移动应用开发人员所需的技能和应用程序

许多物联网(IoT)产品或服务依赖于移动应用。无论它们是用于工业、商业或消费者的用例,移动应用程序通常是与物联网系统中的连接设备或数字服务进行通信、配置或控制的关键用户界面。许多传统的移动应用开发公司说他们可以做物联网,这可能是真的。然而,我们发现创建物联网应用需要专门的专业知识来做好它。如果一家传统的应用程序开发公司将物联网列为其众多移动功能之一,那就应该是一个警告信号。做好物联网需要专业知识,只有在长时间专注于物联网的情况下才能做到。基于我们多年来构建端到端物联网系统(将移动应用程序与连接设备和云中的数字服务集成在一起)的经验,我们收集了一份物联网系统移动应用程序开发人员需要具备的独特能力和技能清单。首先是低能耗蓝牙(BLE)。BLE允许智能手机直接连接到传感器、智能家电等物联网设备。这允许移动应用程序从设备中收集数据,控制或配置他们的行为,提供网络凭证,更新设备的固件等。尽管基于与传统蓝牙相同的无线电技术,BLE使用更少的电力。BLE更适合于物联网应用,因为物联网的本质通常是电池供电的,不发送/接收大量数据。BLE在现代智能手机中得到普遍支持。BLE在提供网络凭证方面尤其有用,例如向物联网设备共享WiFi ssid和密码。关键是要安全地做到这一点,这需要基础知识之外的知识。使用BLE不仅需要了解通信协议,还需要了解物联网设备的独特行为。这包括了解如何排除故障和调试出现的问题。通常情况下,这需要使用驱动大多数设备的嵌入式微控制器系统的经验。许多传统的手机应用公司并没有这种体验。在不同的移动应用框架(如React Native)以及iOS和Android环境中,了解BLE的细微差别也是至关重要的。每个框架或环境做事情的方式都略有不同。零配置(Zero-Configuration,通常称为Zeroconf)是智能手机识别附近设备并与之通信的另一种方式。与BLE相比,它在这方面的使用较少,但对于与与智能手机连接在同一本地WiFi网络上的设备通信很有用。各种各样的协议允许移动应用程序发现网络上的设备,而不需要任何特殊的网络配置。因此,这些协议统称为零配置网络。这些协议包括多播DNS (MDNS)和Apple Bonjour。智能手机通过在网络上发送多播消息来发现特定的设备类型。支持该协议的设备将使用它们的服务名称和IP地址进行响应。然后,智能手机就能与该设备建立直接连接。拥有网络和嵌入式设备方面的技能和经验对于实现Zeroconf网络非常重要。安全也是最重要的。具有故障排除和调试经验是至关重要的。 大多数物联网移动应用都集成了物联网云服务。这种与运行在云中的数字服务的连接允许用户与设备交互,即使他们不在设备的范围内。它还帮助用户从物联网系统数据中挖掘和获得有用的见解。云服务提供商提供了几种专门用于物联网的独特软件服务,可以完成路由消息、索引设备、处理事件和聚合数据等工作。移动应用程序通常需要与这些服务交互。通常,用于物联网的移动应用程序与定制的云api交互,简化了移动应用程序和云服务之间的交互。拥有HTTPS和REST API标准的经验是非常重要的。对于物联网应用同样重要的是熟悉GraphQL和MQTT。在连接到云服务时,实施良好的安全保护是至关重要的。这需要对用户帐户的身份验证方法以及设置访问策略的专门知识。这可以确保正确的用户和系统能够访问正确的资源,而其他人则不能。对于物联网来说,这是一项重要的任务,需要了解物联网服务的细微差别。有云经验的移动应用开发者,尤其是有特定于物联网的云服务和模式,在为物联网构建优秀的移动应用时非常有用。拥有多家云服务提供商的经验,以及它们不同的功能和细微之处,将是一个巨大的优势。拥有这种经验也有助于为特定的用例选择最佳的服务和提供者。从本质上讲,物联网系统将物理设备通过网络连接到数字服务和用户界面。为了执行它们的功能,这些物理设备内部嵌入了计算能力。这些小型计算机有外部接口来进行传感器测量、驱动器显示、存储数据等。如前所述,移动应用程序通常通过BLE连接物联网设备,然而,通过BLE传递的实际数据因设备类型而异。数据打包和通过BLE发送的方式取决于设备上运行的固件。该数据可以有多种格式,包括二进制格式。要解包这些数据并调试出现的任何问题,掌握编码、解码、序列化和按位操作的知识至关重要。此外,理解数据需要理解物联网设备如何工作的细微差别。这可能需要阅读数据表和规范文档,有时甚至需要检查嵌入式固件。将嵌入式系统知识与移动知识结合在一起可以使这一过程更加顺畅和高效。物联网系统在网络上运行,通常处理重要和私人数据。他们有时会成为犯罪分子、安全研究人员或其他寻找挑战的人攻击的目标。为了保护您的产品和品牌,物联网系统需要跨越设备、云和移动应用程序之间的边界的良好安全措施。用户和设备的认证是一个关键特性。移动应用程序需要确保用户尝试登录是有效的。该用户必须具有唯一的权限和数据访问策略,取决于他们的帐户。此外,移动应用程序需要确保他们试图连接的任何设备是真实的,没有被篡改。这可以通过加密签名的软件和数字证书实现。设备和移动应用程序之间的数据也应该加密。最后,移动应用程序通常在更新特定连接设备的固件方面发挥着关键作用。这可能需要安全下载固件文件,验证它们,并将它们传输到设备。 要构建这样的系统,需要从头到尾掌握安全知识。具有数据访问策略、将设备声明为帐户以及使用加密签名固件进行空中(OTA)固件更新的经验是至关重要的。明明可以写一个,为什么还要写两个呢?就在几年前,Android和iOS应用还必须分开开发。然而,现在已经有成熟的跨平台开发框架同时针对这两个平台。这意味着一个单一的开发项目就可以创造出适用于Android和iOS的移动应用。我们发现跨平台开发框架如React Native和Flutter可以在更短的时间内产生出色的结果。这些框架都允许开发人员用一种语言编写代码,然后用本地代码呈现应用程序。Android和iOS的原生代码不同。这意味着没有太多的性能折衷。由此产生的手机应用运行良好,具有Android或iOS用户所期望的外观和感觉。这些框架已经在成千上万的移动应用程序和web应用程序中使用。为web和移动应用程序利用一个通用的框架,为用户体验的一致性带来了很多好处。对于物联网系统,拥有跨平台框架以及原生应用开发环境的经验是至关重要的。对于较低级的接口,如BLE和网络,尤其如此。(阅读我们最近关于选择物联网平台的文章)物联网移动应用程序必须看起来和感觉很棒。它们还必须完美地运转。我们承认,构建用户界面的最佳人员并不总是专注于核心功能的开发人员。寻找一家公司,为客户或其他合作公司在他们正在构建的移动应用中使用的软件包中的应用提供核心物联网功能。这使得他们可以专注于创建一个优化的用户体验,而不必担心底层物联网特性的复杂性。你的开发人员应该将物联网的核心功能捆绑到移动软件开发工具包(SDK)中,将所有物联网的复杂性抽象成一组软件,向其他移动应用程序开发人员公开清晰的api。这些sdk包括用于云连接、帐户管理、设备数据访问等的api。这使得移动开发人员对物联网api的访问体验更少,因此他们可以专注于应用程序面向用户的特性。这种协作心态与已知的成功模式相结合是至关重要的。这些只是为什么物联网移动应用程序是独特的,需要独特的技能来开发的几个原因。这包括移动开发中物联网特有的核心特性,如BLE,以及跨领域体验,如嵌入式和云。如果你想为你的客户创造很棒的物联网体验,那么与一家拥有这些技能的公司合作是一个很大的优势。通过与经验丰富的手机应用开发公司合作,你可以获得更大的成功,并降低风险。最终,从长远来看,这节省了成本和时间。

您觉得本篇内容如何
评分

评论

您需要登录才可以回复|注册

提交评论

iotforall

这家伙很懒,什么描述也没留下

关注

点击进入下一篇

医疗物联网需要重视无线连接的安全问题

提取码
复制提取码
点击跳转至百度网盘