I wanted to follow up to a post I made the other day about receiving ‘push notifications’ from my app. Because it is applicable to every app that is on every phone. Like I said before, I don’t know if it can be classified as “bad” news, but it isn’t “good” news, either.
It is simply important to know news.
I recently learned, by reading through the documentation provided by Apple and Android, that apps are limited in the number of “notifications” they can receive. This may change how you view apps that you rely on to get life-saving weather information…. They may not work.
That is by design.
Turns out that many apps – including weather apps – continually ping your phone with a soft, background, quiet tap on the shoulder to say, “hey there, here is a few bits of data to make sure you are updated when your owner wants to open this app back up.”
ON YOUR PHONE
On my app, this gentle tap to your phone is also a way to keep the temperature updated in the ‘tray’ and for Apple users it keeps the radar active in the background, too.
Apple describes this best on their website: “Background update notifications improve the user experience by giving you a way to wake up your app periodically so that it can refresh its data in the background. When apps do not run for extended periods of time, their data can become outdated. When the user finally launches the app again, the outdated data must be replaced, which can cause a delay in using the app. A background update notification can alert the user or it can occur silently.“
But both Apple and Android limit the number of these notifications that can be sent. Apple more than Android (but more on that in a second). These background updates are important to you, perhaps, but not important to the Operating System developers.
More from Apple: The system treats background notifications as low priority: you can use them to refresh your app’s content, but the system doesn’t guarantee their delivery. In addition, the system may throttle the delivery of background notifications if the total number becomes excessive. The number of background notifications allowed by the system depends on current conditions, but don’t try to send more than two or three per hour.
Android is a little more liberal with their allowances. If an app is using the Google’s Firebase Messenger Service (my app does), it is cleared from most restrictions. Apple, isn’t as friendly.
What can happen, if I read this all correctly, is when the app gets pinged silently for an update, the code is only allowed to ping your phone through the server so many times before it has to stop. Both Apple and Android, but more true for Apple.
If you have poor cell reception (for any reason), switch between cell service and wifi frequently, or turn your phone on airplane mode, the app-server connection can get interrupted. When the app tries to ping you, it misses. And then it tries again. And again. And again. But it can only try so many times before it must stop.
DESIGNED TO BE GOOD, BUT THIS CAN BE BAD
Why? Both Apple and Android are designed to limit these attempts to protect you (rightfully) from spam, battery problems, and poor performance.
For instance, for Android: In an effort to reduce power consumption, Android 8.0 (API level 26) limits how frequently background apps can retrieve the user’s current location. Apps can receive location updates only a few times each hour.
So, if the app tries a certain number of times to contact the server and fails each time, it then has to quit trying until you, physically, open the app. That also means, until you pyhsically open it, the app has to quit all levels of updates – including non-silent ones, like alerts for watches/warnings/advisories from the NWS.
This isn’t just my app. This goes for every app designed to update in the background.
Sinec my app is designed to alert you of warnings from the NWS, it must run these background updates to function and send you alerts.
So this can become a big problem.
Again, this limitation is by design. Put in place by Apple and Android. This is not a failure of the app. It is a design feature of the manufactures of the operating system on the phones. For good reason, too! Imagine how much spam you would get if apps were allowed to send you infinity pings infinity times. Whew! And apps running in the background would eat through your battery like crazy, too!
I’ve heard from many of you that the push notifications were working one day, but not the next, and then suddenly worked again, but now aren’t anymore. I have a suspicion that this may be why. While I can’t claim the app is perfect, by any means, this seems to be the failure point.
I’m still investigating the problem where people open the app and it says, “No internet” but I think this is a similar problem. The app is designed to visually alert you when you have don’t have enough data to get alerts. The last thing I want is for you to be looking at old radar data or not pinged for a warning while you are thinking and assuming you will be. So it is designed to say “HEY! NO INTERNET!” And the app tests your availability of internet through that background function. While we haven’t been able to ‘test’ this directly yet, it lines up with a lot of the reports we have received.
Again, this background notification problem goes for every app.
A POTENTIAL SOLUTION
A quick fix for my app: Physically opening the app daily may help this issue. Opening it more frequently helps more.
But more importantly, if you know you are in a place with poor cell cover (large buildings, around a lot of electrical equipment, in basements, in rural areas, etc) opening the app here and there, on severe weather days, to make sure that you are telling your phone that you are using the app will help.
The difference between my app and some others is that the push notifications for NWS warnings are the top tier priority alert. That trumps any and all other information being sent to your phone by my app. Before temps, before radar, before anything. No ads get served, no graphic is updated, nothing happens before that warning pings your phone.
With only one exception: it has tried to ping you a number of times and failed.
Then you have to physically open the app to receive those alerts.
I’m still learning about all of this, too. So I may not have all the answers here, but I do know that this is a hard coded rule on both operating systems and impacts more than just my app. From what I understand this affects all apps. On every phone.
I want to stress that if you have good reception, no issues on wifi, and open the app occasionally during the day, you’ll have no issues. But if you live in a rural area, constantly lose reception, or choose to turn your phone onto airplane mode, this may limit your access to notifications without your intervention.
It is great that a lot of you may have an app to alert you during severe weather (hopefully it is my app!) but it does come with some effort on your end to make sure that those alerts actually make it to your phone – especially when it matters.
Good to know…..Thanks Nick!!!