October 26th and 27th, we had the occasion to attend droidcon in London. For both of us, it was our first steps in a conference of this scale and on our favorite domain. Our expectations were not the least: within our team, most of the topics of the moment seemed to have been explored back and forth, whether it is about architecture, asynchronism management libraries and methods or even Kotlin advantages. We hoped to discover news things, demystify obscure looking subjects and finally, come back with our arms filled with news topics to explore (and goodies).
This year Google I/O put Kotlin and many of their researches about Machine Learning and Deep Learning (AlphaGo, TensorFlow, etc) forward. This year’s program clearly was influenced by these domains, which was a good thing for us.
To this, add an important part about how does it works « under the hood », a good dose of applications development talks, all of this sprinkled with a bit of human, not forgetting the inevitable Android community figures.
Under the Hood
This year, one part of the talks was dedicated to the Android system internal functioning. Some gave us a global recall, in particular Effie Barak’s « Android Internals for Developers » that was about processes management, from their creation to their suppression by the system and the way they communicate. Some others a little bit more specific with an important part of views management. Britt Barak presented us the path from a high level object to a pixel displayed on our screen in the simply entitled « From View to Pixel », going through the measuring of the view, its positioning and its drawing. All of this punctuated by the Android system assets modification through a resources overlay.
That kind of talk feels so good. We spend our days, our months even our years developing awesome applications, implementing trendy architectures, migrating our code to Kotlin or trying to find one more way to manage asynchronism in our projects. We end up losing our curiosity about what’s going on being every line of code that we write. Knowing that the hexadecimals IDs that we sometimes see in Android Studio are actually formed with a package, a type and an entry identifiers or that the Android system in mainly managed by three managers (window, package and activity) launched by one unique service, stimulates that curiosity within us.
We couldn’t miss these talks for anything and we were right. Of course, these last are not those that will enable us to come back to France with a lot of topics to explore. But strengthening our foundations doesn’t hurt!
Android App Development
Some talks were about topics that we know well within our team. Clean architecture and Kotlin are part of them.
Igor Wojda’s « Why do we need Clean Architecture » reminds us about the main principles of this architecture and why it is time to stop using the MVP. His vision of the Clean Architecture is really similar to ours.
About Kotlin, being in almost every talk, Kai Koening want to push Coroutines with « Kotlin Coroutine and Android sitting in a tree ». It is a test that mainly got our attention. This test creates a loop of one million iterations and opens a thread which add an element in a file in each of them. This program takes 1 minute to finish. He then writes the same program with coroutines and the program takes 5 seconds. A totally different scale that puts into question our use of the threads!
In the « obscure » category, we find the ConstraintLayouts! For us, it was difficult to understand why use this layout when we can do everything with the good old LinearLayout and RelativeLayout! We were wrong, and we know now why. Britt Barak’s « From View to Pixel » had already told us about the difference in performance between these other layouts and the ConstraintLayout, Connie Reinholdsson with « Three key lessons when migrating to ConstraintLayout » gives us the keys to start using it. A good image comparison software, right-click « Convert to ConstraintLayout » and you can too.
Chris Banes presents us « Becoming a Master Window Fitter » which proves that Android has already done all the work regarding our windows and that it is not a good thing to go modify all of its functioning, like changing the statusBar size.
Ajit Singh (« Online to Offline world of Mobile Apps ») and Chris Le Roy (« Hacking Android, a Hacker’s Narrative ») changed our way of conceiving an application regarding the outside world. Thinking about places where the network is non-existent or being rigorous with the security of our applications are not always the first things we think about.
Finally, Jeff Corcoran and his (quite funny) talk « So you made an app and nobody cares » gives us the keys so that our applications don’t fall into the anonymity of the PlayStore mass, while quoting himself.
All of these tricks, advices and demonstrations tickled a curiosity that we thought we didn’t have on some topics. These talks erased our bias about the ConstraintLayout and opened our eyes on sustainability of what we produce.
Big Stars in the Android Sky
There no use trying to hide it, going to the droidcon makes you feel like a child excited by the idea to go sit in the main room listening to these people that you talk about almost everyday with your colleagues, during the four keynotes.
It should be pointed out that the droidcon is a « ticketless » event, which means that, theoretically, you just show up carefree and your ID is sufficient to get your pass. Sounds good on paper. But actually, not really. Among the queue, people are called by the first letter fo their first name in order to redirect them toward the ticket offices. In the end, everybody is cheating, not cool. That’s why we ended up watching the opening keynote in the « overflow room ».
But whatever, for the 10 years of Android, Chet Haase and Romain Guy presented us a retrospective of its evolution from its beginning. It feels like we soak with this story and become a little bit more complete developers.
Then it was Lisa Wray’s time to close the first day. Many of us have already wanted to start creating a library. Lisa Wray gives us the keys to succeed, or at least stumble less often (let’s point out that these were the coolest slides that were given us to see).
A quite similar talk was given to start the second day by Florina Muntenescu who gave us the good practices in the creation of an API.
These two talks made us realize that when we have a need, thousands of others have it too. Whether it is about creating a library of an API, it leaves us with a more critical look about our environment. We want to find the use case that will enable us to start too, to create a community around our product and to make it evolve as a mini startup.
What better way after half a day of intensive note-taking and some gnocchis that going to the first row of the main room to listen to Chet Haase and Romain Guy present us their new programming language supposed to replace the famous but already obsolete Kotlin? I’m talking, of course, about the new « Functional And Reactive Turing-complete language » (F.A.R.T.). An exceptional comedy talk with a crazy questions and answers part to which our two speakers took part with a confusing seriousness.
To conclude these two days of droidcon, we went to the main room again to listen to Jake Wharton himself talk about bytecode. Ok, this can be scary and I have to admit that we had to hang on to keep with his talk. When we saw this tweet, we thought it was a joke:
Well no, 339 slides of presentation to be precise, showing step by step some examples of bytecode. In the end of the droidcon, that hurts. Jake is not messing around.
The goal of the talk was to teach us to read bytecode so that we are able to answer to questions like « What iteration variable type is the fastest? » of « How are the lambdas backported from Java 8 to Java 6/7? ».
Actually, this was captivating. In the end of the talk, Jake made us the promise that by looking our bytecode every now and then, we would become better developers.
Cool Intelligent Android: What’s up with Machine Learning?
Two talks were about the famous but terrifying TensorFlow. It is Erik Hellman’s « My app is smarter than your app » and Qian Jin’s « Heat the neurons of your Smartphone with Deep Learning » who tried to explain neuronal networks and predilection models to an Android developers audience. And that was not given!
Despite the difficulty of the domain (who made him want to flip his table), Erik Hellman points out the necessity to start using it: user experience, automation… In addition to TensorFlow, he adds that we can play with Google’s CloudAI which already contains a lot of networks (recognition of images, videos and feelings in sentences etc).
Qian Jin talked about the Magritte project: an application able to recognize fruits by filming them. She shows the evolution of its recognition model via Deep Learning and the ways to integrate it in an application.
And let’s not forget it, our smartphones are increasingly powerful. With the new generation of DSP CPU, Deep Learning becomes accessible to the mobile.
These talks were extremely important to us. After months looking at TensorFlow out of the corner of our eyes, here we are fully impressed by the possibility to make our applications even more intelligent. Intelligence is within range of code: let’s use it.
Be a developer, Be Human
When you go to a technical conference for the first time, you don’t expect talks about who we are and not what we do.
But it was the case of these two talks, while totally different: « Master your career: Tips and Tricks to Rule your Future » by Jose Nieto and « Authentic Developer » by Anastasia Lopez.
In the first talk, Jose Nieto talks about the importance of catching opportunities in our career. He had to choose between going on holidays or to the droidcon: he chose the last and the opportunities he had since then are worth the investment. We must say « Yes » to opportunities and have a positive attitude.
His last advice is to target one or multiple objectives on 6 months (whether on a professional or personal level), and to check the results in the end.
Where Jose Nieto talked about us, developers, Anastasia Lopez talked about us, humans. She talks about her experience, about the shame she experienced from it, about the image she has of herself. She talks about us, about this feeling that makes us never feel talented enough, funny enough, to be an imposter. She gives us 5 characteristics to help us find our authenticity: Natural, Sincere, Spontaneous, Open and Genuine. We have to work of those characteristics. She also encourages us to see the world through the eyes of others.
You have the power to make the difference
We have been fascinated by this last talk. The humanity and the vision of Anastasia Lopez fits the values that OCTO wishes to share. Talking about the shame that we can feel regarding our job and the way to work on it were really instructive.
We came with great expectations, we go back with a lot of ideas. The feeling that we succeeded in finding topics to explore and to share with our team.
Among all the talks that we went to, two of them left their mark of us.
On the human theme, we learned a lot from Anastasia Lopez’s talk about authenticity. We would like to see that kind of talk more often and this message be heard by everyone. By listening to Anastasia, we realize that talking often is enough to unlock difficult situations.
On the more technical side, Erik Hellman’s talk about applications intelligence lightened a mysterious subject and got our curiosity.
Before the droidcon, we didn’t feel able to deal with that kind of domain. We are now convinced by the possibilities that offer to us and motivated as ever to explore them.
During the Women Tech Makers event organized by the PAUG and the GDG in Paris, Marion Hayoun (AndroidMakers) shared with us the difficulty to find women speakers.
The keynotes of this edition of the droidcon UK were done by as much men than women. On the whole event, almost 22% of the talks were presented by women speakers, pretty impressive compared to most of the other events. This subject is important to us. It reassures us and is encouraging for the future.