Here at POSSIBLE Mobile we like to send our people off to conferences to expand their skill sets and learn about new trends in the industry. This year, seven of us decided to venture out to Droidcon London.
We found London to be a beautiful city with an amazing transportation system. The parks in London are simply fantastic with plant life everywhere. It was hard to believe these parks exist in the middle of a city.
London is diverse in culture and sure to have something for everyone. Our favorite location over all was the British Museum. No matter what time or region of history you are interested in, there are numerous relics to see and read about.
Our favorite thing about London is the ability to buy tea everywhere, even at the pubs!
The art lovers spent nearly the entire day in the National Gallery.
Like any Doctor Who fan, Eric had to go out of his way to find a police box.
It wasn’t all sightseeing—we attended a fantastic conference. There were a few things that surprised us. “Making fully Reactive apps using advanced RxJava” presented by Paco Esteves focused on turning the Android lifecycle into just another part of the view controller state. We found this talk particularly clever and we couldn’t wait to try it out when we got back home. But perhaps more importantly, the UK loves Kotlin! In just about every talk someone would chime in asking about how well a pattern would work in Kotlin or if a framework had plans for better Kotlin support.
One of the talks we attended covered hypothesis-driven development, which was presented by Chris Doyle. We absolutely loved hearing how other companies handle sprints and feature releases, and the description of this talk significantly peaked our interest. Spotify uses two major backend concepts to drive their releases—A/B testing and JSON to drive their UI. With their A/B testing system, feature code can be in production without being presented to their users because the flag on the backend is turned off. One of the advantages that Chris spoke about was being able to have a standard two week sprint that never changes because you never have to worry about squeezing in that last feature. We’ve all been there – the final push to get in a feature, code style getting ignored, tech debt tickets being created, and multiple bugs. With the A/B system in place, most of these issues are avoided. Not only do you alleviate the stress behind releases, but you can also test the waters with new features using a database of users with on/off flags for a specific percentage of the users. A/B testing allows for a set amount of users to see a specific feature without rolling it out to everyone, while utilizing analytics to tell how these features are being used. We were very intrigued with the backend determining the UI because it is not something we normally hear as a developer because we build out the UI based on requirements from the design team. By using the backend, the code has the opportunity to be cleaner because there is a special view element that would get reused throughout. Even if that view element gets a redesign, it would only need to be changed in one place rather than each specific time it is used.
All of this was interesting to our team because it is something different than the projects we have worked on here at POSSIBLE Mobile. While A/B testing sounds wonderful (goodbye stress and late nights!), most of the projects we work on revolve around features. We value our clients and want to follow their ideas and release timelines, this often means having feature based releases—especially for major releases. UI being determined by the backend would definitely be something interesting to try out and begin working into projects where applicable.
Droidcon London was definitely an amazing experience and we were lucky to have had the opportunity to attend. Being surrounded by many great leaders in the Android community was an inspiring and incredible learning experience. In addition to Chris Doyle’s talk, we brought back a good amount of information that we are excited to integrate into current and future projects.