Inspiration

What it does

The application lets users place a beacon, which can contain text and/or an image, at a coordinate nearby. They then select a radius for which the beacon can be seen within. Other users may then browse and rate the beacons they're within range of. The app automatically sorts the beacons based upon an algorithm keeping new popular posts near the top, but also giving beacons with a small geo-fence a chance to be seen.

How I built it

We started by setting up an http interface using retrofit. This allowed us to deserialize JSON (through a GSON converter). From there it was merely a task of learning the android sdk to create the application responsible for displaying all of the beacons and allowing users to create new beacons.

Challenges I ran into

We ran into some large problems related to the use of images. Retrofit2.0-beta had an interface claiming to support multipart messages, but that was a dirty lie. After spending an hour going through the incomplete documentation, we found a post mentioning the issue. So, we then builtup a custom request body and used okhttp to transfer images.

From there, we had to take into account the potentially low amounts of memory available. We wrote code to shift images from the backend database, to an in memory cache, to an on disk cache, which we cycle through while looking through a list of beacons.

Additionally, neither of us had much experience with developing Android apps. So, getting used to starting activities and the activity lifecycle took a bit of time to become familiar with. Also, making things line up nicely in the android studio resource renderer was a challenge on a whole other level.

Accomplishments that I'm proud of

We made a cool app.

What I learned

We probably shouldn't use beta libraries during hackathons.

What's next for Beacon

Maybe continuing to develop it. It's in a pretty good place right now, but we can always add more features.

Built With

Share this project:

Updates