DroidconNYC '17 event board

DroidconNYC ’17 Wrap Up

Highlights

DroidconNYC '17 welcome session

DroidconNYC ’17 was my first time attending any Droidcon event.  Between the speakers list, the city, and then the released schedule, I had high hopes going into the event.

I’m very happy to say it did not disappoint.

Below are some of my favorite highlights and takeaways from the event.

What is the community?

There was a great moment during the architecture round table event in which Annyce Davis questioned the notion that “the community” all does things a certain way.  I can’t really describe my reaction better than Christina Lee already did…

The idea that “the community” all do things the same way is a fallacy that isolates, and possibly discourages, those who don’t follow the same patterns/conventions.  Sure, some of the ideas favorited by prominent/outspoken Android developers gain traction for very valid reasons, but that doesn’t mean everyone needs to move away from their current approach and rewrite their app.

We should be welcoming of new and differing ideas, and ultimately focusing on building great software and not worrying so much about whether we are doing things the “right” way.

What’s the best way to do ?

This takes me into another theme I was happy to see pop up throughout multiple sessions.

It Depends

  • Should I use architecture components? …. It Depends
  • Should I use MVVM? … It Depends

There is no standard, “correct”, way to build an Android app.  Whether you should RxJava, LiveData, databinding, MVP, MVVM, MV-whatever… these are all questions that really do depend on your team, your requirements, and your personal preferences.

At the end of the day, if you can deliver working software with X,Y,Z then much of the other discussions/debates are just noise.  (Granted, this depends on your definition of working software 😀 )

The Keynote

I loved the keynote talk from Kathy Tafel.  For me, it set the tone of the conference wonderfully.

She painted a story of how far technology has come, and how it allows us to bridge the gap between boarders, language, education, etc.  And yet, “The future is unevenly distributed”

“The future is unevenly distributed”

To me, it was a wonderful reminder that there are meaningful, life changing problems yet to solve, and that not everyone sees the solutions to these problems even once they arrive.

Through technology, we can positively impact the world, but if we lose sight of that larger goal it’s easy to become worn out and lose our inspiration.

With this framing set in place during the keynote, I viewed the rest of the conference through the lens of “how can what I’m learning today have a positive impact”, and ultimately left the conference feeling refreshed and inspired.

Takeaways

After a few days of thinking back on the conference, a few things really stick out to me.

Kotlin has arrived in a big way

  • almost every talk i attended was using Kotlin code or a mix
  • several talks were specifically pertaining to kotlin
  • chatting with some other devs/teams it seems that the official support from Google was the thumbs up they needed to make the switch

In the roundtable discussion, Jake Wharton was asked about whether using Kotlin would improve app architecture. He made a few points that I think are very relevant and sometimes get left out of the “why Kotlin” discussion:

[​a number of things should be taken into account when architecting your app; testability, modularity, etc. These are all ultimately language agnostic. Kotlin may make certain ideas/patterns easier to express, but a move to Kotlin in no way ensures a solid architecture]

Annyce Davis then chimed in with this great response

our app uses MVP with Kotlin and it’s the same as the Java version expect it’s shorter

A focus on app architecture

There were quite a few talks on app architecture, all of which seemed to mix in different combinations of the following:

  • architecture components
  • databinding
  • rxjava
  • models, views, & whatevers
  • javascript Redux patterns

There wasn’t any single, universal suggested architecture, but there were definitely a few recurring themes

  1. separation of business logic from activity/fragment
  2. usage of some type of repository layer to act as an intermidiary between business logic and whatever datasources you might be using
  3. building reactive UIs that are responding to LiveData/Observables/Actions etc

I personally had a number of conversations around 2 main topics:

  • using databinding with the new architecture component ViewModel, and LiveData
  • different strategies for constructing a data layer, and how that impacts persistence, fetching, and consumption

Listening to a number of talks on these subjects, and then immediately getting to discuss ideas with other devs was one of my favorite parts of the conference.

Loved this quote from Israel Ferrer Camacho

architecture is like cooking

It’s so true.  Cooking can be highly personal and varied, and we certainly see that in software development as well.

I think we may continue to see these sample architectures evolve, and change and possibly even see an increase in open source solutions to complement things like architecture components – for example: Store, or the other object db lib that was there

Databinding & Kotlin

I was excited for this talk because I like databinding quite a bit, and feel it’s helped improve our app quality.

Of particular interest to me were a couple custom delegates that can help remove common boilerplate code for:

  1. creating/assigning binding objects for your activities/fragments
  2. setting up the boilerplate of observable properties on a viewmodel

Interesting tools I learned more about

Misc

The schedule for the conference was terrific.  I had a hard time picking which talk to go to on a number of occasions, and I eagerly await talk videos being posted.

There was an Android Things code lab which I considered going to, but ultimately passed on to attend a couple more talks that were more immediately relevant to my day to day work.  I kind of regret that now since those that attended the code lab got to keep their maker kits.  I look forward to seeing what a few friends end up building.

Final Thoughts

DroidconNYC ’17 was a terrific event. I left with a lot of great ideas and a number of actionable takeaways, but even more importantly I came away from it inspired, refreshed, and excited about building great software. The opportunity to engage with current/former coworkers, friends, and the larger Android community is something I hope I’m lucky enough to experience again next year

Leave a Reply