Обзор droidcon SF

в 8:46, , рубрики: android, Android conference, conference overview, droidcon, droidconSF, funcorp, kotlin, Блог компании FunCorp, конференции, разработка мобильных приложений, Разработка под android

Обзор droidcon SF - 1

Привет! Меня зовут Александр Колобанов, я Android-тимлид в компании FunCorp. В ноябре я был на droidcon в Сан-Франциско. Под катом небольшой обзор конференции, путевые заметки и немного фоточек.

Зачем так далеко лететь?

Конференции droidcon проводятся не только в США, но и в Европе. Лететь туда ближе и дешевле, но, опираясь на свой опыт, могу заявить, что всё-таки географическое расположение решает. Чем ближе конференция к штаб-квартире Google и прочих топовых IT-компаний, тем больше вероятность, что в ней примут участие именитые спикеры.

К тому же в разных местах разные организаторы, и объединяет их лишь название. Поэтому нужно смотреть на каждый город проведения в отдельности. На мой взгляд, droidcon NYC — это вообще топчик. Из европейских я бы отметил droidcon London — достойная конференция по качеству организации и по уровню докладов. Для Android-разработчиков из Европы она, пожалуй, главная. droidcon в Берлине и Вене, где я также бывал, больше подходят для начинающих и среднего уровня разработчиков, а именитые спикеры и хардкорные доклады на них большая редкость.

Если же сравнивать droidcon SF с российскими аналогами, то её организаторы меньше думают о таких вещах, как питание (кофе есть — и ладно) и удобство участников. Никто не присылает подробные планы, как добраться, 20 напоминалок о том, что скоро уже их конференция, не делает ботов и площадок для обсуждения и всего остального. Никакого сюсюканья, супер-подробной навигации и шикарного ассортимента ништяков. Тут на первом месте (а также на втором и третьем) техническая часть и уровень докладов. Это не отменяет того, что в программу может просочиться парочка так себе докладов, но в целом droidcon SF — конференция от разработчиков для разработчиков, где только топовый контент и именитые докладчики.

Учитывая всё это, я бы сказал, что программа конференции в Сан-Франциско была на высоком уровне. Обошлось без откровенно халтурных докладов с пересказом тьюториалов с developer.android.com.

Транспорт и прочие расходы

Америка — страна не дешёвая, а если лететь из наших краёв, то сильно сэкономить на перелёте вряд ли получится. К тому же всем нужен разный уровень комфорта для проживания, и что приемлемо для одного, не подходит для другого.

Универсальный совет, который работает всегда: брать билеты и бронировать жильё заранее. Можно попробовать поискать билеты со скидками и присмотреться к распродажам. Информации о таких вещах достаточно много на сайтах и в специализированных группах в соцсетях, посвященных экономии на путешествиях. Смотреть стоит на авиакомпании среднего ценового диапазона, которые часто предлагают обслуживание не хуже, чем крутые и дорогие. Ну и вообще на трансатлантике обычно сервис у всех на уровне независимо от класса. Лоукостеры на такие расстояния не летают (и хорошо, наверное). А поскольку стоимость перелёта составляет значительную часть бюджета на путешествие, поездку на конференцию лучше совместить с отпуском, если, конечно, есть такая возможность. В США есть что посмотреть и чем заняться.

Обзор droidcon SF - 2

Обзор droidcon SF - 3

Обзор droidcon SF - 4

Обзор droidcon SF - 5

Такси в штатах традиционно дорогое. Поэтому совет: пользуйтесь общественным транспортом или car pooling (это когда такси собирает несколько человек, которые едут похожими маршрутами и делят стоимость поездки). Между городами лучше передвигаться на автобусе или арендовать машину. Цена на парковки в городе бывает заоблачная, а условия сложные и странные (например, нельзя парковаться с 8 до 10 утра во второй четверг месяца — стойте и считайте), тогда как трассы очень удобные и безопасные, а люди на дороге в основном неагрессивные и предсказуемые.

Если говорить про жильё, то и здесь сэкономить особо не получится, тем более в таких дорогих городах, как Сан-Франциско. Для любителей есть коуч-сёрфинг, а в остальном всё так же — бронируйте заранее.

Обзор droidcon SF - 6

Площадка проведения

Конференция проходила в Mission Bay Conference Center. Он располагается в одном из зданий Калифорнийского Университета в Сан-Франциско. В этом же здании, кстати, расположена библиотека, фитнес-зал и кафе. Места было достаточно, даже несмотря на довольно большое количество участников (более 800). В коридорах иногда приходилось толкаться, но места в залах хватало всем, вдоль стен никто не стоял.

Сам Mission Bay Conference Center расположен довольно близко к центру города (минут 10 на такси от центра). Тут нужно сделать ремарку: сам Сан-Франциско — довольно компактный город. От центра до аэропорта ехать около 40 минут на такси (чуть больше в час пик). Поэтому проблем с тем, чтобы добраться, возникнуть в принципе не должно. Единственное, с общественным транспортом в том районе всё довольно сложно, поэтому я предпочёл ездить на такси.

Под конференцию было отведено 2 этажа, по два зала на каждом: большой и поменьше. Регистрация, где выдавали бейджи и футболки, была прямо у входа. Несмотря на большое количество участников, всё проходило очень оперативно. На получение бейджа ушла всего пара минут. Небольшая очередь возникла утром перед самым keynote. А футболки, кстати, раздавались почти в неограниченном количестве, причём не только на регистрации, но и на многих стендах. Просто так.

За зоной регистрации располагался большой холл, из которого уже все расходились по залам. В нём же была зона выставки со стендами компаний-спонсоров (кстати, на втором этаже их было больше, а застройка плотнее) и кофе-поинты. Прямо из холла можно было выйти в небольшой парк, расположенный внутри кампуса. Приятно и уютно.

Обзор droidcon SF - 7

Обзор droidcon SF - 8

Обзор droidcon SF - 9

Обзор droidcon SF - 10

Организационные моменты

Организовано всё было хорошо, но немного необычно по сравнению с российскими конференциями. Точно было меньше суеты и больше внимания к докладам и технической стороне. Из «еды» были только чай и кофе. У нас гораздо больше внимания уделяется кофе-брейкам, кейтерингу и питанию в целом. Здесь же, кроме горячих напитков, не было ничего. Точнее, в обеденное время ещё выносили холодильники с баночками «Колы». Хотите есть — вон там, за углом, кафе, где можно купить сэндвич. Никакой тебе супер-заботы и гипер-опёки. И, кстати, это было норм.

Сам обед также был довольно номинальным: яблоко, чипсы и, опять же, сэндвич. Формально покормили, но не более. Многие слушатели шли обедать в тот самый парк на лавочки.

Но особо стоит отметить именно техническую часть организации. Проблем с WI-FI практически не было, хотя он был открытый и от кампуса. Спикерам очень быстро всё настраивали и подключали, прямо за пару минут. В ходе доклада постоянно следили, чтобы всё хорошо работало. Даже убавляли и прибавляли звук почти молниеносно, когда докладчик, например, начинал говорить громче или тише. В целом ни одной заминки и проблемы с техникой я не заметил, всё было супер. Разве что не на всех докладах носили микрофоны по залу, но докладчики сами проговаривали заданные им вопросы.

Из непривычного: мне очень понравилась тихая комната. Просто комната, куда можно просто зайти, попить чай, посидеть с ноутбуком в тишине и передохнуть от шума большой конференции.

Обзор droidcon SF - 11

Обзор droidcon SF - 12

Обзор droidcon SF - 13

Обзор droidcon SF - 14

Программа

Доклады шли в четыре потока, практически с утра до ночи. Площадка открывалась в 8 утра, а первый доклад начинался в 9. Заканчивалось всё в районе 7 вечера. Какой-то чёткой тематики у потоков не было. Скорее всего, организаторы распределяли слоты по предположительной посещаемости для каждого доклада. Из основных тем можно отметить CI/CD (как и почти на всех Android-конференциях за последние пару лет), UI-тесты (внезапно оказалось, что их нет почти ни у кого), Kotlin (куда ж мы без него теперь), архитектуру приложения (собери двух Android-разработчиков, и скоро они будут говорить «за архитектуру»). Словом, тут всё довольно стандартно. Про keynote ничего интересного сказать не могу, он просто был. Говорили о том, что мы делаем приложения, которые находятся на телефоне почти у каждого, формируем этот мир и то, как люди в нём взаимодействуют и общаются. Но мне больше запомнилось комедийное (хотя никакой комедии изначально не планировалось) закрывающее выступление от Ромена Ги (Romain Guy) и Чета Хаазе (Chet Haase) — очень известных людей в мире Android-разработки, которые долгое время работали в Google и во многом определили то, как платформа выглядит сейчас. Я думаю, многие смотрели их выступления на Google I/O (кстати, очень крутые) про аппаратное ускорение, анимации и рендеринг. Если вдруг не смотрели, то очень рекомендую. Про их завершающий comedy talk много рассказывать не хотелось бы, потому что пересказывать шутки — занятие так себе. Лучше посмотрите сами.
Если попытаться выделить топ докладов, то он получится сугубо личным и зависимым от тем, которые больше других интересны мне. Вот он:

How to Build a Performance Testing Pipeline from Scratch от Валеры Захарова из Slack. Отличное выступление, прям огонь. Много хороших и дельных советов и интересный опыт. Доклад про то, что не стоит делать собственную ферму устройств, если у вас нет отдельной команды, чтобы её поддерживать. И как важно не только сделать приложение быстрым, но и постоянно, от коммита к коммиту, следить, чтобы оно таким и оставалось, и не допускать регрессий. И если тесты часто «шумят» и падают зря, то они немного стоят, потому что скоро все просто начнут их игнорировать.

Human Centered API Design, Пьер-Ив Рико (Pierre-Yves Ricau), Square. Тот самый, который делает LeakCanary и ещё кучу не менее известных библиотек совместно с другими разработчиками из Square. Он рассказал, как сделать внешнее API для людей. Сделать его интуитивно понятным. Так, чтобы свести к минимуму процент ошибок для тех, кто его использует. Хороший доклад не только про написание внешнего API, а про то, как правильно проектировать вообще. Кстати, ведь и API любого модуля вашего приложения тоже должно быть лёгким и по возможности понятным, так ведь?

Building for the future at Snapchat, Бен Додсон (Ben Dodson), Густаво Моура (Gustavo Moura) — неожиданно, но из Snapchat. Про то, как переделать приложение, которому 4+ года, оно довольно медленное и в процессе жизни несколько раз меняло концепцию. И вообще теперь в первую очередь фотокамера, а потом уже чат. И даже Retrofit не было тогда, когда вы это писали. Основная мысль в том, что не надо бросаться всё переписывать. Хорошо бы понять ваши приоритеты и чего вы хотите, ввести метрики и строго соблюдать их. Хотя какой-то модуль можно и переписать с нуля. И да, это, по сути дела, уже другое приложение, и его надо как-то представить пользователям, иногда просто незаметно заменить один модуль на другой и постараться, чтобы всё не упало. Основано на реальных событиях.

Интересных и полезных докладов было много. Можно выделить рассказ разработчиков из Uber, как они боролись с Out of memory. Часто к ним ведут не только утечки и огромный расход памяти, но и большое количество потоков (threads). Ведь каждый поток выделяет себе кусочек памяти под стек, например. Мало потоков — тоже плохо: задачи, зависящие одна от другой, из-за нехватки потоков войдут в thread starvation deadlock (так они назвали ситуацию, когда одна задача ждёт результат другой, а той банально не хватает потока, чтобы выполниться). Выход из этой ситуации довольно простой: использовать один инструмент для многопоточности во всём приложении (они выбрали Rx) и знать, как он работает. В случае Rx, например, изучить, в чём разница между schedulers.

Разработчики из Facebook презентовали новую библиотеку для работы с изображениями Spectrum. По сложившейся традиции, библиотека Facebook использует нативный код, в том числе MozJPEG, который сейчас является одним из лучших кодеков для JPEG. Умеет кодировать, сжимать, оптимизировать, добавлять различные трансформации. В общем, довольно интересный функционал, который до этого довольно сложно было найти в простом для использования виде.

Из доклада про Kotlin, который назывался Advanced Kotlin, можно было узнать, что вы advanced in Kotlin, если знаете, что такое infix и tailrec, отличаете in и out для generic type, знаете про классы where и sealed. Ну, и можете ещё подобие dsl построить на лямбдах.

Также были неплохие доклады про архитектуру UI от Tinder и Netflix. Первые делают, так скажем, реактивный UI на состояниях, переключаемых через действия (actions) и используют для этого LiveData и ViewModel из архитектурных компонентов. Вторые сделали свои компоненты, заключающие в себя часть логики вместе с View, и связали их через свою реализацию event bus.

Так что хороших докладов было много, и упоминание каждого, заслуживающего внимания, займёт, пожалуй, с десяток страниц. Не было такого, чтобы какие-то доклады были откровенно плохие. Но лично мне не понравился доклад Ромена Ги про фотографию. Он даже не про то, как делать фотки из вашего приложения, а просто про теорию фотографии. Разработчик он, конечно, уважаемый, по всё же люди платили деньги за конференцию про Android-разработку, а не за курс по фотографии.

Обзор droidcon SF - 15

Обзор droidcon SF - 16

Обзор droidcon SF - 17

Нетворк

Как такового помещения для общения со спикерами или хотя бы специальной зоны не было. Докладчики, как правило, после своего выступления отвечали на вопросы из зала, а потом приглашали к дальнейшему разговору уже неформально, в стиле «я тут буду до конца — ловите, спрашивайте, буду рад». Но тут есть нюанс. Практически у всех компаний, от которых были докладчики, были стенды, где тусовались не только спикеры, но и другие разработчики из компании, поэтому подойти и задать интересующий вопрос не представляло особых проблем. Так что у стендов было интересно и порой очень оживлённо.

Кому стоит посетить droidcon SF?

Эту конференцию стоит посетить тем, кто хочет послушать прикладные доклады известных разработчиков, а потом ещё и лично спросить, как и что у кого работает. Атмосфера очень открытая и дружелюбная. Но я бы не рекомендовал идти на конференцию тем, у кого мало опыта. Доклады достаточно сложные, темп конференции очень высокий. 8 лекций в день — это сурово. Настолько сурово, что Slack, например, раздавал у себя на стендах Survival kit — мешочек с витаминками и таблетками от головной боли. А, как известно, в каждой шутке есть только доля шутки. Плюс, по крайней мере в этот раз, многие темы были не только про программирование, но и про инфраструктуру, свой опыт и практику. Так что тимлиды и руководители разработки также смогут найти на droidcon SF подходящий для себя контент.

Пока жива и очень актуальна тема CI, тестирования и всего с этим связанного, возможно, стоит поехать QA и DevOps-инженерам. Кстати, одно моё интересное наблюдение: в тех компаниях, которые были представлены, всё чаще говорят просто про инженеров и не делят на разработчиков, тестировщиков и инфраструктуру. Это проявляется в том, что многие могут сменить свою роль и, будучи разработчиком, перейти, например, в инфраструктурную команду. Почему нет, все же инженеры.

Общее впечатление

Общее впечатление крайне положительное. Я ожидал более слабых докладов, но «проходных» почти не было. К организации питания, вернее, его отсутствию, я был в принципе готов. Ожидал, что могут возникнуть проблемы с пониманием всего сказанного, но большинство спикеров говорили понятно и не особо разгонялись, так что проблем в принципе никаких не было. Иногда только нужно было немного привыкнуть к акценту. И однозначно превзошли ожидания техническая организация и неформальное общение. И это не только моё мнение. В холле и у стендов между докладами было очень много интересных обсуждений.

Обзор droidcon SF - 18

Обзор droidcon SF - 19

P.S. По ссылкам ниже обзоры других зарубежных конференций из нашего блога:
droidcon Vienna
Atlassian
droidcon London
GOTO Berlin
Web Summit

Автор: Voidshad

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js