20-21 апреля, то есть уже завтра-послезавтра, в Петербурге пройдёт конференция по мобильной разработке Mobius. Android и iOS, разнообразные темы от многопоточности до тестирования, российские спикеры и зарубежные звёзды — о том, что там будет, мы уже писали.
А вот о чём ещё не сообщали: в оба дня конференции онлайн-трансляция первого зала будет бесплатной. Идти будет на YouTube, так что смотреть удобно где угодно — хоть на смартфоне, хоть на телевизоре. И хотя ничто не может заменить полностью личное присутствие, мы стараемся приблизить онлайн-опыт к нему. Например, зрители трансляции могут писать в специальный чат свои вопросы спикерам, а между докладами будут видеть интервью со спикерами и включения со спонсорских стендов. В общем, в оба дня запускайте трансляцию на самом удобном для вас экране и наслаждайтесь!
А какие именно доклады попали в доступную для всех трансляцию? Под катом — все их названия и описания.
День первый (20 апреля)
10:30 Trusting iOS SDKs
Использование сторонних SDK существенно ускоряет процесс разработки, но в то же время таит в себе и подводные камни. Феликс поговорит о том, какие риски вызывает зависимость от стороннего кода, и как потенциальный злоумышленник может с лёгкостью добавить зловредный код в ваше приложение.
Felix Krause / Google
Феликс — создатель fastlane, опенсорсного инструмента для автоматизации задач, связанных с iOS- и Android-разработкой. С 2015-го он в Twitter, а около года назад вместе с fastlane перешёл в Google. Недавно он анонсировал CI-систему для мобильных разработчиков fastlane.ci, и мы тогда взяли у него интервью.
12:00 Профайлинг в примерах: ищем бутылочное горлышко
Скорее всего, ваше приложение отлично себя чувствует на последнем Пикселе. Наверняка и на первом. Но как понять, достаточно ли хорошо оно работает на других устройствах? Что делать после обнаружения проблемы и как не допустить её повторения?
Доклад представляет из себя технический кейс. Мы не будем углубляться в дебри оптимизаций, но рассмотрим, с чего стоит начать.
Есть приложение, которое работает. Есть ощущение, что оно работает недостаточно быстро. Сначала мы разберёмся, насколько правдиво это ощущение, с помощью более точных инструментов, нежели интуиция. Затем «препарируем» это приложение, используя несколько инструментов один за другим, попутно внося оптимизации. Время ограничено, поэтому мы сосредоточимся на части инструментов: профилировщик GPU, Hierarchy Viewer, отображение Overdraw. Напоследок рассмотрим несколько инструментов, позволяющих следить за тем, насколько хорошо приложение работает от сборки к сборке.
Разумеется, серебряной пули не существует, как и универсального решения всех проблем. Однако для того, чтобы решить проблему, нужно её найти и локализовать. Понимание того, «где мы находимся сейчас» — неотъемлемая часть успешного движения вперёд.
Артур Бадретдинов / Vyng
Считает, что каждый программный инженер — разработчик, но не каждый разработчик — программный инженер. Пишет код так, чтобы потом за него не было стыдно. Работает над тем, чтобы программа не просто делала своё дело, но и её логика была понятна и расширяема другими людьми. В последнее время делает рингтоны под Android уникальными в компании Vyng.
13:30 Мультиплатформенная архитектура на Kotlin для iOS и Android
Kotlin семимильными шагами двигается в сторону кроссплатформенности, появляются десятки репозиториев с приложениями различной сложности.
Мы расскажем как уже сейчас начать скрещивать Clean Architecture с Kotlin Multiplatform Projects, как писать бизнес-логику приложения один раз для всех платформ и какие ограничения наложит такой подход.
Доклад будет интересен адептам Kotlin, которые не боятся приставок Experimental и бойлерплейта чистого архитектурного подхода.
Роман Яцына / Revolut
Android-разработчик в Revolut.
Приверженец Clean Architecture, давний фанат Kotlin.
В свободное время пишет об Android-разработке на Medium и Хабрахабр.
Иван Важнов / Revolut
Android-разработчик в Revolut.
До мобильной разработки долго занимался базами данных и enterprise-проектами, также увлекается разработкой под iOS и смежными сферами.
Любит чистый и красивый код.
15:15 Рождение, жизнь и смерть, или Что происходит с приложением в системе
Android – очень сложная система, где происходит много разных вещей, которые очень хорошо скрыты от обычных разработчиков.
В докладе разберем:
— как Android запускает себя, запускает приложения;
— кто, зачем, через какие механизмы и какие методы вызывает в стартуемых компонентах приложений;
— куда уходят запросы на получение прав доступа к тем или иным ресурсам, на основании чего система решает, выдать права или нет;
— как в итоге умирает приложение: за что может быть убито, что произойдёт, если самоубьётся.
Знания, полученные из доклада, помогут Android-разработчикам более тонко чувствовать систему, для которой они пишут, и учитывать некоторые нюансы, что сделает их приложения более предсказуемыми.
Антон Дудаков / Яндекс
Антон работает в Лаборатории встраиваемых автомобильных решений компании Яндекс. Занимает позицию тимлида проекта Яндекс.Авто, благодаря которому Яндекс встраивается в автомобили.
16:15 Сервисы: нельзя без них, а как с ними жить?
Поговорим о том, как в Android меняются ограничения на фоновую работу и как это влияет на разработчиков. Доклад не сводится к набору инструкций «примените Y к X». Слушателю нужно будет задуматься, сформулировать вопросы и залезть в кроличью нору :)
Йонатан Левин / KolGene
Йонатан — один из ведущих израильских мобильных разработчиков, часть элитной команды Google Developer Experts. Сыграл ключевую роль в успехе Gett, собравшем более 500 миллионов долларов, а также получил финансирование своего стартапа KolGene, набирающего популярность генетического market connector-а. Будучи верным приверженцем мобильного и продукт-менеджмента, Йонатан также с большим энтузиазмом занимается бэкендом. Как состоявшийся разработчик и предприниматель, он точно знает, как превратить умные идеи в прибыльный продукт.
17:35 На плечах гигантов: языки, у которых учился Kotlin
Расскажем о тех языках, из которых мы заимствовали идеи и концепции, когда разрабатывали Kotlin. В числе прочего, речь пойдет о Java, C#, Scala, Groovy, Python, Gosu и т.д. Покажем, как некоторые из этих идей изменились в нашей интерпретации. И немного расскажем о том, какие известные языки теперь учатся на нашем опыте (Swift, Java, Hack, C#).
Андрей Бреслав / JetBrains
Андрей Бреслав возглавляет разработку языка Kotlin в компании JetBrains c 2010 года, занимается как дизайном языка, так и общим руководством проекта. Ключевой спикер крупных конференций. Один из авторов блога Kotlin.
День второй (21 апреля)
10:30 Многомодульная архитектура проекта
На разных этапах зрелости проекта работают разные подходы к организации кода: архитектура эволюционирует вместе с компанией. Пока в серверной разработке в тренде микросервисы, в мобильных приложениях набирает обороты модуляризация.
За последние пару лет в Avito собралась достаточно крупная, по меркам мобильных приложений, команда – около 25 разработчиков под каждую из платформ. Для удобства работы мы шагнули в модуляризацию проекта.
На примере Avito iOS и Android расскажем:
- о наших подходах к модуляризации проектов ~ 400k LOC;
- об изменениях времени сборки в зависимости от стадии модуляризации;
- о способах измерения прогресса модуляризации проектов;
- об экспериментах со здоровьем aka Application Health Check.
Евгений Суворов / Avito
Профессионально начал разрабатывать для мобильных приложений осенью 2010 года. Прошел через многие виды компаний: стартапы заказной разработки, стартапы продуктовые, большие холдинги. С 2014 года работает в Avito, руководит командой, сфокусированной на мобильной архитектуре iOS и Android. С 2016 года член Программного комитета AppsConf, с 2017 — член ПК Mobius.
12:00 Как не состариться во время сборки: Kapt и другие приключения
Это история из жизни проекта, который стал, как и многие сейчас, слишком долго собираться и иметь слишком сильную связанность ввиду своей монолитности. История со своими взлетами и падениями времени сборки. Это итог рефакторинга длиною в год, а также исследований, которыми в основном занимаются только в продуктах масштаба Uber и Facebook. Время, проведенное в настройках Gradle, конфигурации Dagger2 и продумывание хитрых решений для уменьшения связанности заняли не один человеко-месяц. А вывод и решение чудесным образом как раз умещаются в час доклада.
Денис Неклюдов / 90seconds.tv, Android GDE
Google Developer Expert, живущий бок о бок с Android более шести лет. Несколько раз проводил курсы Studyjams по обучению Android, спикер многих конференций, в том числе Dump, Droidcon, Mobius. Также известен как один из ведущих подкаста о разработке под Android. Сейчас работает в Сингапуре в 90Seconds.tv.
13:30 Data-driven UI: безграничная власть
Расскажем про технику построения и тестирования data-driven UI-компонентов. Такой подход обеспечивает максимальную изоляцию отдельных модулей, возможность писать snapshot-тесты, unit-тесты, а также интерактивные тесты (storybook).
На примерах покажем, как создавать анимации, переходы между экранами и интерактивные жесты с применением data-driven методик. Примеры будут ориентированы на платформу iOS и язык Swift, но методика вполне подходит и для Android.
Алексей Демедецкий / Sigma Software
Мобильный разработчик в компании Sigma Software. Семь лет своей жизни занимается созданием мобильных продуктов на заказ. Свою миссию видит в поиске максимально эффективного подхода к конвертации бизнес-гипотез в поддерживаемый код. Для этого часто исследует новые архитектуры, изучает встраиваемые языки, метапрограммирование. Основной метрикой оптимизации для себя видит стоимость внесения изменений и все свои решения строит вокруг ее минимизации.
15:15 What mom never told you about multithreading
Когда мы были детьми, были табуированные темы, о которых наши мамы никогда не заговаривали. Высока вероятность, что они никогда не говорили о многопоточности.
Поэтому в этом докладе Фернандо и аудитория вместе пройдутся по тому, какие различные варианты для работы с многопоточностью существуют сегодня на мобильных платформах. В первую очередь речь пойдёт от Android, но многое сказанное будет применимо и к другим платформам.
Fernando Cejas / IBM
Фернандо Сехас занимается Android-разработкой с момента появления платформы. На один из прошлых Mobius он приезжал как сотрудник Soundcloud, но недавно Фернандо стал developer advocate в IBM — отчасти как раз по той причине, что новая работа позволяет ему чаще ездить на конференции и делиться знаниями.
16:45 Релизы мобильных приложений в Avito
В докладе расскажем о том, как устроен процесс релизов мобильных приложений в Avito, как можно собрать в одном месте десятки фичей, над которыми работают сотни людей и ничего не сломать. Покажем, какие шаги в процессе можно автоматизировать, как сократить объём ручного тестирования перед релизом и, тем не менее, быть уверенными, что ничего не сломалось.
Алексей Шпирко / Avito
iOS-разработчик с 2011 года, техлид кроссфункциональной команды, занимающейся ускорением релизов мобильных приложений в Avito. Ранее три года был тимлидом команды iOS-разработчиков в Avito, а до этого — Senior iOS-разработчиком в Samsung.
18:15 The epic battle: iOS vs. Android
Не существует «плохих операционных систем». Существуют разработчики, создающие приложения для пользователей. То, каково пользователям жить с ОС, зависит от их знаний.
Какое сообщество лучше разбирается в своей области? Android-разработчики, которым нужно иметь дело с безумной фрагментацией, или iOS-мастера, сталкивающиеся со строгими гайдлайнами от Apple?
Впервые в истории у вас будет возможность доказать, на какой платформе лучше разработчики. Как? Всё будет в завершающем кейноуте конференции.
Йонатан Левин / KolGene
Йонатан — один из ведущих израильских мобильных разработчиков, часть элитной команды Google Developer Experts. Сыграл ключевую роль в успехе Gett, собравшем более 500 миллионов долларов, а также получил финансирование своего стартапа KolGene, набирающего популярность генетического market connector-а. Будучи верным приверженцем мобильного и продукт-менеджмента, Йонатан также с большим энтузиазмом занимается бэкендом. Как состоявшийся разработчик и предприниматель, он точно знает, как превратить умные идеи в прибыльный продукт.
Напоминаем ссылку на открытую трансляцию. А если одного зала вам оказалось мало, и хочется иметь доступ к происходящему во всех залах (а сразу после окончания конференции получить видеозаписи всех докладов) — на сайте всё ещё можно приобрести доступ к платной трансляции.
WizardryIB
Улыбнуло — «давний фанат Kotlin».
phillennium Автор
В том смысле, что сам Kotlin недавний? Ну тут смотря от чего отсчитывать, в разработке-то он с 2010-го)