Yes, Hybrid Apps can Receive Push Notifications!

Many people don’t realize that Hybrid Apps have the ability to do Push Notifications. Push Notifications are a great way to “speak” directly to users with your app. Here’s why:

They are direct. Push Notifications wake up the user’s device – similar to to a text.

They are always present. Your icon appears at the top of the screen. The icon is visible anywhere within the device (even while running other apps). (In web terms, this is  better than “above the fold” ever was.) 

Android Notifications

Android notifications on T-on-Time provide features to prevent users from getting annoyed, such as “Stop Today”. “Stop Today” disables the alerts for the duration of the day. In addition, “Settings” takes the user right to the notification settings panel.

Push notifications give your app a native touch. This is important in a Hybrid App because it addresses a fundamental weakness. One of the downsides of a Hybrid App is that user’s may suspect the quality of the app is lower than a fully native app. Sometimes this feeling is described as the “Uncanny Valley“. The user wonders… is this app just a “website impostor” in my device? Adding some native component can reduce this unease. 

But Push Notifications aren’t that easy. For developers, whose apps must on a variety of different devices, setting up Push Notifications is a lot of work. There are a few reasons for this: 1) Accidental notification messages can really annoy users. This means you have to test really, really carefully before you release. 2) If you aren’t willing to settle for a generic experience in the notification itself, then you’re working in native land. This means every device type needs to be developed/tweaked. 3) Push requires both front-end and a back-end, has a registration step, and (usually) relies on Google GCM or Apple’s Push Notification Service. This makes testing difficult. Plus more API keys!

There are a few services, notably Parse.com, which provide cloud-based services to make the Push Notification development process easier for multiple devices. I recommend services like Parse for getting a minimum-viable-product as quickly as possible. If you want something unique or special, you may need to go native on your Push Notifications and will likely need to build the back-end yourself.

I prefer to keep the number of dependent Cloud services limited. Adding cloud-upon-cloud service can be impossible when something gets lost somewhere between services that you have no visibility over.  Parse.com and Amazon SNS offer their own, independent notification services. This allows you to use a single, generic service for all devices instead of using Google GCM for Android, etc. Definitely consider these services if you are building cross-platform Push Notifications. Of course, the generic services aren’t going to offer all the unique features that Android and Apple offer. Check “Customizing Your Notifications” at Parse.com to get a sense of what options apply to what platforms.

Here are a few bits of advice to apply when developing Push Notifications:

1. Do not abuse push. People are giving you permission to alert them. Only send Push Notifications it if it’s important to the user. (Consider disabling push service completely at hours when people are likely to be sleeping).
2. Be very careful with bugs. Accidental pushes could be deadly to your reputation.
3. Design your app’s logic with Safety Mechanisms, Safe default values and Logging.
4. It’s difficult to track users back to a support email or comment. Keep your logic simple and testable. Store your users device type, if possible, but keep registrations anonymous for privacy.
5. Expect differences in compatibility with different versions on a device type. For example, on Android, expanded notifications are not available until 4.1.

 

 

Posted in Hybrid Apps, Uncategorized

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>