This project is an Android app that will be used as a showcase for Firebase features. It is also the basis of the companion app for AnDevCon (fork).
This app alone is "white label" in the sense that it is not a useful or shippable app itself. Rather, it is meant to be configured and skinned for use with an actual event backed by data populated in Firebase Realtime Database. There is code available in a module here that populates a database from data coming from an event created in EventMobi.
This project contains multiple modules:
app
The Android app
backend-util
Some Java utilities that read and write the Firebase Realtime Database. This provides support for the App Engine backend, but the code here is much easier to run and test in development outside of App Engine.
backend
An App Engine project that populates the database and downloads collected feedback.
core
Some common bits of Java infrastructure
eventmobi
A collection of JavaBeans that are used for deserializing the results of API calls to EventMobi.
model
Common JavaBeans that are used for database serialization and other general purposes.
This app should build with Gradle and import cleanly into Android Studio without modification. However, it won't run properly without the Firebase Realtime Database populated with some data in the expected structure. There is a backend component that will read data out of an EventMobi event (requires an API key to make calls to their service) and write it into the database. Some time in the future, I am planning to provide a file with sample data to import directly into the database to bootstrap a new installation without having to copy data from EventMobi.
The app was intended to be "branded" for real use by forking this repo and using a build flavor to specify what should be different from the default "stubbed" flavor.
To configure the app to use an event of your own creation, do the following:
There are many other resources to override as well, such as styles, colors, and Dagger module names.
Documentation is woefully incomplete here! It requires a fair amount of configuration to build and run the backend components that can run a process to copy data from EventMobi into Firebase. In particular, you will need to add a reference to some external resources used for configuration. You do this by setting the EVENT_APP_RESOURCES_DIR Gradle property to a location that contains the resources to add to the build, and that will get picked up by the backend-util build script for inclusion into the built jar.
More details about this coming later.
The app supports a minimalistic integration with Twitter. You will need to know the hashtag defined for the event and have a Fabric account with a Twitter API key and secret.
To get it integrated:
Now, when you do a build, Fabric and Twitter properties will be injected into the app, which allows Fabric to be initialized at startup. When the app is launched, a new option will be available in the sliding menu for tweets which with invoke a fragment that displays the latest tweets on that hashtag.
Please note that fabric.properties and the twitter properties are flagged by .gitignore to be omitted from commits. If your app is open source, it's probably a good idea not to advertise your API keys to the world.
Apache 2.0 - see the LICENSE file in this project.
See CONTRIBUTING.md in this project.
Doug Stevenson - @CodingDoug
This is not an official Google product.