Last week I attended IBM Insight in Las Vegas. It was a great event, with tons of great information for attendees. I had a few sessions on mobile applications. In particular, my dev@Insight session on Wearables powered by IBM MobileFirst was recorded. You can check it out here:
Wearables are the most personal computing devices ever. Your users can use them to be notified of information, search/consume data, or even collect environmental data for reporting or actionable analysis.
Regardless of whether developing for a peripheral device like the Apple Watch or Microsoft Band, or a standalone device like Android Wear, you are developing an app that runs in an environment that mirrors that of a a native app. So, the fundamental development principles are exactly the same. You write native code, that uses standard protocols and common conventions to interact with the back-end.
Caveat to #1: You user interface is much smaller. You should design the user interface and services to acomodate for the reduced amount of information that can be displayed.
You can share code across both the phone/tablet and watch/wearable experience (depending on the target device).
Using IBM MobileFirst you can easily expose data, add authentication, and capture analytics for both the mobile and wearable solutions.
You may have heard a lot of buzz coming out of IBM lately about Cognitive Computing, and you might have also wondered “what the heck are they talking about?” You may have heard of services for data and predictive analytics, services for natural language text processing, services for sentiment analysis, services understand speech and translate languages, but it’s sometimes hard to see the forest through the trees.
I highly recommend taking a moment to watch this video that introduces Cognitive Computing from IBM:
Cognitive computing systems learn and interact naturally with people to extend what either humans or machine could do on their own.
They help human experts make better decisions by penetrating the complexity of Big Data.
Cognitive systems are often based upon massive sets of data and powerful analytics algorithms that detect patterns and concepts that can be turned into actionable information for the end users. It’s not “artificial intelligence” in the sense that the services/machines act upon their own; rather a system that provides the user tools or information that enables them to make better decisions.
The benefits of cognitive systems in a nutshell:
They augment the user’s experience
They provide the ability to process information faster
They make complex information easier to understand
They enable you to do things you might not otherwise be able to do
Curious where this will lead? Now take a moment and watch this video talking about the industry-transforming opportunities that Cognitive Computing is already beginning to bring to life”
So, why is the “mobile guy” talking about Cognitive Computing?
First, it’s because Cognitive Computing is big… I mean, really, really big. Cognitive systems are literally transforming industries and providing powerful analytics and insight into the hands of both experts and “normal people”. When I say “into the hands”, I again mean this literally; much of this cognitive ability is being delivered to those end users through their mobile devices.
Last, and this is purely just personal opinion, I see the mobile MobileFirst offerings themselves as providing somewhat of cognitive service for developing mobile apps. If you look at it from the operational analytics perspective, you have an immediate insight and a snapshot into the health of your system that you would never have seen otherwise. You can know what types of devices are hitting your system, what services are being used, how long things are taking, and detect issues, all without any additional development efforts on your end. It’s not predictive analytics, but sure is helpful and gets us moving in the right direction.
The Client Side
Yup, desktop apps are not left out of the mix. Most desktop solutions fall into a category similar to Apache Cordova, where the end results is a web view that has access to lower level APIs, whose content is developed with web based technology.
Electron – Node.js + Chromium desktop app container from GitHub
app.js – Node + Chromium for a desktop app container
nw.js – Another framework for Node +Chromium for a desktop app container
CEF – The Chromium Embedded Framework – a framework for embedding the guts of the chrome browser inside of a desktop app.
… and more… I know Microsoft has a solution for building Windows apps purely out of HTML/JS, and there are more solutions out there that I am forgetting.
Here are some stats that show the magnitude of growth and adoption for Node.js/npm.js alone. NPM stats currently shows a total of 186,946 packages available for download, 94,978,032 package downloads in the last day, and 2,451,734,737 package downloads in the last month.
Node.js adoption is massive, and is still growing.
Even though the acquisition is still “hot off of the presses”, you can start using these tools together today:
If you haven’t heard about StrongLoop’s LoopBack framework, it enables you to easily connect and expose your data as REST services. It provides the ability to visually create data models in a graphical (or command line) interface, which are used to automatically generate REST APIs – thus generating CRUD operations for your REST services tier, without having to write any code.
Why is this important?
It makes API development easier and drastically reduces time from concept to implementation. If you haven’t yet looked at the LoopBack framework, you should definitely check it out. You can build API layers for your apps literally in minutes. Check out the video below for a quick introduction:
Again, be sure to check out these posts that detail the integration steps so you can start using these tools together today: