Show and Tell: Geobird - A Location Based Platform Built with AppEngine

70 views
Skip to first unread message

Kaan Soral

unread,
Jun 23, 2016, 8:18:21 AM6/23/16
to Google App Engine

Hi


I want to share Geobird's story with you today, back in the early days we had one more of these "Show and Tell"'s that I recall (this: https://groups.google.com/forum/#!topic/google-appengine/JMBF9gJvUJM) - I enjoyed it a lot, and I hope you enjoy this one


A bit of a back story, I fancied App Engine since it's inception, at the time Python was an alien language, learned Python for App Engine (let's switch to informal, drop capitals and call it appengine from now on), moved/refactored my projects of the time to appengine and served more than a billion pages with appengine - no regrets, many quirks, such potential


So building geobird was very enjoyable, I already had an understanding of nosql/python/appengine and had battle-tested/fixed routines at hand. At first, all the challenges were technical, things were simple, not technically simple, but rather existentially simple. Building new systems, designing new things, working around nosql limitations, battling contention and stuff like that.


I don't regret any of the time I spent on appengine issues and quirks, yet I deeply regret using html5 on mobile and solving the issues that came with that, especially android ones, in my opinion, only now html5 is usable on mobile, a year ago it probably wasn't, unless you gave a considerable chunk of your soul to the cause - so building a better but ios-only mobile app would have been a nice trade-off


One technical mistake I made was to not use transactions, currently it's unthinkable, transactions should be used for almost everything, yet at the time, I was like, "Is this a banking app, no need for transactions" - as soon as I launched the first prototype, I paid the price of that mistake over and over again. But it turned out well, I had to make everything transactional, refactoring everything would be almost impossible, so I came up with a slip-on transactional system, currently the same system handles contention too, so overall my initial mistake had a very positive outcome for the project.


Currently the backend is very satisfactionally stable, while in the initial days fixes/modifications and re-builds were frequent, I haven't touched the base routines in many months. This is what I love about appengine, it's challenging to get it right, but once you do, you can just relax, at least on the technical side of things.


Some lessons:

- Use App Engine with ease of mind yet be ready to solve challenges that come with it, it's worth the effort

- Concentrate more on UI/UX rather than operational excellence

- Concentrate most on PR/Marketing

- Make things simple


I procrastinated a lot by building and improving. Not wise.


Enough about the process.


Here is geobird: https://www.geobird.com/


So basically you share things with the world, pan into any part of the world, see stuff from that location


iOS: https://itunes.apple.com/us/app/geobird-explore-the-world/id882320727

Android: https://play.google.com/store/apps/details?id=com.geobird.app

More info: https://www.geobird.com/info

(Recently changed the vision, no more high ambitions, prepared this page, probably needs improvements :)


Feel free to ask my anything,

I would also love to get feedback and suggestions,

Sincerely,

Kaan

Joshua Smith

unread,
Jun 23, 2016, 8:38:19 AM6/23/16
to google-a...@googlegroups.com

On Jun 23, 2016, at 8:18 AM, Kaan Soral <kaan...@gmail.com> wrote:

Currently the backend is very satisfactionally stable, while in the initial days fixes/modifications and re-builds were frequent, I haven't touched the base routines in many months. This is what I love about appengine, it's challenging to get it right, but once you do, you can just relax, at least on the technical side of things.

Mostly. Except when they decide to go in a different direction and you have to rewrite everything. HRD in particular. But also Python 2.5->2.7, the ever-diminishing support for mail, etc.

Perhaps it bothers me more because we use GAE for all our enterprise productivity stuff, which means I have 20-30 apps I need to change (not including all my not-for-profit side stuff I do on GAE because it’s almost free). So every breaking change they make means I have to update dozens of apps (or, in some cases, just kill them off).

-Joshua

Alexey

unread,
Jun 23, 2016, 7:35:36 PM6/23/16
to Google App Engine
I feel like I can echo both of your sentiments.  I have created a web game using Java and HTML5 on GAE after getting familiar with the platform with smaller projects.  I worked through some kinks in the early days when I was trying to stay under the free quota and eventually opening up billing and doing a little more cost-focused optimizations.  I watch the trajectory of this project (http://graph-wars.appspot.com) and keep thinking what a great leg up on focusing on features I get with this system.  I think Java support is pretty stable, thanks Google.  Opening things up to other Cloud Services was not as smooth (felt rougher around the edges), but still overall a positive experience.

The recent announcement around mail support is very disappointing though.  This will be the first time I'm seeing my application suffer from Google's breaking changes.

Kaan Soral

unread,
Jul 5, 2016, 8:52:21 AM7/5/16
to Google App Engine
I feel your pain, yet don't agree completely, yes back in the day we had some hard times, but recently things have been pretty positive - at one occasion, reps even pledged to "move mountains" for us, if demand needs be

For me the challenges have been more throughput related, you can't just blast a service and expect it to handle that blast gracefully, each service seems to have it's own limits that are not always apparent
Reply all
Reply to author
Forward
0 new messages