Когда в декабре мы анонсировали новый петербургский Mobius, нам самим были известны имена лишь нескольких спикеров. А теперь, когда до конференции осталась лишь неделя, рассказываем как следует о докладах, которые на ней можно будет услышать: от рассказа о мультиплатформенном использовании Kotlin до «секретного» кейноута Йонатана Левина. Если до сих пор не определились, идти ли — вот что поможет решить!
«Кроссплатформенные» доклады
Как и весь мир мобильной разработки, Mobius делится на iOS и Android: обычно каждый доклад относится к какой-то одной из этих платформ. Но есть и такие, которые пригодятся обеим сторонам, и начнём как раз с них:
Мультиплатформенная архитектура на Kotlin для iOS и Android
Пока многие воспринимают Kotlin как «язык для Android», вообще-то у его создателей куда более амбициозные планы. Они за кроссплатформенную разработку на одном языке, и ещё год назад называли iOS одной из целевых платформ своего проекта Kotlin/Native. Пока что это всё в экспериментальном режиме, но тем интереснее: об использовании Kotlin в Android уже на каждом заборе написано, а вот разбирающихся в кроссплатформенных нюансах пока надо искать днём с огнём. И на Mobius таких можно будет найти: тему раскроют Роман Яцына и Иван Важнов (Revolut).
A/B-тестирование, которое вам понравится
Казалось бы, что сложного в A/B-тестировании? А и Б сидели на проде, что себя лучше показало — то осталось на проде. Но на самом деле и в 2018-м такое тестирование продолжают путать с поэтапной раскаткой, его результаты не всегда правильно анализируют, а темы вроде поддержки юнит-тестирования независимо от А/Б-вариантов продолжают вызывать вопросы. На Mobius они найдут ответы.
Многомодульная архитектура проекта
Есть полушутка, что Android-приложениям очень пошло бы на пользу, если бы Google обязал всех поддерживать Instant Apps: поскольку для этого требуется модуляризовать приложение, всем волей-неволей пришлось бы «распутать спагетти», и качество кода резко повысилось бы. А если вам для того, чтобы задуматься о повышении качества, не требуется «указка сверху», то может оказаться полезен опыт Евгения Суворова из Avito: он расскажет о модуляризации проектов в 400 тысяч строк кода как для iOS, так и для Android.
Релизы мобильных приложений в Avito
Продолжая тему мобильной разработки в Avito: Алексей Шпирко расскажет, как там устроен процесс релизов мобильных приложений, какие шаги в процессе автоматизируют, как сокращают объём ручного тестирования перед релизом и и как при этом оказываются уверенными, что ничего не сломалось.
Reverse Engineering Mobile Apps: How, why, and what now?
В мобильные стартапы вкладывают миллиарды долларов — и инвесторы хотели бы, чтобы результат их вложений никто не мог взять скопировать. Но при этом на защиту от реверс-инжиниринга зачастую ресурсов не выделяют. Можно удивляться этому печальному парадоксу, а можно внести посильный вклад в его исправление: посетить доклад и разобраться, как именно защищаться.
What Mom Never Told You About Multi-threading
Надо признать: у Фернандо Цехаса (IBM) бэкграунд в Android, и в докладе о многопоточности он будет отталкиваться от этого бэкграунда, но iOS-разработчикам тоже должно быть интересно. В конце концов, сама тема многопоточности куда шире какой-либо конкретной платформы. И слушать об этой теме можно вечно, был бы докладчик хороший. А в Фернандо сомневаться не приходится: он уже выступал на Mobius ранее и полюбился публике. Суперхардкора ждать не стоит, но освежить знания многим поможет.
The epic battle: iOS vs. Android
Признаемся честно: мы и сами не во всех деталях знаем, чего именно ожидать от выступления Йонатан Левина, которое закроет конференцию. Но в прошлый раз на закрытии Йонатан тоже устроил непредсказуемое шоу, а в итоге оно всем понравилось. Так что здесь стоит знать просто «планируется битва Android и iOS» и ожидать, что скучно не будет, а детали реализации пусть станут сюрпризом.
iOS
Trusting iOS SDKs
Феликса Краузе многие знают по инструменту fastlane. Недавно была анонсирована ещё и CI-система fastlane.ci, и мы тогда брали у Феликса интервью. Но его интересы этим не ограничиваются, ещё для него важны вопросы безопасности в мире iOS-разработки. И на Mobius речь пойдёт о том, чем мы рискуем, используя сторонние SDK.
Building voice responsive apps on iOS
Голосовое управление проникает в жизнь не то что бы стремительно, но неумолимо — и в итоге теперь даже iOS-разработчикам впору задумываться о том, как работать с Dialogflow от Google. Martin Mitrevski расскажет об этом и нюансах голосовых интерфейсов на iOS.
Layers of testing in iOS applications
Ewa Ludwiczak и Aleksander Grzyb работают в компании Allegro в одной команде — и расскажут об опыте тестирования приложения с более чем полумиллионной месячной аудиторией. Они шаг за шагом пройдутся по всем слоям — начиная со статического анализа кода и заканчивая юзабилити-тестированием.
«Узнать рядового Райана», или Как сделать оффлайн распознавание лиц на мобильном устройстве
Было ли у вас когда-то желание узнать имя девушки и её увлечения без личного знакомства? Одним из вариантов такого развития событий является идентификация лиц. Николай Ашанин рассмотрит, что такое идентификация лиц и реально ли решить эту задачу на мобильном устройстве. Кроме того, он исследует шероховатости и сложности при решении этой задачи, а также обсудит, реально ли выйти в релиз с таким приложением.
How to fit a million stars into an iPhone
Konrad Feiler — математик, ставший разработчиком. И это сказывается: в докладе он зайдёт издалека, закопавшись в основы памяти и оптимизации производительности. А затем перейдёт к тому, как все эти знания помогают создать приложение на SceneKit/ARKit, загружающее в память iPhone миллионы звёзд.
Менеджер зависимостей — это не просто cURL
Иван Вавилов расскажет о внутреннем устройстве наиболее известных менеджеров зависимостей и ответственности, которую необходимо взять на себя при их использовании. Рассмотрит проблемы при установке зависимостей, разберем алгоритмы разрешения графа зависимостей. Также коснётся вопроса централизации, версионирования и безопасности.
Дополненная реальность в Яндекс.Картах
О ARKit слышали многие, но мало кто пробовал его в большом проекте. В Яндексе это сделали одними из первых, сделав подсказки на экране для пешеходных маршрутов: теперь найти путь к нужному дому могут даже те, кто всегда боялся карт. С какими нюансами при этом пришлось столкнуться? Расскажет Дмитрий Тримонов.
Data-driven UI: безграничная власть
Алексей Демедецкий расскажем про технику построения и тестирования data-driven UI-компонентов. Такой подход обеспечивает максимальную изоляцию отдельных модулей, возможность писать snapshot-тесты, unit-тесты, а также интерактивные тесты (storybook). На примерах покажет, как создавать анимации, переходы между экранами и интерактивные жесты с применением data-driven методик. Примеры будут ориентированы на платформу iOS и язык Swift, но методика вполне подходит и для Android.
Защищённое приложение: разбираем мобильный банкинг
Если спросить у людей «что требует от приложения особой защищённости», одним из главных ответов будет «деньги». Банкинг всегда требовал большей защищённости, чем условное приложение для наложения фотофильтров. А название компании ЦФТ означает «Центр Финансовых Технологий» — неудивительно, что именно его сотрудники Кирилл Зуев и Артем Логутов будут говорить о биометрической аутентификации, Keychain, SSL-пиннинге и тому подобных вещах.
Готовим приложение в Playgrounds
Денис Кириллов и Константин Юричев, вдохновленные опытом использования Playground-Driven Development, расскажут о своем опыте применения этой методологии в коммерческой разработке на iOS: «Год назад в команде Mamba мы собрали все известные нам костыли и побежали с ними через усеянное граблями поле, навстречу светлому будущему, в котором отлаживать мобильное приложение можно во время его кодирования. Убедившись в жизнеспособности PDD, мы рискнули начать разработку ключевого сервиса нашей компании по этой методологии. О том, как это происходило, к чему привело, как это повторить, не выходя из дома, вы узнаете из нашего доклада».
Android
На плечах гигантов: языки, у которых учился Kotlin
Не требуется рассказывать Android-разработчикам о том, как вырос Kotlin на этой платформе за последний год. На Mobius можно будет выступление Андрея Бреслава, возглавляющего разработку Kotlin, о том, как на неё повлияли фичи других языков. И, что не менее ценно, после доклада будет возможность задать Андрею свой вопрос — не обязательно о связи Kotlin с другими языками.
Профайлинг в примерах: ищем бутылочное горлышко
В последней версии Android Studio профайлер улучшился, научившись следить и за нативным кодом. Но обладать профайлером недостаточно — им надо уметь пользоваться.
Доклад представляет из себя технический кейс. Есть приложение, которое работает. Есть ощущение, что оно работает недостаточно быстро. Сначала Артур Бадретдинов разберётся, насколько правдиво это ощущение, с помощью более точных инструментов, нежели интуиция. Затем «препарируем» это приложение, используя несколько инструментов один за другим, попутно внося оптимизации. Не каждая оптимизация стоит своих усилий, поэтому мы будем отслеживать результаты каждой из них. Напоследок рассмотрим несколько инструментов, позволяющих следить за тем, насколько хорошо приложение работает от сборки к сборке.
Скрипач не нужен: отказываемся от RxJava в пользу корутин в Kotlin
65% разработчиков, начиная проект на Kotlin, выбирают RxJava 2 в качестве инструмента для фоновой работы. Но насколько оправдан этот выбор? Корутины в Kotlin могут стать мощной заменой RxJava. В докладе Владимир Иванов сравнит оба подхода, рассмотрит их плюсы и минусы, посмотрит, в каких случаях удобнее использовать корутины, а в каких не обойтись без Rx. Станет ясно, как тестировать код, написанный с помощью обоих подходов, и насколько они могут сосуществовать.
Нелегкая дорога до JobScheduler и обратно
К ноябрю 2018 мы все будем вынуждены перейти на targetSdk 26+, а это значит, что почти каждое приложение будет явно или неявно использовать платформенный JobScheduler. Однако этот компонент далек от идеала, у него много проблем, которые вы никак не ожидаете увидеть и с которыми можете не столкнуться, пока он не дойдет до ваших пользователей. В докладе Артур Василов (Яндекс) рассмотрит все такие проблемы, обсудит ошибки в коде Android и разберет, как максимально безболезненно перейти на JobScheduler.
Рождение, жизнь и смерть, или Что происходит с приложением в системе
Android — очень сложная система, где происходит много разных вещей, которые очень хорошо скрыты от обычных разработчиков. В докладе Антон Дудаков (Яндекс) разберет:
— как Android запускает себя, запускает приложения;
— кто, зачем, через какие механизмы и какие методы вызывает в стартуемых компонентах приложений;
— куда уходят запросы на получение прав доступа к тем или иным ресурсам, на основании чего система решает, выдать права или нет;
— как в итоге умирает приложение: за что может быть убито, что произойдёт, если самоубьётся.
Upload в Oдноклассниках
В Android-приложении Одноклассников пользователь может загружать много разного контента. Это могут быть фото, видео, заметки, а также аудиосообщения, товары, каталоги и т.д. Чем быстрее они доставляются до серверов, тем счастливее будет пользователь. Вдобавок уменьшается вероятность того, что контент, в силу разных причин, будет потерян. Так появилась задача ускорения upload-менеджера. О том, что из этого вышло и с какими проблемами столкнулись, будет доклад Кирилла Попова.
Сервисы: нельзя без них, а как с ними жить
Йонатан Левин собирается поговорить о том, как в Android меняются ограничения на фоновую работу и как это влияет на разработчиков. Но он не был бы Йонатаном, если бы доклад сводился к набору инструкций «примените Y к X». Вместо этого он обещает доклад, требующий от слушателя задуматься, сформулировать вопросы и залезть в кроличью нору.
Add some reality to your app with ArCore
Сразу в двух iOS-докладах конференции пойдёт речь про ARKit, но и Android-сторона не промах. Ранее был представлен ARCore, а теперь прошло достаточно времени, чтобы были сделаны практические выводы — и Yuliya Kaleda (Jet) поделится ими.
Микросервисная архитектура при разработке Android multimedia device
Как сделать так, чтобы ничего не тормозило, код был ясен и понятен? Иван Алякскин (EPAM Systems) вместе со слушателями будет разбираться в тонкостях оптимизации производительности, от Linux kernel до Android Framework.
Акторные модели: новый взгляд на старый подход
Обычно в любом большом проекте полно внешних и внутренних систем, в которых используется RxJava. Данный подход уже стал стандартом де-факто, но многие не задумываются, что есть совершенно иная парадигма разработки, хорошо зарекомедовавшая себя в энтерпрайзе: акторная модель.
В этом докладе Владимира Теблоева (Сбербанк-Технологии) вы узнаете, что такое акторная модель и как она может помочь нам при разработке на мобильном устройстве, а также что акторы можно использовать не только на Erlang и Scala. Поговорим о легковесных асинхронных потоках, которые работают как обычный синхронный код и не только. Затронем корутины в Kotlin, а также обсудим фундаментальность данного подхода при построении быстрых и отзывчивых систем.
Вспомнить всех: Autofill Framework и Account Transfer API
Для разработчика мало что страшнее смены пользователем устройства: он может установить там что-то другое. Но с выходом Android O появились новые средства, позволяющие и на новом устройстве порадовать пользователя привычным уютом:
— Autofill Framework — автоматический ввод персональных данных пользователя;
— Account Transfer API — возможность встроиться в системный процесс миграции данных между устройствами.
Из доклада Кирилла Борисова вы сможете узнать азы использования этих инструментов и связанные с ними подводные камни, а также познакомиться с опытом их внедрения в Яндексе.
Введение в AOSP, или Как потратить ночь на сборку Android
Виктор Лапин (Advantum) расскажет, что такое AOSP, из чего он состоит, почему это не то же самое, что Google Android, и каким образом можно собрать готовую прошивку для конкретного устройства.
Как не состариться во время сборки: Kapt и другие приключения
Известный многим по «Android Dev Подкасту» Денис Неклюдов расскажет историю из жизни проекта, который стал, как и многие сейчас, слишком долго собираться и иметь слишком сильную связанность ввиду своей монолитности. Историю со своими взлетами и падениями времени сборки. Это итог рефакторинга длиною в год, а также исследований, которыми в основном занимаются только в продуктах масштаба Uber и Facebook. Время, проведенное в настройках Gradle, конфигурации Dagger2 и продумывание хитрых решений для уменьшения связанности, заняли не один человеко-месяц. А вывод и решение чудесным образом как раз умещаются в час доклада.
Напоследок
Помимо докладов, на конференции будет и кое-что новое: в конце первого дня, помимо вечеринки с настольными играми, пройдут BoF-сессии. Так что можно будет не только слушать докладчиков, но и лично поучаствовать в обсуждении насущных тем.
Если в итоге поняли, что на конференцию хотите — регистрация проходит на сайте. А если поняли, что нужна ещё какая-то информация (например, точное расписание докладов) — она есть там же.