О чём расскажут мобильным разработчикам на ближайшей конференции? Общая идея Mobius неизменна: будут доклады и для Android-разработчиков, и для iOS, и общие для обеих сторон сразу. Но есть по сравнению с прошлыми Mobius и небольшие изменения: например, помимо докладов, будут два воркшопа. А кроссплатформенные Flutter и Kotlin Multiplatform перешли из стадии «любопытно» в стадию «используется в продакшне» — так что будет несколько выступлений для тех, кто готов применять их в бою. А какими будут конкретные темы докладов и воркшопов? Об этом — под катом. Какие доклады будет полезно послушать, для какой бы платформы вы ни разрабатывали? Екатерина Батеева (Тинькофф) и Алексей Рассказов (HUMANS) На различных конференциях почти всегда рассматривают, как писать больше тестов, как их делать короче, длиннее, какие инструменты автоматизации применять. Между тем, само тестовое окружение и состояние среды может оказать сильное влияние на поведение ваших приложений и тестов. Например, посмотрим, что будет с приложением, если выключить Wi-Fi или поменять тему в системе. Это интересно и позволит вырваться из рутины бесконечного написания и поддержки автотестов. И не стоит думать, что доклад будет интересен только тестировщикам. Разрабочики узнают, где могут прятаться баги и как себя обезопасить от их появления. Артур Василов и Илья Богин (Яндекс) Артур и Илья собираются рассказать о том, как в Яндексе пересматривали принципы разработки мобильных приложений и реализовывали концепцию супераппа. Большая часть доклада будет посвящена техническим подробностям объединения двух самых больших приложений «Яндекс с Алисой» и «Яндекс.Браузер». И также поговорим о том, зачем все это было нужно, как осуществляется взаимодействие многочисленных команд разработки разных приложений в супераппе и с какими проблемами сталкиваются на таких масштабах приложения. Поскольку это кроссплатформенная технология, доклады о ней подходят категории «Android + iOS». Но эта птичка так расправила крылья, что в этот раз о ней будут целых три выступления в разных форматах, и можно выделить их в отдельный блок. Александр Денисов (EPAM) Онлайн-конференциям хорошо подходит формат «покодить в прямом эфире»: когда смотришь стрим за компьютером, удобно видеть там происходящее на чьём-то чужом компьютере. И здесь писать приложение на Flutter будет Flutter-энтузиаст Александр Денисов. А помогать ему будут Евгений Ртищев и Михаил Емельянов: известные профессионалы в области мобильной разработки, но новички во Flutter. Всё будет в прямом эфире, включая советы аудитории, споры, тупики, ошибки в рантайме, гугление (если вдруг понадобится) — и конечно, ответы на ваши вопросы. Посмотрим вместе, что получится. Владимир Иванов (EPAM) Как и у любой молодой технологии, у Flutter хватает проблемных мест. Этим летом Владимир Иванов написал статью «10 вещей, которые не так с Flutter». Статья интересная, но встаёт вопрос: окей, проблемы поняли, а что с ними теперь делать-то? И теперь он поговорит в докладе о том, как разработчикам с этим жить: что делать с недостаточной типизацией Dart, с трудностями работы с разными схемами в iOS, с запуском тестов и репортингом тестового покрытия. Михаил Зотьев (Surf) О том, как использовать Flutter, говорят уже много — а что у него внутри? Знание «кишочков» системы не только интересно само по себе, но и может помогать использовать её ещё лучше. Поэтому в этом докладе разберут важные аспекты устройства фреймворка, которые позволяют Flutter быть удобным и производительным, а также покажут, как можно использовать эти знания в разработке. Доклад будет полезен как начинающим Flutter-разработчикам, так и тем, кто уже активно использует фреймворк, но внутрь его ещё не заглядывал.. Степан Гончаров (Lyft) Степан Гончаров ранее уже рассказывал на Mobius о Gradle, но в этот раз заходит дальше. Организация многомодульного проекта с Gradle вечно связана со сложностями — и теперь Степан представит свой собственный вариант борьбы с этими сложностями, призванный упростить жизнь и сэкономить время разработчикам. Многие уже знают Степана по его докладам, но для тех, кто слышит имя впервые: он разрабатывал под Android c 2008 года, успел побывать в самых разных ролях, и после 10 лет в мобильной разработке перешёл в Lyft работать над инфраструктурой для самоуправляемых машин. Кирилл Розов (Replika.ai) Системные уведомления — это одна из самых богатых по возможностям и фрагментированных по API часть Android. В каждой новой версии ОС мы получаем новые функции для создания уведомлений, которые позволяют не заходя в приложение получать информацию пользователю и быстро взаимодействовать с ним. Самое интересное, что одни функции заменяют собой другие. Как использовать все возможности системы уведомлений по максимуму? Как сделать уведомления на каждой версии ОС? NotificationCompat не решит все за вас. Давайте разбираться вместе с Кириллом Розовым, на чей телеграм-канал Android Broadcast подписаны тысячи Android-разработчиков. Павел Стрельченко (HeadHunter) Вот тут не просто доклад, а воркшоп с демонстрацией процесса, занимающий в программе сразу два временных слота. Плагины для IntelliJ IDEA — как лох-несское чудовище: все слышали про него, но никто не видел. Так же и разработка плагинов — многие слышали, что это возможно, но мало кто видел процесс создания от и до. Павел хочет показать вам как можно, потратив пару часов, написать полезный для команды плагин для создания Page Object-ов из XML-файла. Это достаточно объёмная задача, которая позволит показать все этапы разработки плагина: от настройки плагина до реализации логики, UI, использования других плагинов и генерации кода. Павел Борзиков и Георгий Гигаури (Mail.ru Group) Huawei запустил собственный магазин приложений и убрал с новых устройств поддержку Google-сервисов. Есть причины адаптировать своё приложение под их платформу, и Павел и Георгий расскажут, с какими проблемами столкнулись на этом пути и как формировали фронт работ. В первую очередь, рассмотрим работу с картами (какую альтернативу выбрать Google Maps и как работать сразу с двумя картами в приложении). Затронем работу с push-уведомлениями. Посмотрим, какие еще сервисы Huawei решили использовать и как их тестировать. В конце — опыт публикации приложения в Huawei AppGallery, из чего состояла подготовка и каковы первые впечатления от проделанной работы. Антон Шилов Jetpack Compose (декларативный UI-фреймворк, призванный ускорить разработку приложений) для многих перешёл из стадии «когда-то станет актуальным, но до этого ещё дожить надо» в стадию «пора разбираться». В докладе Антон расскажет, как шаг за шагом интегрировать фреймворк в текущий код, сохранив консистентность UI, и добиться максимального переиспользования компонентов. Также вы услышите: Алексей Быков (Revolut) Пока интернет-соединения не стали идеальными, для приложений остается актуален офлайн-режим. Как сделать так, чтобы его реализация была простой и эффективной? Алексей расскажет на Mobius, как за пару вечеров написать свою собственную абстракцию для эффективной работы с источником данных и в дальнейшем реализовать runtime/database-кеширование всего в несколько строк кода. Михаил Емельянов (ЦФТ) и все-все-все О мультимодульных Android-приложениях на Mobius говорилось не раз, но тема не теряет актуальности: проекты растут, практики меняются, опыт накапливается. И чтобы разобраться, как сейчас правильнее делать мультимодульные проекты, мы собрали мультиэкспертную дискуссию! На круглом столе к Михаилу Емельянову присоединится целый ряд экспертов, ранее уже освещавших эту тему:  Платон Малюгин (Dejavoo Systems) Сейчас ещё нет полного описания доклада, оно позже появится на сайте. А пока сообщим, что Платон работает Android-лидом в Dejavoo Systems Russia. Основные направления: платежные решения для платежных касс и платежные терминалы. В свободное время любит порыться в исходном коде AOSP. Миграция с Linux на Android для Платона стала главным вызовом, пришлось доказать, что это работающая идея. Пришлось достать книгу по С и C++, но одного кода недостаточно, так как нужно понимать платежную индустрию и ее функционирование. Анна Жаркова (Usetech) Фоновый режим работы — это мощный инструмент, не ограничивающийся получением уведомлений. Однако Apple в стремлении продлить работу устройства вводит все новые условия, часто требующие переосмысления функциональности. В своем докладе Анна хочет осветить основные сложные кейсы работы с Background Modes. Показать, как без запрещенных приемов обойти ограничения iOS. Рассмотрим такие ситуации: Также посмотрим, помогут ли новые решения из iOS 13 и iOS 14. Михаил Куренков (Яндекс.Карты) Про Kotlin Multiplaform по понятным причинам чаще говорят Android-разработчики. Но вот здесь можно будет услышать выступление с iOS-стороны, основанное на реальном опыте популярного приложения. В Яндекс.Картах решено было создать мультиплаформенный компонент приложения с помощью Kotlin Multiplatform. К каким техническим и организационным сложностям это привело? Каково работать с Kotlin, когда в команде многие ранее не имели с ним дела? Как правильно перенастроить процессы? Доклад рассчитан на iOS-разработчиков, но не удивимся, если фанаты Kotlin из Android-лагеря тоже придут посмотреть. Александр Лавриненко (ManyChat) Мы все хорошо владеем HTTP и часто шлем REST-посылки на сервер. Но приложения становятся все динамичнее и вот уже сервер хочет отправлять нам информацию о новых событиях. И тут, кажется, пора переключатся на WebSocket. Мы рассмотрим, что такое WebSocket и как он работает. Чем лучше или хуже HTTP и когда можно обойтись без long polling. Какие библиотеки есть. Обсудим, что нужно будет дописать ручками, а о чем стоит не забыть договориться с бэкендом. Рассмотрим классическую реализацию и реализацию через Centrifuge. И под конец попробуем померить насколько дорого для приложения будет работа с активным сокетом. Игорь Веденеев (AGIMA) Доклад посвящен задачам, которые возникли в ходе разработки файлового менеджера на iOS, и пути их решения и оптимизации. Среди задач: Вадим Белотицкий (Яндекс) Доклад будет интересен iOS-разработчикам, которые хотят внедрить технологию SPM (Swift Package Manager) в существующий проект. В докладе будут рассмотрены причины, по которым команда решила внедрять SPM, прикладные вопросы и проблемы, которые приходилось решать в процессе внедрения. В докладе будут представлены варианты решения различных проблем, которые могут возникнуть при внедрении SPM в существующий проект: проблемы с компиляцией; сочетание Swift и Objective-C кода; падения, связанные с некорректной линковкой проекта; сочетание двух менеджеров зависимостей Cocoapods и SPM; проблемы сборки на CI (Teamcity). Сам процесс внедрения будет рассмотрен поэтапно, от примеров Apple и тестовых, к первым шагам по внедрению (созданию первого модуля с генерацией проекта) до текущего состояния проекта. Сергей Митрофанов (SweatCo Ltd), Владимир Шутов (65apps) «Легаси» не имеет единого академического определения, но неизменным остаётся одно — оно есть, и оно отнимает ресурсы разработки. Тут нет «серебряной пули», панацеи которая решает проблему «легаси». Обычно эту проблему решают опыт и везение. Опыт неудач, который подсказывает, как делать нельзя. И везение в виде случайных удачных решений. К сожалению, набор такого опыта связан с реальными потерями, и немало хороших проектов пало жертвой ради опыта разработчиков. В этом докладе Сергей систематизировал свой богатый опыт работы с «легаси» в различных проектах, а Владимир в деталях поделится успешной историей избавления проекта от «легаси». Доклад будет полезен тем, кто страдает на текущем проекте из-за «легаси», и пока не знает как подступиться к проблеме или забуксовал где-то на пути к решению. Светослав Карасев (Метр квадратный) Почему REST — это не всегда хорошо? Зачем нашим предкам был нужен SOAP? Правда ли, что GraphQL только для JS-разработчиков? Что лучше: JSON-RPC, Thrift или gRPC? Правда ли, что protobuf продлевает жизнь IT-проекту? Об этом всем и многом другом поговорим в этом докладе. Помимо Mobius-докладов, есть ещё вот какая история. Мы проводим в этом сезоне целых 8 онлайн-конференций по разным темам, от тестирования до DevOps. И заметили, что многим зрителям интересны доклады с «соседних» конференций: «Я Android-разработчик, а не тестировщик, но доклад об автоматизации мобильных приложений с Heisenbug послушал бы».  Поэтому мы придумали «Full Pass»: билет-абонемент, дающий доступ ко всем 8 конференциям сразу. Конечно, вы не станете смотреть все восемь от и до, но посмотреть Mobius активно, а у других подключаться на отдельные доклады — вполне рабочий вариант.  Если для вас это звучит интересно, то актуальна ссылка на весь сезон. А если интересен только Mobius, тогда подойдёт ссылка на его сайт: там и расписание, и вся остальная информация, и билеты. ContentProvider