Tag Archive for applications

Internet of Things Modern Application Development

Over the past decade modern application development has shifted from mainframe computing to personal PCs, and now to smartphones and cloud services. These shifts required new software languages, new hardware and new application development solutions. The best illustration of this shift came with the 90’s “Internet Boom.”  This shift resulted in application development on mainframe and personal PCs to applications that can run on a web browser. The shift also included new tools such as Visual Studio, new languages like HTML/JavaScript, new Architecture Patterns such as MVC and new application life cycle processes like Agile/Scrum.

Then came the smart phone. This shift from personal PCs to small mobile devices such as iPhones forced modern application development to support multiple screen resolutions, and a need to operate off-line while remaining connected to cloud services. Our next shift is to the Internet of Things (IoT), once again giving a new meaning to modern application development. Now, applications need to be developed to run on different types of devices like thermostats, doorbells and small Bluetooth sensors. The application must be secure, cloud ready and able to perform predictive analysis using machine learning. Below are my thoughts on this latest shift in modern application development:

Devices

The IoT modern application development shift includes a multitude of devices that range from televisions to cameras, to refrigerators, to pretty much any device that is powered into an outlet. One of the more notable products in this space is the Amazon Echo which uses voice recognition as its main interface, and can provide control over your light switches, thermostats and even your music collection. Amazon Echo is an example of an IoT device which breaks away from the previous modern application development, as it uses voice as its interface, is always connected to the cloud, and can connect with other IoT devices. This changes everything about how we think of modern application development. No longer is it about supporting multiple device resolutions, but rather about what data can be captured via the latest IoT devices and how that data can be used to improve our lives. This means we need new software tools, new cloud services, new analysis software and new machine learning algorithms.

These applications do not always include fancy user interfaces, as they are often function specific. For example, an IoT device could capture changes in temperature on a farm, take soil sample readings or even capture images and video of the fields. This data can then be sent to cloud services where it can be analyzed and run through machine learning to produce an easy to understand update on the farm. The data from the disparate “things” needs to be collected in a common format for actionable insights. Of note, most of the “big data” being processed and collected today is machine-to-machine. Cloud services help to aggregate and display this data in ways humans can understand, analyze and take action on the insights delivered.

Cloud Services

Cloud services are at the heart of IoT. Devices are built to perform a simple purpose and leave all complex user interfacing, analysis and thinking to the cloud. Cloud services such as the Azure IoT hub provide both the software tooling and service for a device to talk to the cloud and the device to connect to other devices. For example, in the manufacturing industry, IoT devices using the Azure IoT hub can be developed to monitor the production line and equipment use, which is then submitted to cloud service which then can be interpreted by human intelligence to predict equipment maintenance.

With this shift to IoT modern application development software is developed to capture data from a range of sensors, submit that data to cloud services and then process that data using analytics services such as Business Intelligence dashboards for timely and relevant role based information.

Machine Learning

So what is the point of these IoT devices in our homes, cars and at work, capturing data and sending it to the cloud? Well that’s what machine learning is all about. We now need to develop algorithms that can learn based on data from the IoT. For example: home IoT devices using machine learning will learn the normal patterns in your house and only notify you when there is a disruption such as the lights staying on past a normal pattern or when you leave your windows open while you are away. Machine learning is one of the most important aspects of IoT and without it, all we would have is raw data in a cloud service with no meaningful way to utilize it.

BlumShapiro Consulting is a Microsoft Advanced Analytics partner, with experience building modern IoT apps. 

Technology Talks Newsletter CTA

About Hector: 

hectorHector Luciano, Jr. is a Consulting Manager at BlumShapiro, a Microsoft Gold Partner focusing on SharePoint, Office 365, mobile technologies and custom development solutions. Hector is an active member of the SharePoint community. His experience reflects a breadth of Microsoft .Net Technologies experience. With a focus on Software Application development, Hector has worked on various projects including architected and designed solutions for web, client/server and mobile platforms. He has worked closely with business owners to understand the business process, then design and build custom solution. Hector currently holds Microsoft Certified Solution Developer (MCSD), Microsoft Certified Professional Developer (MCPD).

 

 

Intelligent Apps Are Friendly Apps

Whether you are a human or a computer, it pays to be friendly. When you buy something, are you more likely to buy from friendly or unfriendly salespeople? I like to spend time with people, but only if they are friendly. I am more apt to be generous with people who are friendly and am more easily persuaded by friendly people.

With technology, I love to interact with friendly software, or should I say “intelligent apps”. What makes for an intelligent app? Well, they are apps which exhibit a kind of machine intelligence which we associate with human intelligence. Not “super computers,” but computers and software which exhibit the same qualities I enjoy in friendly people. Let me get a little more specific:

  • People whom I have met before usually recognize the sound of my voice. Those who listen to what I say are ones which I admit to my inner circle. My friends may disagree with what I say, but I know that they listen and understand me.
  • People whom I have just met make some guesses about my mood and interact with me accordingly. My friends recognize my mood pretty quickly when they converse with me. My close friends always seem to respond to me in ways that are intended to bring me back to a positive frame of mind.
  • Most humans I come across recognize that, when I get to the “heart of the matter,” I am not performing surgery, or dealing with organs in any way. Only a literal minded person, or a super-computer, would come to that conclusion.
  • Finally, I often come across humans who do a great job of sharing knowledge with me. When I ask questions, they provide me with a lot of great information. I enjoy spending time with people who are knowledgeable, yet humble, and try to maintain contact with them professionally.

Of course, computers and software have historically not done any of these things well! It’s no wonder many people may find them infuriating. Our computers and software just haven’t conformed to our perceptions of intelligence – therefore, we don’t perceive them as friendly. But, longstanding ideas about what artificial intelligence (AI) looks like have inspired what are called “Cloud-Based Cognitive Services.” In other words, scientists and engineers have figured out that cloud computing, big data and data sciences have enabled the technologies needed to deliver AI.

Meet Your New Best Friends

I think the thing which is so attractive about “intelligent apps” is that I perceive them as being friendly.  Take Windows Hello, the facial recognition software in Windows 10 which recognizes your face as your login. I much prefer logging onto my Surface Pro 4 at home (which has Windows Hello) than my work laptop (which does not). My face never expires, does not need to be reset, and doesn’t need to be remembered! This is just a fabulous experience; it’s almost as though my tablet “knows me.”

Here is another example of intelligence which makes life easier- natural language processing in Power BI. Before natural language processing, I had to apply filters to my data, click around to find the thing I was looking for and format the graphs and charts on my report. With Power BI, I can simply type “Show Me Last Year’s Sales by Territory” and the data appears. This is simply one example. Power BI dashboard authors do not even have to have created a report in order for this intelligent app to suggest it as a possible solution. When paired with the voice recognition capabilities of Cortana, it may seem that you have a digital assistant with limitless access to the dashboard, reports and data you need to run your business.

Cloud-Based Cognitive Services

Today’s modern applications are intelligent apps, and the hallmark of an intelligent app is human-like artificial intelligence. Most application developers do not have access to the AI algorithms needed to be truly effective. However, the giants of cloud computing have made these capabilities easy to acquire and integrate into your next product, service or business systems.

Microsoft Cognitive Services are a set of Cloud Application Programming Interface’s (API’s) which application developers can embed into their modern apps to make them intelligent. There are API’s for visual recognition, speech recognition, text analytics, recommendations and much more. Perhaps you want to create an app which recognizes a face, or a user’s voice. Perhaps you want to create an app which interacts with users differently based upon the user’s perceived mood. Perhaps you want to make recommendations to customers on your website. It’s all possible, and in fact, a lot easier than you might imagine.

BlumShapiro Consulting is a Microsoft Advanced Analytics partner, with expertise in building modern intelligent apps. And we are extremely friendly.

Berry_Brian-240About Brian: Brian Berry leads the Microsoft Business Intelligence and Data Analytics practice at BlumShapiro. He has over 15 years of experience with information technology (IT), software design and consulting. Brian specializes in identifying business intelligence (BI) and data management solutions for upper mid-market manufacturing, distribution and retail firms in New England. He focuses on technologies which drive value in analytics: data integration, self-service BI, cloud computing and predictive analytics. 

Technology Talks Newsletter CTA

Testing: The Key to a Successful Mobile Application

Can you believe it has been over 10 years since the smartphone revolution came into full effect? Along with the devices themselves, we have seen an increase in the number of applications created, now reaching over two million apps and spanning a wide range of categories. These apps not only address a multitude of user needs—but are able to be used with ease on a variety of devices and operating systems. So, how do they do it? How can these mobile applications operate across different platforms and still perform brilliantly for the end user? Well, there is really no secret to it—it is all about testing. If you are developing an app which will likely be used by millions across varying platforms, then you must have a solid testing solution to ensure a positive user experience—no matter what the device or platform is. How do you test your new application? Well, there’s an app for that!

Here are my top 3 cloud-based application testing platforms and tools to help your app be as successful as possible:

Xamarin Test Cloud

My first recommendation is Xamarin Test Cloud. Xamarin provides access to over 2,000 real mobile devices in the cloud. This testing platform provides remote capabilities to the devices in the cloud, allowing you to deal with issues in real time. In Xamarin, your mobile app is tested using scripts that you create. These test scripts are built using a framework called Calabash, which runs on both iOS and Android. Upon completion of your test, results and performance analysis are displayed in dashboards and even include a recording of the test. What sets Xamarin Test Cloud apart from other testing platforms comes from the thoroughness of the program:

  • Number of cloud devices available
  • Native integration of automation capabilities to perform user interactions
  • Ability to capture performance
  • Ability to integrate with other testing tools (TFS, Jenkins, TeamCity, etc.)

If your team uses automation scripts and targets a large set of mobile devices, then Xamarin will be the best testing platform to meet your needs.

Xamarin

SauceLabs

SauceLabs provides native, hybrid and web testing combinations of emulators and simulators for the most popular devices. These capabilities are provided instantly, no waiting! SauceLabs also provides access to the device using a remote desktop session for debugging and analysis. Some of the key features of SauceLabs is that it can integrate with most CI platforms and that test scripts can be written in multiple of languages (Ruby, Python, Node.js, or C# using Appium automation framework). The key differentiator between SauceLabs and Xamarin revolves around the pricing structure. Using SauceLabs, packages start as low as $19 a month for manual testing, including the use of the Appium framework, the leading mobile testing framework out there.

 

S

Perfecto

My final recommendation for mobile app testing is Perfecto. What sets Perfecto apart from the above testing platforms is that they provide a private cloud to build your mobile app. This enhances the security and allows you to test against a wide range of conditions. This feature makes Perfecto a strong fit for dedicated enterprise apps, banks and financial service applications.

Perfecto

 

When it comes to mobile app testing, there are plenty of resources available. The three listed above are just a few of my favorites, but there are certainly plenty of options to suit all of your needs. It is now time for you to go out and start building and testing your own mobile application!

Mobile Testing CTA