Droidcon sf review
Hi, Habr! My name is Alexander Kolobanov, I am an Android team leader in the company FunCorp. In November, I was on the droidcon in San Francisco. Under the cat a small review of the conference, travel notes and some photos.
Why fly so far?
Droidcon conferences are held not only in the USA, but also in Europe. Fly there closer and cheaper, but, based on my experience, I can say that all the same geographical location decides. The closer the conference is to the headquarters of Google and other top IT companies, the more likely it is that famous speakers will take part in it.
In addition, in different places different organizers, and only their name unites them. Therefore, you need to look at each city separately. In my opinion, droidcon NYC is generally a top specialist. From Europe, I would point out droidcon London - a worthy conference on the quality of organization and on the level of reports. For Android developers from Europe, it is probably the main one. droidcon in Berlin and Vienna, where I also visited, is more suitable for beginners and mid-level developers, and eminent speakers and hardcore reports on them are very rare.
If you compare droidcon SF with Russian counterparts, then its organizers think less about such things as food (there is coffee, okay) and the convenience of the participants. Nobody sends detailed plans, how to get there, 20 reminders that their conference is coming soon, does not make bots and discussion sites and everything else. No lisping, super-detailed navigation and a chic assortment of nishtyakov. Here in the first place (as well as in the second and third) the technical part and level of reports. This does not negate the fact that a couple of so-so reports may leak into the program, but in general, droidcon SF is a conference for developers for developers, with only top content and eminent speakers.
Given all this, I would say that the conference program in San Francisco was at a high level. There were no frankly careless reports with tutorials retelling from developer.android.com.
Transportation and other expenses
America is not a cheap country, and if you fly from our edges, you will hardly be able to save a lot on the flight. In addition, everyone needs a different level of comfort for living, and what is acceptable for one is not suitable for another.
Universal advice that always works: take tickets and book accommodation in advance. You can try to look for tickets with discounts and look at the sales. There is a lot of information about such things on sites and in specialized groups in social networks dedicated to saving on travel. Watch stands on mid-range airlines, which often offer service no worse than steep and expensive ones. Well, in general, the transatlantic service is usually at all at the level regardless of class. Loukosterov at such distances do not fly (and well, probably). And since the cost of a flight is a significant part of the travel budget, it is better to combine a trip to the conference with a vacation, if, of course, there is such an opportunity. In the US, there is something to see and do.
Taxis in the states are traditionally expensive. Therefore, advice: use public transport or car pooling (this is when a taxi collects several people who travel by similar routes and share the cost of the trip). Between cities it is better to travel by bus or rent a car. The price of parking in the city is exorbitant, and the conditions are difficult and strange (for example, you should not park from 8 to 10 am on the second Thursday of the month - stand and count), while the tracks are very convenient and safe, and people on the road are mostly non-aggressive and predictable .
If we talk about housing, then there is not much to save, especially in such expensive cities as San Francisco. For lovers there is coaching, and the rest is still the same - book in advance.
The conference was held at the Mission Bay Conference Center. It is located in one of the buildings at the University of California, San Francisco. In the same building, by the way, there is a library, a fitness room and a cafe. There was enough space, even despite the fairly large number of participants (more than 800). Sometimes it was necessary to push in the corridors, but there was enough room in the halls for everyone, nobody stood along the walls.
The Mission Bay Conference Center itself is located quite close to the city center (10 minutes by taxi from the center). Here you need to make a remark: San Francisco itself is a rather compact city. From the center to the airport, drive about 40 minutes by taxi (a little more during rush hour). Therefore, problems in order to get there should not arise in principle. The only thing with public transport in that area is quite difficult, so I preferred to take a taxi.
Under the conference 2 floors were allotted, with two halls on each: a large one and a smaller one. Registration, where badges and T-shirts were issued, was right at the entrance. Despite the large number of participants, everything went very quickly. It took just a couple of minutes to get the badge. A small queue arose in the morning just before the keynote. And t-shirts, by the way, were distributed in almost unlimited quantities, and not only at the registration, but also on many stands. Just.
Behind the registration area there was a large hall, from which everyone had already dispersed through the halls. It also had an exhibition area with stands of sponsoring companies (by the way, there were more of them on the second floor, and building was denser) and coffee points. Directly from the hall you could go out to a small park located inside the campus. Nice and cozy.
Everything was organized well, but a bit unusual in comparison with Russian conferences. There was certainly less fuss and more attention to the reports and the technical side. Of the "food" were only tea and coffee. We have much more attention paid to coffee breaks, catering and meals in general. Here, except for hot drinks, there was nothing. More precisely, at lunchtime they were still carrying refrigerators with “Cola” jars. Want to eat - over there, around the corner, a cafe where you can buy a sandwich. No you super-care and hyper custody. And by the way, it was the norm.
The dinner itself was also quite nominal: an apple, chips and, again, a sandwich. Formally fed, but no more. Many students went to dine in the same park on the benches.
But it is especially worth noting the technical part of the organization. There were almost no problems with WI-FI, although it was open to the campus. Speakers very quickly set everything up and connected, right in a couple of minutes. In the course of the report, they constantly made sure that everything worked well. They even turned down and added the sound almost at lightning speed, when the speaker, for example, began to speak louder or quieter. In general, I did not notice a single hitch and problems with the equipment, everything was super. Unless all the reports wore microphones around the hall, but the speakers themselves pronounced the questions asked to them.
From the unusual: I really liked the quiet room. Just a room where you can just go in, drink tea, sit with a laptop in silence and take a break from the noise of a big conference.
Reports went in four streams, practically from morning till night. The venue opened at 8 am, and the first report began at 9. Everything ended at around 7 pm. There was no clear subject for threads. Most likely, the organizers allocated slots for the estimated attendance for each report. Of the main topics, there are CI / CD (as almost at all Android conferences over the last couple of years), UI tests (it suddenly turned out that almost nobody has them), Kotlin (where are we now without it), architecture applications (collect two Android developers, and soon they will speak "for architecture"). In short, everything is pretty standard. I can't say anything interesting about keynote, it just was. We talked about the fact that we are making applications that are on almost everyone’s phone, we are shaping this world and how people interact and communicate in it. But I remember more the comedy (although no comedy was originally planned) closing speech from Romain Guy and Chet Haase - very famous people in the Android world who worked for a long time at Google and in many ways defined how the platform looks now. I think many people watched their performances on Google I / O (by the way, very cool) about hardware acceleration, animation and rendering. If you suddenly did not look, I highly recommend it. About their final I think many people watched their performances on Google I / O (by the way, very cool) about hardware acceleration, animation and rendering. If you suddenly did not look, I highly recommend it. About their final I think many people watched their performances on Google I / O (by the way, very cool) about hardware acceleration, animation and rendering. If you suddenly did not look, I highly recommend it. About their finalI would not want to tell comedy talk much, because retelling jokes is an activity so-so. Better see for yourself.
If you try to highlight the top reports, it will be very personal and dependent on those that interest me most. Here it is:
How to Build a Performance Testing Pipeline from Scratchfrom Valera Zakharov from Slack. Great performance, straight fire. Many good and practical advice and interesting experience. Report about what you should not do your own farm of devices, if you do not have a separate team to support it. And how important it is not only to make the application fast, but also constantly, from commit to commit, ensure that it remains so and prevent regressions. And if tests often “make noise” and fall in vain, then they are worth a little, because soon everyone will just start to ignore them.
Human Centered API Design, Pierre-Yves Ricau, Square. The one that makes LeakCanary and another bunch of equally well-known libraries, together with other developers from Square. He told how to make an external API for people. Make it intuitive. So, to minimize the error rate for those who use it. A good report is not only about writing an external API, but about how to design properly in general. By the way, the API of any module of your application should also be easy and, if possible, understandable, right?
Building for the future at Snapchat, Ben Dodson (Ben Dodson), Gustavo Moura (Gustavo Moura) - unexpectedly, but from Snapchat. About how to remake an application that is 4+ years old, it is rather slow and changed the concept several times in the process of life. And in general, now first of all the camera, and then chat. And even the Retrofit was not when you wrote it. The basic idea is that you do not have to rush to rewrite everything. It would be good to understand your priorities and what you want, enter metrics and strictly observe them. Although some module can be rewritten from scratch. And yes, it is, in fact, already another application, and it must somehow be presented to users, sometimes it is just imperceptible to replace one module with another and try to prevent everything from falling. Based on real events.
There were many interesting and useful reports. You can highlight the story of developers from Uber, how they fought with Out of memory. Often, they are not only leaks and huge memory consumption, but also a large number of threads. After all, each thread allocates itself a piece of memory under the stack, for example. Few threads are bad too: tasks dependent on one another will be included in thread starvation deadlock due to lack of threads (as they called the situation when one task waits for the result of the other, but that one simply does not have enough flow to execute). The way out of this situation is quite simple: use one tool for multithreading throughout the application (they chose Rx) and know how it works. In the case of Rx, for example, study the difference between schedulers.
Developers from Facebook presented a new library for working with images Spectrum. By tradition, the Facebook library uses native code, including MozJPEG, which is now one of the best codecs for JPEG. Able to encode, compress, optimize, add various transformations. In general, quite an interesting functionality, which until then had been quite difficult to find in an easy-to-use form.
From the report on Kotlin, which was called Advanced Kotlin , it was possible to find out what you are advanced in Kotlin, if you know what infix and tailrec are, distinguish in and out for the generic type, you know about the classes where and sealed. Well, and you can still build a similarity dsl on lambdas.
There were also quite good reports about the UI architecture from Tinder and Netflix. The former do, so to speak, a reactive UI on states that are switched via actions and use LiveData and ViewModel from the architectural components for this. The latter made their components, which contain part of the logic together with the View, and connected them through their implementation of the event bus.
So there were a lot of good reports, and the mention of each noteworthy would take perhaps a dozen pages. It was not such that any reports were frankly bad. But personally, I didn’t like Romain Guy’s talk about photography. It does not even talk about how to take pictures from your application, but simply about the theory of photography. The developer is, of course, respected, but still people paid money for a conference about Android development, and not for a course on photography.
As such, there was no room for communication with speakers or at least a special zone. The speakers, as a rule, answered questions from the audience after their performance, and then invited to further conversation informally, in the style of “I'll be here until the end - catch, ask, I will be glad”. But there is a nuance. Practically all the companies from which there were speakers had stands where not only the speakers but also other developers from the company were hanging out, therefore, to come up and ask the interesting question did not present any special problems. So the stands were interesting and sometimes very lively.
Who should visit droidcon SF?
This conference is worth a visit for those who want to listen to the application reports of famous developers, and then also personally ask how and what works for whom. The atmosphere is very open and friendly. But I would not recommend going to the conference for those who have little experience. Reports are quite complex, the pace of the conference is very high. 8 lectures a day is harsh. So severely that Slack, for example, handed out at his stands the Survival kit - a bag of vitamins and headache pills. And, as you know, in every joke there is only a fraction of a joke. Plus, at least this time, many topics were not only about programming, but also about the infrastructure, their experience and practice. So the team leaders and development managers will also be able to find suitable content on the droidcon SF.
While the topic of CI is still alive and very relevant, testing and everything connected with it, it might be worthwhile to go to QA and DevOps engineers. By the way, one interesting observation of mine: in those companies that were introduced, they increasingly often say simply about engineers and do not divide them into developers, testers and infrastructure. This is manifested in the fact that many can change their role and, as a developer, go, for example, to the infrastructure team. Why not, all the same engineers.
The overall impression is extremely positive. I expected weaker reports, but there were almost no “walk-throughs”. To the organization of food, or rather, his absence, I was basically ready. I expected that problems might arise with an understanding of what was said, but most of the speakers spoke clearly and did not overclock, so there were no problems in principle. Sometimes you just had to get used to the accent. And the technical organization and informal communication definitely exceeded expectations. And this is not just my opinion. There were many interesting discussions in the lobby and at the stands between the reports.
See the links below for reviews of other foreign conferences from our blog: droidcon Vienna