Agenda : Better UX. (Pre-Pushing and Async fetching)
We agree that frequently changing data is not going to be pushed. It will be fetched asynchronously (lazy loading)

Strategy

On-demand (pull data)

Push Notification

Real time APIs

Providers

On-demand APIs

  • firebase FCM

  • airship

  • pushwoosh

  • ably

  • pub nub

  • ably

  • pubnub

  • Mosquitto

Local storage update guarantee

Yes, as the client will simply ask for the delta updates based on the timestamp

  • Depends on FCM or APNs

  • Not 100%

What happens app is not running/device is switched off

nothing

PN is received once the app/device is switched on

Will not receive data until app resumes persistent connection back to the broker

Data relevance: fetching

Highly relevant.
Lazy load only that data which is user wants to see

Low relevance.
Pre pushing data which user might not be interested at the time

Low relevance.
Pre pushing data which user might not be interested at the time

SDKs support for Flutter

available SDKs

Supported for airship and firebase community-supported for pubnub

self-development

Implications on devices
(Battery, energy usage)

Low implications

Low implications

High implications

Data storage (pre-pushed data)

In datacentre

In cloud

In cloud

Ease - Maintainability, Scalability

Development cost

Development, Debugging will be difficult as with any external vendor.

Development, Debugging will be difficult as with any external vendor.

Cost

No additional cost

On number of messages sent.

Airship : 1000000 (devices) unlimited push. 87k USD annually +12k (one time support)

Firebase - free unlimited messages (no support) with throttling conditions

 

Comments

 

  • If some device is not receiving PN we can delta fetch the data.

 

Reference

Verdict: Combination of push of less frequently changing data. And a pull to test for outliers(push not received) on load of page.