Skip to main content

What's Your Emergency? The Motivation Behind My Latest Pluralsight Course

Ionic and Electron for a Desktop App

By now you’ve probably heard some of the excitement about Ionic, a tremendous framework for rapidly building high quality cross platform mobile apps. But using Ionic for building desktop apps? Maybe you think I’m joking, but I’m not. In this post I'm going to describe a modest desktop app using the Ionic Framework.

You may be asking yourself why bother using a mobile framework to build a desktop app? There are a few reasons that come to mind:
  • Perhaps you need an app that runs equally well on a mobile device, maybe an iPad or Android tablet, and you want the experience to match that of the desktop version.
  • You and your users appreciate the simpler, cleaner experience that many mobile apps offer, and you want to duplicate that experience on the desktop.
  • Or it could be that your development budget is tight, and you want to keep things as lean as possible.
In my case, it’s a combination of all three. Whatever your motivations, starting with the Ionic Framework is a great decision. Its clean and attractive components, and easy to learn but powerful API, combine to enable a great user experience.

What Problem Are We Solving?

Have you ever had to call for police, an ambulance, or fire department in an emergency? Most, if not all countries have a special number to dial for such situations. In the United States, it’s 9-1-1. In the UK, the number is 9-9-9. Other parts of Europe use 1-1-2. I’ll try to keep it generic and simply refer to “emergency services,” but 9-1-1 may pop up occasionally, because I am in the US.


Have you ever wondered what happens if you dial emergency services, and you can’t give them your location for some reason? How would they know where to find you? It used to be simple. Your phone number was tied to your home or office. When you call for help, a screen pops up in front of the emergency services personnel with your address. Simple. Until it got complex.

In the late 1980s, cellular phones made locating a caller in an emergency a much more difficult problem. You could be calling from anywhere. GPS-enabled phones in the 1990s helped to solve that problem, but another quiet revolution was taking place in the enterprise; one that required a different solution.


What if you’re in an office cubicle?


On one of a dozen floors?

In a large office complex, spanning potentially dozens of buildings?

If you’re sitting at your desk at work one day and suddenly have an emergency, how does the person on the other end of the phone know where to find you? What does that person’s screen show as your address?

In many cases, the address displayed will be the billing address of your employer. Not very helpful unless you happen to be sitting in that exact spot. And even if the street address is correct, where in that vast office complex are you? What building, floor, room, etc.?

You can imagine that this is a difficult problem, but fortunately it has been solved by most of the enterprise phone system vendors, such as Cisco, Avaya, and others. They have technology that can pinpoint the exact phone that placed the emergency call, and even alert local on-site security personnel and first-responders. So if you’re using one of these vendors at work, all is well, right?

Well, there is one other edge case that even the big companies have a difficult time with: softphones, such as Skype or Avaya OneX Communicator. Some large companies provide these softphones to their employees so that even when they are away from the office, a call to their office number will ring on their laptop. It’s a great convenience, but it compounds the emergency call location problem. 

If you’re working on your laptop in a Starbucks in Washington, DC, but your office number is tied to your desk in Chicago, no one will find you if you dial 9-1-1.

That’s the gap being filled by companies such as Conveyant Systems. When your company subscribes to their services, your office phone number is registered with them. Your company’s phone system is configured to route emergency calls through a Conveyant-managed service, which will dynamically look up your present location, and re-route the call to the nearest emergency services location, relaying your physical address at the same time.

You simply need to tell Conveyant where you are at any given time, before there’s an emergency.  Unfortunately, that tends to be a manual process. That’s our sample app comes in.

This is the motivation behind the application showcased in my Pluralsight course, Creating Cross-platform Apps with Ionic and Electron

Apart from being the subject of the online course, the application is now officially part of Conveyant's product offerings, rebranded as Gatekeeper. If you would like to see how it was built, and how you can use Ionic and Electron together to build cross platform desktop apps, I'd love it if you'd watch it, and let me know what you think.



Comments

Popular posts from this blog

How to copy your Frozen Free Fall progress to a new phone

It's happened to all of us. You are about to get a branch new smartphone, when it hits you. You're on level 250 of Frozen Free Fall. If you get a new phone, you'll lose all of that progress! Ok, admittedly this isn't the most pressing problem of our time, but it's annoying. So today I decided to do something about it.

I have a Samsung Galaxy S4 (Android), and just received an iPhone 5c. Before you bash me on my phone choice, let me explain that the iPhone is provided by my employer at no cost to me. Now you may proceed to bash me for putting games on my work phone. 
First step: Frozen Free Fall had already been installed on both devices. Next, using the Astro File Manager on my Galaxy, I searched and found the Frozen game save stored in /storage/sdcard0/Android/data/com.disney.frozensaga_goo/files/user.dat. I imagine it will be in the same location on any Android phone. If not, just look for user.dat in a folder with a similar name. So, using a USB cable and the A…

Ionic vs. Bootstrap - for a Web App

Ionic 1.x vs Bootstrap 3.x for a Web AppI was recently asked at work to come up with a comparison between Ionic Framework and a more traditional Angular/Bootstrap combination to create a web app. The application will primarily be used in a desktop web browser (probably Chrome or IE). There are also some use cases where it will be accessed from Safari on an iPad. However, this is purely a web; there are no plans to install the app onto the iPad as a hybrid app. Thus, recommending Ionic to build the UI hadn't occurred to me until the request was made.

This is even more surprising in that I recently published a Pluralsight course on Ionic Framework 1. It should have been the first thing that crossed my mind.
One constraint is that currently only Angular 1.x and Bootstrap 3 are authorized web technologies. Ionic 1.3 was recently approved, but not Ionic 2, Angular 2, or TypeScript yet.
Given those constraints, herein is my attempt at coming up with reasons to use (or not to use) Ionic…

How I Finally Got AdMob and Ionic Framework to Play Nice Together

Note: Some of the plugins referenced in this article have had their names, and possibly their APIs, changed. The information contained herein may no longer work. Please don't rely on it until I have had a chance to review and update it. -Mike Callaghan
TLDRThis is a summary of how to display ads in my MDCL (1650) mobile application, which was written using the Ionic Framework. If you want to see the sample project that displays both banner and interstitial ads, you can look at my AdMob Demo app on GitHub.

AdMob
The first thing that's necessary is to get an AdMob account, which you can create at https://www.google.com/admob/ Ionic Starter App
If you don't already have an ionic app, you can create one with the following command, which will create a folder named myApp in your current folder, and initialize it with an empty application.
ionic start myApp blank



ngCordova
Next, you'll need to install the ngCordova bower package and include that in your project. This script does m…