Отчет c GDG DevFest 2016

Какие конференции у нас в стране вам запомнились больше всего? Если в первых пунктах вашего рейтинга не встречается словосочетание GDG DevFest, скорее всего вы там просто не были. Молодая команда со Львова GDG Lviv сумела организовать грандиозное мероприятие международного уровня. Данное мероприятие было пятым по счету и это ощущалось в каждом организационном моменте.

GDG DevFest 2016

Событие ориентировано на разработчиков, которые используют технологии Google в повседневной работе. Зал распределен на три основных потока: Android, Web і Cloud. Также в наличии воркшопы, на которые нужно приходить во всеоружии — с собственным ноутбуком.

Команда stfalcon.com GDG DevFest 2016

Мы с командой посещаем конференцию уже второй раз и лично для меня каждый раз это как поездка к близким родственникам =) Ребятам удалось реализовать настолько теплую атмосферу, что каждый гик, пройдя регистрацию на ресепшене попадает в экспо-рай, полный квестов, конкурсов и интересных персонажей для нетворкинга. Непринужденная атмосфера еще больше вовлекает в происходящее, наиболее горячие доклады продолжаются в лаунж-зоне в виде бурного обсуждения либо личного общения с докладчиком.

Активити

Лаунж это не просто место где можно перевести дух между докладами, в этом году организаторы порадовали нас возможностью затестить AR Music Kit и поиграть в раритетные игры на Dendy. Имел место и уже традиционный мастер-класс по сборке из картона Google Cardboard.

Активити на GDG DevFest 2016

Не обошлось также без трендовой на сегодня VR. Организаторы притащили HTC Vive, и даже в двух экземплярах! Впрочем, как и следовало ожидать, очередь к данному девайсу выстроилась мгновенно =)

HTC Vive на GDG DevFest 2016

Это далеко не все активности, которые можно было встретить в лаунж, там был и массажный стенд, 3D-кисть, с помощью которой можно рисовать в VR. А еще один из спонсоров провел эксперимент — они взвешивали всех желающих, таким образом пытаясь определить средний вес участника конференции. В результате проведенного эксперимента был установлен средний вес в 79 кг, а мероприятие посетило около 15 тонн разработчиков.

Доклады

Что касается докладов, то их было около тридцати. Практически все доклады звучали на английском. Конечно, все темы были трендовыми и интересными, но, честно признаться, мы больше ждали второй день, на который были назначены такие доклады, как “Firebase + Kotlin + RxJava + MVP: Practical Tips”, “J2ObjC. Cross platform development — Google way”, “Deal with it: Android DataBinding explained”.

DataBinding, MVVM, Firebase — темы для нас не новые, я б даже сказал есть чем поделиться самим, что мы и делаем в нашем блоге, но все же мы не обходили их стороной.

Доклады GDG DevFest 2016

Первый доклад, который мы посетили, был “Knock knock! Who’s there? Doze” Йонатана Левина (Yonatan Levin). Йотан израильский разработчик мобильных приложений, GDE-эксперт. Уже запустил несколько стартапов. В данный момент активно занимается запуском Gett.

В Android Marshmallow компания Google представила большое количество новых функций, одна из которых называется Doze — новая технология, позволяющая значительно продлить время работы смартфона от батареи. Йотан и поведал нам о ней. Технология Doze реализует это за счет нового, более экономичного режима сна. Это значит, что в то время, когда смартфон не используется, он практически не потребляет энергию аккумулятора. Естественно, это влияет на фоновый режим работы приложений:

  • Доступ приложению к сети отключен, пока приложение не получит high-priority GCM-push.
  • Система игнорирует Wake lock’и. Приложения могут сколько угодно пытаться запросить пробуждение процессора — они его не получат.
  • Alarm’ы, запланированные в AlarmManager, не будут вызываться, кроме тех, которые будут обновлены с помощью setAndAllowWhileIdle().
  • Система не производит поиска сетей Wi-Fi.
  • NetworkPolicyManagerService пропускает только приложения из белого списка.
  • JobSchedulerService: все текущие задачи отменяются. Новые откладываются до пробуждения.
  • SyncManager: все текущие задачи синхронизации отменяются, новые откладываются до пробуждения.
  • PowerManagerService: вызываться будут только задачи приложений из белого списка.

Далее Йотан рассказал о App Standby, White List и устаревших пермишенах. А лично меня он натолкнул на решение насущной проблемы, что добавило еще больше азарта в посещение последующих докладов.

Доклады GDG DevFest 2016

Далее Дмитро Данилик (Dmytro Danylyk) принимал в главном зале заинтригованную публику с докладом “Kotlin + Android”. В целом, доклад был качественным, но, к сожалению, очевидным. Дима еще раз рассказал нам об синтаксическом сахаре и преимуществах языка. У меня пока спорное мнение по этому поводу. Альтернатива достаточно интересная, и плагин для студии есть, и компилируется все по-человечески — как бы можно пробовать. Помню были проблемы с конструкторами кастомных вьюшек, но все решалось написанием отдельных классов на Java. Но на счет продакшена пока не уверен… Хотел поговорить об этом с Димой, но его похитила толпа фанатов =)

Долгая дорога и бессонная ночь в поезде напомнили о себе и, несмотря на литры выпитого в перерывах кофе, сила гравитации давала о себе знать… Но! У нас еще была надежда! Следующий доклад “ExoPlayer: Media playback without pain (almost...)” и его автор Антон Минашкин (Anton Minashkin).

Доклады GDG DevFest 2016

Антон — давний знакомый, несколько раз приезжал к нам в Хмельницкий. Мы всегда рады его видеть. Все его доклады выполнены в сатирическо-юморном стиле. Понимая всю боль, которую переживают разработчики, работая с некоторыми фреймворками и апи, он умудряется в подробностях и с юмором передать это все аудитории, а после предоставить решение проблемы. Как доза адреналина он подействовал и на нас.

На сей раз Антон затронул актуальную и поныне проблему MediaPlayer. Думаю, каждый, кто с ним работал, сталкивался с проблемой получения состояния плеера в конкретный момент времени. А сколько боли я испытал на одном из проектов… сейчас я произнесу слово, и близкие мне по духу люди все поймут: “Samsung” — А?! Видите! Невероятно, сколько ассоциаций и эмоций у Аndroid-разработчика может вызывать данное буквосочетание =) Решение, как выяснилось, есть, я его и раньше замечал краем глаза, но, как говорится, было уже поздно, да и может не обратил должного внимания. А библиотека определенно достойная: ExoPlayer. Чтобы не повторяться, просто приведу список фич, предоставленный в документации:

  • Support for Dynamic Adaptive Streaming over HTTP (DASH) and SmoothStreaming, neither of which are supported by MediaPlayer. Many other formats are also supported. See the Supported formats page for details.
  • Support for advanced HLS features, such as correct handling of #EXT-X-DISCONTINUITY tags.
  • The ability to seamlessly merge, concatenate and loop media.
  • The ability to customize and extend the player to suit your use case. ExoPlayer is designed specifically with this in mind, and allows many components to be replaced with custom implementations.
  • Easily update the player along with your application. Because ExoPlayer is a library that you include in your application apk, you have control over which version you use and you can easily update to a newer version as part of a regular application update.
  • Fewer device specific issues.
  • Support for Widevine common encryption on Android 4.3 (API level 18) and higher.

Меня, откровенно говоря, впечатлил данный список. Плюс, ввиду того, что это библиотека, можно забыть о версиях апи и Антон уверяет, что с поддержкой кастомных производителей дела обстоят намного лучше. Я верю Антону и намереваюсь воспользоваться данным решением в следующем подобном проекте.

Второй день начался с очень-очень вкусного Morning coffee с пончиками на который мы не успевали, в итоге вошли в зал практически первыми. Как выяснилось, позже это сыграло нам на руку, так как на данный доклад решили прийти все — в прямом смысле этого слова. Зал был битком забит, сквозь распахнутые двери жалостными глазами глядели опоздавшие… еще бы! столько крутых слов в названии доклада: “Firebase + Kotlin + RxJava + MVP: Practical Tips” от Давида Вавры (David Vávra).

Давид поведал нам про новые фишки Firebase. Продемонстрировал приложение Settle Up, которое поможет компании друзей разделить совместные расходы поровну, если они напутали с платежами. Приложение использует Firebase-сервисы, такие как Firebase Realtime Database, Firebase Dynamic Links, Firebase Storage, Firebase Authentication. Об этом он еще писал в своем блоге на Medium, советую прочитать для понимания возможностей Firebase. Также Давид показал примеры кода с использованием облачной базы и тот же код в RxJava и Kotlin.

Следующим на повестке дня было знакомство с кросcплатформой от самого Google. “J2ObjC. Cross platform development — Google way” Виталия Засадного (Vitaliy Zasadnyy).

Доклады GDG DevFest 2016

Виталий сразу дал понять, что кросс-платформа это достаточно сложно и чтобы получить профит, нужно все оценивать и взвешивать заранее. Рассказал про GetSocial SDK, над которым сейчас работает. Далее дал краткий обзор главных решений на рынке, а именно Xamarin, RoboVM, XmlVM, J2ObjC. Кстати Xamarin недавно приобрел RoboVM, и теперь всем, кто использует RoboVM на данный момент в свои проектах, придется довольствоваться старой версией, и в скором будущем искать альтернативу — привет J2ObjC! =)

Ну и, как ожидалось, главной темой доклада был J2ObjC. По своей сути это интерпретатор Java-кода в Objective-C. Таким образом, мы можем описать всю бизнес логику на Java и использовать ее на других платформах, а UI придется реализовывать для каждой платформы отдельно. Есть еще один момент: это работает только в одну сторону, потому для изменения кода в Objective-C нужно менять Java-код и интерпретировать заново. В итоге получаем полностью нативные приложения с реюзабельностью кода до 70%. J2ObjC поддерживает Java 7, так что на последний синтаксический сахарок не стоит особо рассчитывать. Плагины имеются, производительность на уровне, в общем тут нужно пробовать.

Это далеко не все доклады, на которых мы побывали — столько информации просто сложно уместить в рамки одной статьи — но все же я постарался рассказать о наиболее ярких из них. Конференция длилась два дня, в конце первого для участников была организована Silent Party. Это было что-то необычное: всем раздали наушники, каждый имел возможность выбирать себе музыку по вкусу из трех каналов, предоставленных диджеями. При этом если снять наушники, можно было увидеть, как толпа танцует в тишине =)

Silent Party GDG DevFest 2016

Silent Party GDG DevFest 2016

P.S. Огромное спасибо CoreValue за замечательный подарок! Никогда еще ничего не выигрывал на конференциях, девчонки — вы у меня первые =)

Подарок от CoreValue GDG DevFest 2016