Ionic and Electron for a Desktop AppBy 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.
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?
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 911 Secure. 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 911 Secure-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.
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 911 Secure'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.