Search

Archives

About

NativeScript and Modern Sensors and Instruments

Modern applications are increasingly leveraging a multiplicity of sensors to connect the physical realm to the traditional software realm to gain multiple benefits, from efficiencies of operation, to security and safety, to new functionality.

Here are some real-live examples:

Sensors like RFID Tags allow Zara, the largest retail apparel in the world, to track their inventory accurately and in real-time, from the time it arrives in the trucks to the time it leaves with a customer, providing asset control, inventory availability, smart sale recommender, connection to social media, automatic reorders, and more.

An Industrial Equipment Vendor like TVH can track use data from GPS and ODBII sensors to track cars, their use, speed, acceleration and deceleration, gas consumption, battery status, and reduce operating costs from energy to maintenance to insurance.

Kingslake, a Progress customer in Sri Lanka, provides an application for managing the transportation of employees to factories using independent mini-bus operators. The employees use NFC tags to identify themselves to the operators which read them using rugged Android devices that can then use GPS data and connect to the backend to validate routes, provide accountability, even notify the factory if an employee won’t show up for their shift.

An event, like our own ProgressNEXT or the CSUMB Capstone Festival, can use a combination of RFID tags and readers and iBeacons, mediated through Mobile Applications, to provide personalized event information as well as tracking, logging and authorizing event data.

In the above examples, the server side services can be created on top of platforms like Rollbase, Modulus and the Telerik Platform, using data services like ProgressOpen Edge, and many SAAS services, and typically will interact with the clients through internet standards like HTTPS and Web Sockets. The sensors themselves are part of, or interact with, mobile devices like smartphones and smart watches, and fixed devices like readers and instruments, like smart door locks, access control readers, etc.

There are a few key OS platforms for these devices. The smallest sensors still run in “traditional” Real Time Operating Systems. A number of handhelds and instruments used to run on Windows CE but Microsoft has ended its life transitioning to Windows 10 IOT, but we many mobile devices are increasingly based on Android, while fixed devices are moving towards Linux – and Android Things was just announced.

NativeScript is particularly well-suited to this space. NativeScript today runs well on iOS and Android (see note below) and provides very efficient and timely access to any platform features, including new libraries created to access the sensors. The NativeScript metadata-driven machinery exposes these libraries at the JavaScript level and then they can be wrapped through a Plugin into a cleaner abstraction. This means that JavaScript and CSS developers can then write applications leveraging these sensors.

Note – Beyond iOS and Android, Progress/Telerik also has been doing work on the NativeScript port for Windows Universal (for Tablets and Desktops), and there is a separate project on porting it to Linux leveraging GitHub Electron Shell.

Here are some links to recent projects that are built on this setup:

The Invengo XC-1003 is an Android (KitKat)-based mobile RFID reader. The RFID reader is available to Android apps but Mehfuz wrote a NativeScript Plugin on top of it, and then a simple App using it. Check out the blog post, the video and the GitHub repo. The App mimics a retail situation and is actually using 4 plugins: a RFID Reader, a iBeacon Reader (also written by Mehfuz), Google Maps, and SQLite for local storage, as well as checking with a (node.js-based) service for content.

An App for Fleet Management that uses the Bluetooth APIs to talk to an ODBII BLE sensors (like this one), and which can then present the car data, or push it to the cloud. Check out the blog post, video and GitHub repo.

We also have done several variations of an App to support Apps:

A simple Meetup App where RFID tags are attached to Badge Holders and then are used to track attendance and to run a raffle. Check the blog post.

Another, more complex version of the RFID setup was used at the ProgressNEXT 2016 event in Las Vegas. The ProgressNEXT application did more sophisticated server-side processing using the AMTech IOT See the post

The latest version used both RFID tags (using the AMTech Platform) and iBeacons (via a plugin) and was used in the CSUMB Capstone festival.

Finally, the setup is identical to the one used by Kingslake in the employee transportation project mentioned at the beginning of this writeup. Kingslake is currently using a Native App for the client used by the Android smartphone, but it will be straight-forward to replace it with a more capable NativeScript solution.

Our TODO pile includes two other projects:

A Plugin for the Keonn AdvanReader 10, which is a flexible USB-connected RFID reader that can be used from an Android device. This would be very suitable for retail.

Running a NativeScript application directly inside a ThingMagic Sargas (blog, product page). This would require using the advanced built for NativeScript that is built on top of GitHub Electron Shell.

The future belongs to this class of applications: fully connected in real-time to our world, with substantial computational power – able to run the new AI algorithms, including Machine Learning – and connected to the internet and our enterprises assets. NativeScript is an excellent tool to use in this environment.