10 октября 2017

GDG DevFest 2017

DevFest — это крупное событие от Google Developers Group, которое проводится в Новосибирске уже второй год подряд и собирает более 600 участников и 60 спикеров.

На два дня IT-сообщество Сибири объединяется для того, чтобы погрузиться в мир информационных технологий, получить новые знания, завести новые знакомства, обсудить последние тенденции и поделиться опытом. В этом году для участников конференции были доступны 6 залов, где каждый час можно было слушать выступления на актуальные темы о технологиях Google. Были приглашены спикеры из Британии, Швеции, Польши, США, Индии, Германии и других стран. Доклад по вкусу могли найти не только непосредственно разработчики, но и другие представители IT-сферы. В перерывах между выступлениями не угасали дискуссии за горячим кофе, у каждого была возможность задать дополнительные вопросы докладчикам.

Изучать программу DevFest-2017 отправилась большая группа новеовчан. Наша компания продолжила традицию прошлого года и приняла участие в спонсорском пакете, подарив всем участникам свою продукцию, в том числе набор стикеров в виде наклеек, которые сразу появились на ноутбуках и телефонах участников.

Android-доклады в этом году были очень разнообразными: были подняты темы разработки архитектуры приложений, внедрения языка программирования Kotlin, организации работы с SharedPreferences, разработки Instant Apps, интеграции Firebase Cloud Functions.

Новая операционная система Android O стала доступна летом этого года, как и новая версия IDE Android 3.0. Поэтому открывал конференцию Денис Неклюдов с сообщением на тему “Last insights about Android”, в котором кратко повторил основные инновационные решения, официально анонсированные на Google I/O 2017:

  • Уведомления можно прочесть, нажав на иконку приложения, появились каналы уведомлений (Notification channels), где можно ими управлять. Появилась возможность откладывать уведомления (Snoozing) и убирать их полностью через какой-то промежуток времени (Timeouts and Dismissal), когда уведомление теряет актуальность.
  • Picture In Picture можно было наслаждаться ранее на телевизорах и планшетах, а теперь и на смартфонах! PIP можно использовать не только для видео, но в любом экране приложения. Для разработчиков есть возможность отслеживать жизненный цикл этого экрана.
  • Теперь нет необходимости скачивать шрифты, есть специальный менеджер для работы со шрифтами. Также улучшена работа с цветовыми профилями, что гарантирует правильное отображение цветов на всех устройствах.
  • Введены ограничения на Broadcasts, приложения в фоне получают еще меньше доступа к сервисам и ресурсам Android (BG execution limits & BG location limits).
  • В новой IDE появилась поддержка языка Kotlin, кроме того, поддерживается Java 8: Lambda expressions, Method References, Type Annotations и другие.
  • Новый менеджер файлов: Device File Explorer.
  • Новый плагин Android для Gradle.

Доклад поднял волну обсуждения о том, как последние изменения повлияют на жизнь разработчика, на пользователей мобильных устройств и на будущее Android в целом. Многим было интересно услышать о первом опыте тех, кто уже успел попробовать программировать в новой IDE, кто уже почувствовал на своих проектах влияние дополнений и ограничений, которые приносит система Android O.

Интересный доклад “Toothpick — a fresh look at DI in Android applications” был от Константина Цховребова об использовании Toothpick вместо Dagger 2 для настройки зависимостей в проекте. Константин отметил основными плюсами Dagger полное отсутствие рефлексии, а также то, что Dagger был разработан и в настоящее время поддерживается разработчиками крупнейших компаний, что делает Dagger инструментом, которому можно доверять. Однако Dagger предоставляет сложное для понимания API, а потому у каждого разработчика своя реализация. Основные ошибки при работе с Dagger из практики Константина: инъекции зависимостей в поля классов; избежание Scope; неопределенность при выборе, где хранить Components; неверное разбиение на модули. Toothpick гораздо проще в обращении и заметно сокращает boilerplate код, который необходимо писать для настройки Scopes и Components в Dagger 2. Принципиальным отличием Toothpick является проверка ошибок в runtime, тогда как Dagger обнаруживает ошибки на этапе компиляции, что может быть удобно.

В докладе “Firebase Cloud Functions: New opportunities of serverless backend” Александр Денисов рассказал о настройке проекта, создании и реализации облачных функций, а также о взаимодействии с множеством инструментов и ресурсов Android. Теперь вести разработку мобильных приложений без дополнительной разработки специального сервера стало возможно — Cloud Functions предоставляют возможность программировать собственные JavaScript-функции и исполнять их в качестве реакции на события, вызванные сервисами Firebase или HTTP-запросами: изменение данных в базе или облаке, аутентификация пользователя, аналитические события. Cloud Functions позволяют кастомизировать и расширять работу сервисов Firebase своими функциями: конвертировать графические изображения, вводить цензуру в проекты (например, удалять ненормативную лексику), настраивать различный функционал для группы пользователей (например, рассылать имейлы или push-уведомления).

После доклада Евгения Сатурова “Instant Apps: how to make your apps work without installation”, который был одним из завершающих конференцию докладов, возникли серьезные дискуссии, участники задавались вопросами: стоит ли вообще приниматься за разработку Instant App ради пары экранов в нативном дизайне? Как отнесутся пользователи к приложению без иконки, которое без спроса устанавливается и обновляется на устройстве? Технология даёт возможность пользователю использовать не приложение полностью, а лишь его часть с конкретной функциональностью, к тому же Instant Apps загружаются так же быстро, как веб-страница. Евгений является Android разработчиком из компании Surf, где впервые в России был разработан коммерческий продукт с внедрением Instant Apps — приложение Лабиринт. Он поделился своим опытом разработки и рассказал о подготовке проекта к внедрению Instant Apps: например, одной из особенностей была необходимость структурировать программу в виде модулей, не превышающих размером 4 Мбайт.

По итогам конференции каждый приобрел новые знания, но осталось множество серьезных тем для следующих встреч: организация фоновой работы приложений (особенно интересно в условиях ограничений, введенных в Android O), вопросы производительности и улучшения UX, отладка приложений и многие другие. Разработчикам всегда интересен именно персональный опыт: разбор трудностей при разработке и неординарные подходы. Обычно большинство докладов посвящены или архитектурным вопросам, или возможностям библиотек и функционала, но для разработчиков, нацеленных не просто услышать, а перенести опыт в свои проекты, интересен вопрос, как применять эти новые библиотеки и функционал в архитектуре, например: как работать с Firebase на уровне слоев знаменитой Clean Architecture. Кроме того, ждем появления best practice докладов про язык программирования Kotlin! Очевидно, эти темы будут раскрыты на следующих конференциях, когда разработчики не просто “пощупают” новые возможности технологий Google, а станут уверенно их использовать, поэтому DevFest — это мероприятие, которое стоит посетить в будущем каждому.

Конечно, каждая конференция уникальна по-своему, и мы будем очень надеяться, что с каждым разом уровень конференций в Новосибирске будет только расти. Спасибо организаторам за возможность послушать крутые доклады и пообщаться с экспертами. И спасибо Noveo за возможность посетить уже любимый нами DevFest!

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Читайте в нашем блоге

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: