Как стать автором
Обновить
118.42
JUG Ru Group
Конференции для Senior-разработчиков

Что в 2025-м можно рассказать о мобильной разработке

Время на прочтение14 мин
Количество просмотров513

Когда-то презентации новых iPhone и флагманов на Android приковывали внимание. Теперь же люди шутят, что там под бесконечное «amazing» показывают то же, что и годом ранее. Сногсшибательных инноваций уже не происходит, о чём тогда гордо говорить на камеру?

С мобильными конференциями иначе. Там ожидают услышать не новую сенсацию, а полезный контент, помогающий мобильным разработчикам лучше выполнять свою работу. И вот такой контент с годами не закончился: тут всегда есть, куда копать. А по его темам можно отследить, как с годами разработка менялась.

Мы впервые провели Mobius в 2014-м, ещё до появления iPhone X и Google Pixel. В апреле проведём его в очередной раз (в Москве с возможностью онлайн-участия). Каким именно контент будет на этот раз?

Программа уже готова, и представляем Хабру краткие описания докладов. Даже если вы сами не собираетесь участвовать в конференции, пробежаться взглядом всё равно может быть любопытно: это позволит понять, чем вообще живёт российская мобильная разработка в 2025-м.

Содержание

  • iOS

  • Android

  • Kotlin

  • Кроссплатформенное

  • Flutter


iOS

Код, который не тормозит: секреты производительности на iOS

Кристиан Бенуа

Т-Банк

Кристиан покажет, как с помощью анализа кода и ряда оптимизаций удалось ускорить работу компонентов iOS-приложения в 5–10 раз и как это повлияло на основные метрики скорости приложения.

Обсудим идеи, стратегии и трюки, которые сделали возможным это улучшение, начиная с диагностики проблемы и заканчивая реализацией самых эффективных решений.


Перерисовки в SwiftUI

Антон Бушманов

Ozon

Антон расскажет о части перформанса в SwiftUI, а конкретнее — о перерисовках. Доклад нацелен на тех, кто только переходит на SwiftUI или использует его не так давно, чтобы задаваться вопросами перформанс-ревью. Будет интересно разработчикам всех уровней. Главная цель доклада — преподнести перерисовку максимально простым языком и на примерах.


Молот и наковальня iOS-разработчика

Василий Усов

Райффайзен Банк

Кирилл Шумаков

Райффайзен Банк

Вам расскажут о macOS-приложении RaifMagic — внутреннем инструменте Райффайзен Банка, который команда создала в рамках работы над мобильным приложением для клиентов.

RaifMagic — мощный инструмент для iOS-разработчиков, созданный для упрощения, ускорения и автоматизации ежедневных рабочих задач, а также для унификации и стандартизации окружения и контроля качества программного кода. С момента создания как обертки над командной строкой приложение прошло путь эволюции и превратилось в «центр управления полетами». Если Xcode — это молот, то здесь создали наковальню.


Sideloading и узник Apple

Владимир Коржев

Сбер

Рассмотрим доступные механизмы установки iOS-приложений не из AppStore/TestFlight без использования Jailbreak.

Какой принцип работы у подписи приложения. Какие типы аккаунтов есть у Apple и как их можно использовать для подписи приложений. Взглянем на sideloading через призму AltStore и SideStore. Пощупаем платные учетки Apple и AppStore Connect API.
Также в программе — кросс-платформенная альтернатива Codesign, которая может работать в Linux-среде, и как организовать Ad Hoc-дистрибуцию приложений.


Надежность мобильных приложений: что это и как достичь

Андрей Зонов

Т-Банк

Доклад про опыт трех лет погружения в понимание надежности мобильного приложения, путь от Crashlytics до Real-time метрик и алертов с прода о проблемах пользователей.

Андрей расскажет про опыт Т-банка по обеспечению надежности, внедрение клиентской аналитики, метрик и наблюдение за всем в реальном времени. Рассмотрим по шагам, как внедрить в продукт наблюдаемость и как научить команду работать с метриками.


_VariadicView: подчеркивая скрытые возможности контейнеров

Эдуард Еленский

Ozon

В жизни каждого, кто работает с SwiftUI, наступает момент, когда он сталкивается с задачей создания кастомных контейнеров. Однако непросто сделать их такими же интуитивными, как нативные. В докладе разберемся, почему предоставленные Apple подходы не покрывают задачи этого рода, и как в их решении помогут полуприватные инструменты SwiftUI.


Расширяем iOS-разработку с помощью AI

Анна Жаркова

Usetech

В 2024 Apple анонсировали масштабное внедрение ИИ от OpenAI как в MacOS/ iOS, так и в инструменты разработки XCode. Однако ожидание и реальность совпали не для всех. Особенно по сравнению с Android.

Что делать, если хочется не отставать от прогресса и соблюсти конфиденциальность и безопасность проекта, а также подготовить инструмент под свой контент и задачи? Ответ: развернуть свое решение.

В докладе Анна покажет, как на основе открытых LLM построить свой инструмент, подготовить его к работе и обучить, подключить к расширениям XСode и использовать для ускорения и упрощения работы.


Федеративный ML на iOS: как уберечь данные пользователей в эпоху ИИ

Михаил Исаченко

Лаборатория Касперского

Поговорим о федеративном обучении — инновационном подходе, который позволяет моделям обучаться прямо на устройствах пользователей, сохраняя их данные локально, что значительно снижает риски и делает процесс более безопасным. Углубимся в тонкости работы с CoreML и coremltools для реализации такого подхода, обсудим принципы и архитектуру федеративного обучения в сравнении с централизованным обучением, а также рассмотрим практический пример интеграции модели в iOS-приложение для анализа сетевого трафика. Вы узнаете, как доставлять обновления модели и решать ключевые проблемы, включая безопасность и оптимизацию вычислений.


А ваше приложение похудело к лету?

Никита Краснов

Альфа-Банк

Разве кто-то еще задумывается над размером мобильного приложения, когда на iPhone памяти больше, чем на рабочем MacBook? Да и зачем это делать? Оказывается, еще задумываются.

Рассмотрим в теории и на практике, как помочь вашему приложению похудеть, сделав упор не на ресурсы внутри, а на то, сколько занимает ваш код и как, используя различные варианты сборки ваших модулей, добиться оптимизаций размера в несколько раз!


Переезд на Swift 6: строим графы для успешной миграции

Алексей Минин

hh.ru

Перевод проекта на Swift 6 кажется простой задачей. Но с чего начать? В hh.ru решили подойти к этому вопросу, начав с построения графа зависимостей и расчета критических путей, чтобы обеспечить контролируемую миграцию.

Алексей расскажет про весь путь миграции: от построения графа до разработки плана обновления проекта.


A11Y: масштабирование шрифтов в «Мой МТС»

Тимофей Харитонов

МТС Диджитал

Тимофей поделится опытом по внедрению Dynamic Type, в частности, масштабирования шрифтов в приложение «Мой МТС».

Масштабирование шрифтов обеспечивает удобство чтения и доступность контента для пользователей с ограниченными возможностями зрения. Тимофей подсветит, на что стоит акцентировать внимание при планировании внедрения этого функционала, поделится статистикой, а также расскажет о неочевидных подводных камнях и проблемах, с которыми в МТС сталкивались при разработке, и как их решали.


Пишем видеоплеер под iOS с нуля

Дамир Якупов

Ozon

Приложения с видео далеко ушли вперед за последнее время. AVPlayer не развивался и пригоден для кинотеатров с DRM. С ним сложно делать prefetch, контролировать загрузку и поддерживать кастомные форматы. В open source нет работоспособных решений, а написать плеер с нуля сложно.

Обсудим:

  • архитектуру простого видеоплеера;

  • устройство контейнера MP4, научимся парсить треки и собирать CMFormatDescription;

  • декодирование семплов с использованием медиафреймворков Apple;

  • синхронизацию отображения видео и проигрываемого аудио;

  • перемотку, столлы и как объединить слои в единую архитектуру;

  • какие оптимизации открывает полный контроль над работой видеоплеера.


Боевой Reverse Engineering и патчинг под Non-Jailbroken iOS-девайсы

Андрей Пробочкин

Грядет судный день — пришествие армии ботов. Тени сгущаются за горизонтом, и вскоре хлынут они в ваши владения, подменяя правду обманом, а человеческое — холодным расчетом кода, проникая незримо сквозь защиту, оставляя за собой лишь следы в логах.

Но зловредное искусство их познаваемо. Мы пройдем по тайной тропе реверс-инжиниринга: вооружимся IDA Pro, Frida, Xcode, разберем механику Fishhook и научимся подменять код, стирая границы между реальностью и манипуляцией. Узнаем, как обходят антифрод, патчат приложения, воруют куки и ломают API.

Но там, где есть взлом, есть и защита. Мы возведем барьеры: Device Check, iOSSecuritySuite, JA3. Разберем, как анализ API-логов разоблачает невидимых врагов.


Производительность под микроскопом: инструменты для мониторинга производительности iOS-приложений

Виталий Камашев

T-Банк

Виталий расскажет о важности мониторинга производительности приложения и его влиянии на бизнес-метрики. Рассмотрим, как сложно выявлять причины деградации производительности в условиях большой команды разработки и постоянных изменений в проекте.

Виталий поделится тем, как в Т-Банке справляются с этими вызовами, используя свои инструменты для мониторинга производительности, которые помогают отслеживать и оптимизировать производительность как на этапе разработки, так и в реальных условиях использования приложения пользователями.


Android

SQLite. Невероятно быстро

Михаил Поливаха

Сбер

Довольно часто мобильным приложениям приходится хранить какое-то состояние локально. Это может быть мотивировано отсутствием возможности вызова бэкенда, либо оптимизацией работы системы в целом, либо другими факторами. Довольно частый выбор — SQLite. Несмотря на то, что эта RDBMS не такая сложная, как те, которые непосредственно используют бэкенд (PostgreSQL, Oracle и т. д.), работать с БД надо уметь.

В докладе детально рассмотрим строение SQLite и то, как с ней работать, чтобы получить максимум для вашего конкретного кейса.


Память в Android, утечки и OOM

Евгений Васильев

Яндекс

У больших приложений с большой аудиторией встречается множество различных крашей. Особенно если приложение активно работает с графикой. И среди обычных крашей с понятным стектрейсом периодически появляются краши, связанные с нехваткой памяти.

В докладе Евгений расскажет, когда стектрейс поможет, а когда — нет. Разберемся, на что смотрит система при выборе процесса, который она хочет завершить ради освобождения памяти. Углубимся в детали, как работает память. И как правильно ее считать. А также рассмотрим очевидные и не очень способы поиска проблем с памятью.


Разработка видеоредактора

Кирилл Гаврилов

Яндекс

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


Как мы случайно ускорили релизную сборку в два раза

Роман Заремба

Т-Банк

Юрий Анисимов

Т-Банк

Роман и Юрий расскажут о том, как боролись за ускорение релизной сборки в мобильном банке и что из этого в итоге получилось. Разберем особенности релизной сборки, связанные с подрезкой (shrinking) кода и ресурсов. Посмотрим, как профилировать и анализировать работу R8, а также отдельных Gradle-тасок, участвующих в подготовке релизной версии приложения.


Нюансы работы Android Runtime в сравнении с HotSpot VM

Максим Сидоров

SberDevices

Во время исследования работы sequence и Java stream на стандартной HotSpot VM в Сбере получили интересные результаты, которые сильно отличаются от результатов работы в Android Runtime. Чтобы понять и объяснить причину таких расхождений, придется погрузиться в недра логов компиляции и нюансов работы виртуальной машины Android и стандартного HotSpot VM.

Спикер рассмотрит производительность работы не только ленивых преобразований, но и функциональных типов в Kotlin и поделится далекоидущими выводами.


Тестирование Compose по-новому: простота, надежность, гибкость

Алексей Тюрин

Exness

Тестирование Compose-приложений, будь то Android или Multiplatform, часто связано с нестабильными тестами, избыточным кодом и сложностью поддержки. Рассмотрим практические способы решения этих проблем: рекомендации Google, сравнение популярных инструментов и разбор реальных кейсов.

Особое внимание уделим фреймворку Ultron, получившему признание Kotlin Foundation. Рассмотрим, как он помогает решать реальные проблемы автотестов, например, работать с LazyList, управлять таймаутами, использовать SoftAssertions, а также эффективно управлять состоянием тестов и обработкой ошибок.


Поймай меня, если сможешь: как обнаружить Root и Frida

Таисия Бужинская

YADRO

Таисия расскажет об опыте решения проблемы по обнаружению эмуляторов, устройств с root-правами или кастомными прошивками. А еще познакомит с набором инструментов Frida, позволяющих внедрять код в другие приложения буквально на лету. Рассмотрит возможности и принцип работы этого тулкита и опишет метод по его обнаружению, который можно использовать в проекте.


Семантический Gradle: публикуем артефакты со спокойствием и уверенностью

Александр Газаров

Райффайзен Банк

Александр расскажет о том, как в Райффайзен Банке научили Gradle анализировать изменения в API и автоматически поднимать версии артефактов с соблюдением семантического версионирования. Заодно научимся некоторым приемам в Gradle, которые помогут писать плагины.


Rocket science в демонстрационном приложении

Артемий Луньков

Т-Банк

Из доклада вы узнаете, почему демоприложение вам необходимо как основа для процессов дизайн-ревью и скриншот-тестирования. И как сделать его наиболее архитектурно оптимальным, используя подход Storybook.js. И даже если вы далеки от дизайн-системы, вас заинтересуют используемые в Т-Банке технологии в области кодгена — Kotlin compiler plugin и более эффективный аналог KSP. Ведь эти решения могут пригодиться во множестве кейсов.


Путешествуем по дизайн-системе с KSP

Максим Зотеев

Яндекс Путешествия

Максим расскажет о том, насколько KSP облегчил жизнь в Путешествиях, с конкретными примерами: автоматическая генерация snapshot-тестов по одной только аннотации на Compose Preview и генерация контента всего storybook. Он расскажет об основных шагах, деталях и проблемах, с которыми сталкивались.


От идеи к CVE: как находить уязвимости в Android

Алёна Склярова

Positive Technologies

Алёна расскажет, как находить уязвимости в операционной системе Android, даст практические рекомендации: с чего лучше начать, как определиться с таргетом, какими методиками и инструментами пользоваться, на что обращать внимание. Обязательно учтем все детали, необходимые для создания качественного технического отчета.


Облегчаем жизнь больших экранов на Compose

Михаил Мальцев

RuStore

Михаил поделится удобным способом создания stateful-компонентов в условиях большого проекта в рамках API/Impl-архитектуры. Это поможет разгрузить сложные экраны и делать переиспользуемые UI-компоненты в условиях API/Impl и DI.


VK Звонки в лесу: звоним в плохих сетях

Иван Шафран

VK / VK Звонки

Александр Стрижаков

VK / VK Звонки

VK Звонки способны работать даже в условиях высокой потери пакетов и низкой пропускной способности сети. Хотя интернет в крупных городах стал быстрым и стабильным, поездки в метро, использование лифта или подключение к Wi-Fi в кафе по-прежнему создают проблемы с качеством связи.

Иван и Александр расскажут, как решили эту задачу на Android-клиенте и какие техники для аудио и соединения можно применить в вашем проекте для звонков.


Практики повышения стабильности SDK

Никита Алексеев

Яндекс

Никита объяснит, как обеспечить стабильность работы крупного SDK. Проблема, которую решают в Яндексе, заключается в своевременном обнаружении и устранении ошибок в продукте. Поскольку решение предоставляется для большого количества разработчиков, стабильность SDK становится критически важной.

Рассмотрим:

  • Способы предотвращения и обнаружения ошибок.

  • Инструменты мониторинга и аналитики.

  • Процессы обеспечения качества.

  • Проведение экспериментов и A/B-тестирования.


Kotlin

Наглядный пример, когда не стоит следовать best practices for coroutines от Google

Александр Таганов

Т-Банк

Александр покажет реальный пример из практики Т-Банка, когда следование best practices for coroutines ведет к проблемам. Разберемся, почему это происходит. Также спикер покажет, чем еще занимается main dispatcher. И расскажет, как избежать подобных проблем


Кроссплатформенное

Kotlin Multiplatform в большом проекте

Сергей Кришталь

Яндекс

На просторах интернета много информации о том, как написать Hello World на Kotlin Multiplatform (KMP). Но не так много информации о том, с чем вы столкнетесь, если захотите масштабно внедрить KMP в большой проект. Сергей расскажет про опыт команды мобильных Яндекс Карт и Навигатора.


Архитектура для кроссфункциональных команд

Юрий Дубовой

Делимобиль

Вопросы архитектуры в IT традиционно делятся на «общепринятые практики» и «велосипеды», однако граница между ними остается размытой.

Причина проста: архитектура должна эволюционировать вместе с ростом компании, и появление кросс-функциональных команд — один из неизбежных этапов такой эволюции. Как жить в общей кодовой базе и не мешать друг другу? Где взять сверханалитика, как избежать «трагедии общин», способна ли форма определить содержание? Существуют ли архитектурные подходы, общие для бэкенда и мобильных приложений? Об этом и расскажет вам Юрий.


TransmateSDK — ваш товарищ-полиглот

Богдан Костюченко

Т-Банк

Семён Бабакаев

Т-Банк

Библиотека runtime-переводов. Написана для двух платформ — iOS и Android (Swift + Kotlin). Богдан и Семён исследовали прямую корреляцию размера приложения на его загрузку и расскажут, как решить проблему с загрузкой приложений и безрелизной раскаткой локализации.


Миграция больших приложений на KMP: проблемы, подводные камни, решения

Павел Шорохов

Т-Банк

Павел поведает о том, с какими проблемами столкнулись в Т-Банке при миграции своего SDK аналитики в Т-Банке на KMP. Рассмотрим различные подходы, перспективы, тупики и решения.


Ставим приложения на iOS через Android

Иван Пестряков

VK / RuStore

Александр Юдин

VK / RuStore

Поговорим про разработку нативной части на С++, которая работает с iOS напрямую через провод. И про обертку этой нативной части, которая позволяет реализовать полноценную фичу.


Probator: эволюция UI-тестирования в Яндекс Картах

Максим Давыдов

Яндекс

Максим расскажет об эволюции подходов к тестированию UI приложения сразу на двух платформах — Android и iOS. Доклад будет обзорным, без ухода в технические детали. Из технологий затронем Espresso и XCTest, чуть глубже коснемся Kotlin Multiplatform.

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


История, принципы и концепции библиотеки навигации Decompose

Аркадий Иванов

X (ex. Twitter)

Decompose — это не просто еще одна библиотека навигации. Это мощный и гибкий инструмент для создания масштабируемых, типобезопасных и адаптируемых приложений под Android и Kotlin Multiplatform.

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

Также ознакомимся с основными API библиотеки, и узнаем как и почему так просто создавать свои модели навигации. Вы узнаете не только «как», но и «почему».


Цифровая доступность на практике. Воркшоп по Accessibility для iOS и Android

Работа с доступностью приложения — это вовлечение коллег на нескольких уровнях. В Яндексе научились запускать accessibility-проекты от объяснения важности задачи до тестирования и адаптации.

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


Flutter

Да кто такой этот ваш 2D скролл?

Фёдор Благодырь

Yappy

Поговорим про Two dimensional scroll во Flutter. Рассмотрим, какие проблемы он решает, какие есть решения из коробки, когда и почему все-таки стоит озадачиться собственной реализацией и при чем тут производительность.

Фёдор покажет на примере сложного кейса видеоредактора приложения Yappy возможности для оптимизации, которые помогли в некоторых случаях увеличить показатель FPS в 10 раз. Продемонстрирует сравнение замеров и графиков производительности «старой-костыльной» и новой-оптимизированной реализаций. Также продемонстрирует собственную реализацию на примере приложения с расписанием Mobius.


Бьем по рукам при помощи своего Dart-линтера

Иван Галкин

Surf

Иван покажет, какими способами можно реализовать кастомный линтер для Dart.

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

В конечном итоге реализуем архитектурное правило и обсудим аспекты, которые нужно учитывать.


Опасный Flutter… Или нет?

Марк Абраменко

Surf

Рассмотрим типичные уязвимости, с которыми сталкиваются Flutter-разработчики, и разберем, как улучшить безопасность без лишних сложностей. Вы узнаете, правда ли Flutter декомпилировать сложнее, чем натив и что о Flutter думают эксперты по безопасности.

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


Продакшен-опыт использования Flutter Web в Яндекс Смене

Алексей Приходько

Яндекс

Алексей расскажет про опыт продуктовой разработки на Flutter Web в рамках Яндекс Смены. Практические плюсы и минусы Flutter Web и почему в Яндексе после года разработки отказались от Flutter Web и переписали все на React.js


Изоляционно-плагинная архитектура в Dart-приложениях и ее переносимость на Flutter

Станислав Чернышев

ГУАП

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

Станислав продемонстрирует код и работу приложения с изоляционно-плагинной архитектурой как для Dart, так и для Flutter.


Заключение

Кроме перечисленных докладов, будет ещё выступление Программного комитета — его содержание пока в секрете, но там тоже пойдёт речь о том, что сейчас актуально для мобильных разработчиков.

В комментариях можно попробовать представить, какими окажутся темы на Mobius через пару лет, чем они будут отличаться от нынешних. «Как отобрать свою работу обратно у искусственного интеллекта»? :)

А нам остаётся напомнить главную информацию:

  • 9-10 апреля

  • Москва + онлайн

  • Другая информация и билеты — на сайте

До встречи на Mobius!

Теги:
Хабы:
+4
Комментарии0

Публикации

Информация

Сайт
jugru.org
Дата регистрации
Дата основания
Численность
51–100 человек
Местоположение
Россия
Представитель
Алексей Федоров