Monday, 3 August 2015

End to end iBeacon demo, featuring hybrid (Cordova) mobile apps and Google app engine backend.

I wanted to put a demo together, using hybrid mobile apps and a Google app engine backend, that would allow me to configure beacons and interactions at runtime, rather than coding them into the app itself.

I implemented a set of 3 demo applications that can be used to capture data describing a fleet of beacons, and configure each beacon record so that a message of the user's choice is displayed when one of the apps encounters the relevant beacon.

Here's a brief overview of the components:

1) admin-app - a Cordova app that allows a user to capture data representing a fleet of beacons and save it to persistent storage. Storage in this case is handled by Google app engine, with a Cloud Endpoint providing the API.

Select your beacon from a list, or add a new beacon...
Enter or edit beacon properties (note the "Message" field - this contains the message
that will be displayed by the interactive beacon app when a beacon is detected).
2) bbepoc - code that will be used to generate a Google Cloud Endpoint which will be used by the 
mobile apps to add, edit and retrieve beacon data.

3) beacon-app - a Cordova app that loads any beacons added via the admin app. On encountering a beacon the app will display whatever message the user entered against the beacon in the admin app; this could obviously be extended to handle other types of interaction, such as showing an image or playing a video.

Here's the interactive beacon app, branded for Objectivity,
displaying a message configured via the admin app. 

Source code and instructions for use can be found in the project's GitHub repository. Comments and suggestions are welcomed.