location based push notifications
DESCRIPTION
Slides from lightning talk given at Esri UC Dev Meetup, July 2012TRANSCRIPT
Location Based Push Notifications for Mobile Apps
Problem
Need to add native push notifications to QuakeFeed iOS app based on location of events and user’s area of interest
Simple User Experience
• Subscribe to Channels– Geographic Filter
(Area of Interest)– Attribute Filter
(Minimum Magnitude)
• Receive Notifications
What About Android?
Although QuakeFeed is an iOS app, this solution works for Android too
So don’t sleep…
Hey!
Goal
Server-less, cloud-based solution
Solution Architecture
+
+
ArcGIS Online
(Easy As…)
ArcGIS Online• Define Geographic Areas of Interest• Stored in the Cloud
“SanFran” Channel
“SoCal” Channel
What Is Parse
• User and Device Management• Schema-less database in the Cloud• REST API for push notifications• Native iOS and Android SDKs, Plus REST API• Incredibly Cheap– Free Level: 1M API calls + 1M Push Notifications
How We Use Parse
• Anonymous User Accounts• Store Channel Preferences in Cloud DB• Store Processed Events in Cloud DB• Send Push Notification Through REST API
• Ties our solution together• Run Python Scripts in the Cloud– Or Ruby, Go, Node, etc.
• Insanely Cheap– 5 cents/hr billed by the second
• Massively Scalable– 1000s of concurrent processes
Python Script Psuedo-code
• Pull USGS Geo-RSS feed for Earthquakes• Check for new Seismic Events– Keep track of processed Quakes in Parse DB
• Query ArcGIS Online for Spatial Channels• Assemble Push Notification Payload• Send Notification via Parse REST API
Other Use Cases
• Keep in mind that any of the elements could change in real time:– Geographic Area of Interest– Attributes of Interest– User Channel Subscriptions
• Short List– Field Management (Worker Notification)– Emergency Event Coordination– Alerts when Assets Divert from Expected Routes
Contact Info
James Richardsjames (at) artisanglobal (dot) com
If Interested in Beta Testing QuakeFeedOr Adapting This Solution to Another Use Case
Drop Me a Line