- BrainTools - https://www.braintools.ru -
Когда-то презентации новых iPhone и флагманов на Android приковывали внимание [1]. Теперь же люди шутят, что там под бесконечное «amazing» показывают то же, что и годом ранее. Сногсшибательных инноваций уже не происходит, о чём тогда гордо говорить на камеру?
С мобильными конференциями иначе. Там ожидают услышать не новую сенсацию, а полезный контент, помогающий мобильным разработчикам лучше выполнять свою работу. И вот такой контент с годами не закончился: тут всегда есть, куда копать. А по его темам можно отследить, как с годами разработка менялась.
Мы впервые провели Mobius [2] в 2014-м, ещё до появления iPhone X и Google Pixel. В апреле проведём его в очередной раз (в Москве с возможностью онлайн-участия). Каким именно контент будет на этот раз?
Программа уже готова, и представляем Хабру краткие описания докладов. Даже если вы сами не собираетесь участвовать в конференции, пробежаться взглядом всё равно может быть любопытно: это позволит понять, чем вообще живёт российская мобильная разработка в 2025-м.
iOS
Android
Kotlin
Кроссплатформенное
Flutter
Код, который не тормозит: секреты производительности на iOS [3]
Т-Банк
Кристиан покажет, как с помощью анализа кода и ряда оптимизаций удалось ускорить работу компонентов iOS-приложения в 5–10 раз и как это повлияло на основные метрики скорости приложения.
Обсудим идеи, стратегии и трюки, которые сделали возможным это улучшение, начиная с диагностики проблемы и заканчивая реализацией самых эффективных решений.
Ozon
Антон расскажет о части перформанса в SwiftUI, а конкретнее — о перерисовках. Доклад нацелен на тех, кто только переходит на SwiftUI или использует его не так давно, чтобы задаваться вопросами перформанс-ревью. Будет интересно разработчикам всех уровней. Главная цель доклада — преподнести перерисовку максимально простым языком и на примерах.
Молот и наковальня iOS-разработчика [5]
Райффайзен Банк
Райффайзен Банк
Вам расскажут о macOS-приложении RaifMagic — внутреннем инструменте Райффайзен Банка, который команда создала в рамках работы над мобильным приложением для клиентов.
RaifMagic — мощный инструмент для iOS-разработчиков, созданный для упрощения, ускорения и автоматизации ежедневных рабочих задач, а также для унификации и стандартизации окружения и контроля качества программного кода. С момента создания как обертки над командной строкой приложение прошло путь эволюции и превратилось в «центр управления полетами». Если Xcode — это молот, то здесь создали наковальню.
Сбер
Рассмотрим доступные механизмы установки iOS-приложений не из AppStore/TestFlight без использования Jailbreak.
Какой принцип работы у подписи приложения. Какие типы аккаунтов есть у Apple и как их можно использовать для подписи приложений. Взглянем на sideloading через призму AltStore и SideStore. Пощупаем платные учетки Apple и AppStore Connect API.
Также в программе — кросс-платформенная альтернатива Codesign, которая может работать в Linux-среде, и как организовать Ad Hoc-дистрибуцию приложений.
Надежность мобильных приложений: что это и как достичь [7]
Т-Банк
Доклад про опыт [8] трех лет погружения в понимание надежности мобильного приложения, путь от Crashlytics до Real-time метрик и алертов с прода о проблемах пользователей.
Андрей расскажет про опыт Т-банка по обеспечению надежности, внедрение клиентской аналитики, метрик и наблюдение за всем в реальном времени. Рассмотрим по шагам, как внедрить в продукт наблюдаемость и как научить команду работать с метриками.
_VariadicView: подчеркивая скрытые возможности контейнеров [9]
Ozon
В жизни каждого, кто работает с SwiftUI, наступает момент, когда он сталкивается с задачей создания кастомных контейнеров. Однако непросто сделать их такими же интуитивными, как нативные. В докладе разберемся, почему предоставленные Apple подходы не покрывают задачи этого рода, и как в их решении помогут полуприватные инструменты SwiftUI.
Расширяем iOS-разработку с помощью AI [10]
Usetech
В 2024 Apple анонсировали масштабное внедрение ИИ от OpenAI как в MacOS/ iOS, так и в инструменты разработки XCode. Однако ожидание и реальность совпали не для всех. Особенно по сравнению с Android.
Что делать, если хочется не отставать от прогресса и соблюсти конфиденциальность и безопасность проекта, а также подготовить инструмент под свой контент и задачи? Ответ: развернуть свое решение.
В докладе Анна покажет, как на основе открытых LLM построить свой инструмент, подготовить его к работе и обучить, подключить к расширениям XСode и использовать для ускорения и упрощения работы.
Федеративный ML на iOS: как уберечь данные пользователей в эпоху ИИ [11]
Лаборатория Касперского
Поговорим о федеративном обучении [12] — инновационном подходе, который позволяет моделям обучаться прямо на устройствах пользователей, сохраняя их данные локально, что значительно снижает риски и делает процесс более безопасным. Углубимся в тонкости работы с CoreML и coremltools для реализации такого подхода, обсудим принципы и архитектуру федеративного обучения в сравнении с централизованным обучением, а также рассмотрим практический пример интеграции модели в iOS-приложение для анализа сетевого трафика. Вы узнаете, как доставлять обновления модели и решать ключевые проблемы, включая безопасность и оптимизацию вычислений.
А ваше приложение похудело к лету? [13]
Альфа-Банк
Разве кто-то еще задумывается над размером мобильного приложения, когда на iPhone памяти [14] больше, чем на рабочем MacBook? Да и зачем это делать? Оказывается, еще задумываются.
Рассмотрим в теории и на практике, как помочь вашему приложению похудеть, сделав упор не на ресурсы внутри, а на то, сколько занимает ваш код и как, используя различные варианты сборки ваших модулей, добиться оптимизаций размера в несколько раз!
Переезд на Swift 6: строим графы для успешной миграции [15]
hh.ru
Перевод проекта на Swift 6 кажется простой задачей. Но с чего начать? В hh.ru решили подойти к этому вопросу, начав с построения графа зависимостей и расчета критических путей, чтобы обеспечить контролируемую миграцию.
Алексей расскажет про весь путь миграции: от построения графа до разработки плана обновления проекта.
A11Y: масштабирование шрифтов в «Мой МТС» [16]
МТС Диджитал
Тимофей поделится опытом по внедрению Dynamic Type, в частности, масштабирования шрифтов в приложение «Мой МТС».
Масштабирование шрифтов обеспечивает удобство чтения и доступность контента для пользователей с ограниченными возможностями зрения [17]. Тимофей подсветит, на что стоит акцентировать внимание при планировании внедрения этого функционала, поделится статистикой, а также расскажет о неочевидных подводных камнях и проблемах, с которыми в МТС сталкивались при разработке, и как их решали.
Пишем видеоплеер под iOS с нуля [18]
Ozon
Приложения с видео далеко ушли вперед за последнее время. AVPlayer не развивался и пригоден для кинотеатров с DRM. С ним сложно делать prefetch, контролировать загрузку и поддерживать кастомные форматы. В open source нет работоспособных решений, а написать плеер с нуля сложно.
Обсудим:
архитектуру простого видеоплеера;
устройство контейнера MP4, научимся парсить треки и собирать CMFormatDescription;
декодирование семплов с использованием медиафреймворков Apple;
синхронизацию отображения видео и проигрываемого аудио;
перемотку, столлы и как объединить слои в единую архитектуру;
какие оптимизации открывает полный контроль над работой видеоплеера.
Боевой Reverse Engineering и патчинг под Non-Jailbroken iOS-девайсы [19]
Грядет судный день — пришествие армии ботов. Тени сгущаются за горизонтом, и вскоре хлынут они в ваши владения, подменяя правду обманом, а человеческое — холодным расчетом кода, проникая незримо сквозь защиту, оставляя за собой лишь следы в логах.
Но зловредное искусство их познаваемо. Мы пройдем по тайной тропе реверс-инжиниринга: вооружимся IDA Pro, Frida, Xcode, разберем механику Fishhook и научимся подменять код, стирая границы между реальностью и манипуляцией. Узнаем, как обходят антифрод, патчат приложения, воруют куки и ломают API.
Но там, где есть взлом, есть и защита. Мы возведем барьеры: Device Check, iOSSecuritySuite, JA3. Разберем, как анализ API-логов разоблачает невидимых врагов.
Производительность под микроскопом: инструменты для мониторинга производительности iOS-приложений [20]
T-Банк
Виталий расскажет о важности мониторинга производительности приложения и его влиянии на бизнес-метрики. Рассмотрим, как сложно выявлять причины деградации производительности в условиях большой команды разработки и постоянных изменений в проекте.
Виталий поделится тем, как в Т-Банке справляются с этими вызовами, используя свои инструменты для мониторинга производительности, которые помогают отслеживать и оптимизировать производительность как на этапе разработки, так и в реальных условиях использования приложения пользователями.
SQLite. Невероятно быстро [21]
Сбер
Довольно часто мобильным приложениям приходится хранить какое-то состояние локально. Это может быть мотивировано отсутствием возможности вызова бэкенда, либо оптимизацией работы системы в целом, либо другими факторами. Довольно частый выбор — SQLite. Несмотря на то, что эта RDBMS не такая сложная, как те, которые непосредственно используют бэкенд (PostgreSQL, Oracle и т. д.), работать с БД надо уметь.
В докладе детально рассмотрим строение SQLite и то, как с ней работать, чтобы получить максимум для вашего конкретного кейса.
Память в Android, утечки и OOM [22]
Яндекс
У больших приложений с большой аудиторией встречается множество различных крашей. Особенно если приложение активно работает с графикой. И среди обычных крашей с понятным стектрейсом периодически появляются краши, связанные с нехваткой памяти.
В докладе Евгений расскажет, когда стектрейс поможет, а когда — нет. Разберемся, на что смотрит система при выборе процесса, который она хочет завершить ради освобождения памяти. Углубимся в детали, как работает память. И как правильно ее считать. А также рассмотрим очевидные и не очень способы поиска проблем с памятью.
Разработка видеоредактора [23]
Яндекс
Кирилл поделится техническими аспектами работы с видео и изображениями, включая применение шейдеров и процесс создания конечного видео для воспроизведения. Мы подробно обсудим, как интегрировать видеоредактор в мобильное приложение на платформе Android и какие подходы можно использовать для реализации видеоредакторов с нуля. Рассмотрим альтернативы шейдерам, их влияние на производительность и качество обработки видео, а также сложности, с которыми можно столкнуться при внедрении шейдеров.
Как мы случайно ускорили релизную сборку в два раза [24]
Т-Банк
Т-Банк
Роман и Юрий расскажут о том, как боролись за ускорение релизной сборки в мобильном банке и что из этого в итоге получилось. Разберем особенности релизной сборки, связанные с подрезкой (shrinking) кода и ресурсов. Посмотрим, как профилировать и анализировать работу R8, а также отдельных Gradle-тасок, участвующих в подготовке релизной версии приложения.
Нюансы работы Android Runtime в сравнении с HotSpot VM [25]
SberDevices
Во время исследования работы sequence и Java stream на стандартной HotSpot VM в Сбере получили интересные результаты, которые сильно отличаются от результатов работы в Android Runtime. Чтобы понять и объяснить причину таких расхождений, придется погрузиться в недра логов компиляции и нюансов работы виртуальной машины Android и стандартного HotSpot VM.
Спикер рассмотрит производительность работы не только ленивых преобразований, но и функциональных типов в Kotlin и поделится далекоидущими выводами.
Тестирование Compose по-новому: простота, надежность, гибкость [26]
Exness
Тестирование Compose-приложений, будь то Android или Multiplatform, часто связано с нестабильными тестами, избыточным кодом и сложностью поддержки. Рассмотрим практические способы решения этих проблем: рекомендации Google, сравнение популярных инструментов и разбор реальных кейсов.
Особое внимание уделим фреймворку Ultron, получившему признание Kotlin Foundation. Рассмотрим, как он помогает решать реальные проблемы автотестов, например, работать с LazyList, управлять таймаутами, использовать SoftAssertions, а также эффективно управлять состоянием тестов и обработкой ошибок.
Поймай меня, если сможешь: как обнаружить Root и Frida [27]
YADRO
Таисия расскажет об опыте решения проблемы по обнаружению эмуляторов, устройств с root-правами или кастомными прошивками. А еще познакомит с набором инструментов Frida, позволяющих внедрять код в другие приложения буквально на лету. Рассмотрит возможности и принцип работы этого тулкита и опишет метод по его обнаружению, который можно использовать в проекте.
Семантический Gradle: публикуем артефакты со спокойствием и уверенностью [28]
Райффайзен Банк
Александр расскажет о том, как в Райффайзен Банке научили Gradle анализировать изменения в API и автоматически поднимать версии артефактов с соблюдением семантического версионирования. Заодно научимся некоторым приемам в Gradle, которые помогут писать плагины.
Rocket science в демонстрационном приложении [29]
Т-Банк
Из доклада вы узнаете, почему демоприложение вам необходимо как основа для процессов дизайн-ревью и скриншот-тестирования. И как сделать его наиболее архитектурно оптимальным, используя подход Storybook.js. И даже если вы далеки от дизайн-системы, вас заинтересуют используемые в Т-Банке технологии в области кодгена — Kotlin compiler plugin и более эффективный аналог KSP. Ведь эти решения могут пригодиться во множестве кейсов.
Путешествуем по дизайн-системе с KSP [30]
Яндекс Путешествия
Максим расскажет о том, насколько KSP облегчил жизнь в Путешествиях, с конкретными примерами: автоматическая генерация snapshot-тестов по одной только аннотации на Compose Preview и генерация контента всего storybook. Он расскажет об основных шагах, деталях и проблемах, с которыми сталкивались.
От идеи к CVE: как находить уязвимости в Android [31]
Positive Technologies
Алёна расскажет, как находить уязвимости в операционной системе Android, даст практические рекомендации: с чего лучше начать, как определиться с таргетом, какими методиками и инструментами пользоваться, на что обращать внимание. Обязательно учтем все детали, необходимые для создания качественного технического отчета.
Облегчаем жизнь больших экранов на Compose [32]
RuStore
Михаил поделится удобным способом создания stateful-компонентов в условиях большого проекта в рамках API/Impl-архитектуры. Это поможет разгрузить сложные экраны и делать переиспользуемые UI-компоненты в условиях API/Impl и DI.
VK Звонки в лесу: звоним в плохих сетях [33]
VK / VK Звонки
VK / VK Звонки
VK Звонки способны работать даже в условиях высокой потери пакетов и низкой пропускной способности сети. Хотя интернет в крупных городах стал быстрым и стабильным, поездки в метро, использование лифта или подключение к Wi-Fi в кафе по-прежнему создают проблемы с качеством связи.
Иван и Александр расскажут, как решили эту задачу на Android-клиенте и какие техники для аудио и соединения можно применить в вашем проекте для звонков.
Практики повышения стабильности SDK [34]
Яндекс
Никита объяснит, как обеспечить стабильность работы крупного SDK. Проблема, которую решают в Яндексе, заключается в своевременном обнаружении и устранении ошибок в продукте. Поскольку решение предоставляется для большого количества разработчиков, стабильность SDK становится критически важной.
Рассмотрим:
Способы предотвращения и обнаружения ошибок.
Инструменты мониторинга и аналитики.
Процессы обеспечения качества.
Проведение экспериментов и A/B-тестирования.
Наглядный пример, когда не стоит следовать best practices for coroutines от Google [35]
Т-Банк
Александр покажет реальный пример из практики Т-Банка, когда следование best practices for coroutines ведет к проблемам. Разберемся, почему это происходит. Также спикер покажет, чем еще занимается main dispatcher. И расскажет, как избежать подобных проблем
Kotlin Multiplatform в большом проекте [36]
Яндекс
На просторах интернета много информации о том, как написать Hello World на Kotlin Multiplatform (KMP). Но не так много информации о том, с чем вы столкнетесь, если захотите масштабно внедрить KMP в большой проект. Сергей расскажет про опыт команды мобильных Яндекс Карт и Навигатора.
Архитектура для кроссфункциональных команд [37]
Делимобиль
Вопросы архитектуры в IT традиционно делятся на «общепринятые практики» и «велосипеды», однако граница между ними остается размытой.
Причина проста: архитектура должна эволюционировать вместе с ростом компании, и появление кросс-функциональных команд — один из неизбежных этапов такой эволюции. Как жить в общей кодовой базе и не мешать друг другу? Где взять сверханалитика, как избежать «трагедии общин», способна ли форма определить содержание? Существуют ли архитектурные подходы, общие для бэкенда и мобильных приложений? Об этом и расскажет вам Юрий.
TransmateSDK — ваш товарищ-полиглот [38]
Т-Банк
Т-Банк
Библиотека runtime-переводов. Написана для двух платформ — iOS и Android (Swift + Kotlin). Богдан и Семён исследовали прямую корреляцию размера приложения на его загрузку и расскажут, как решить проблему с загрузкой приложений и безрелизной раскаткой локализации.
Миграция больших приложений на KMP: проблемы, подводные камни, решения [39]
Т-Банк
Павел поведает о том, с какими проблемами столкнулись в Т-Банке при миграции своего SDK аналитики в Т-Банке на KMP. Рассмотрим различные подходы, перспективы, тупики и решения.
Ставим приложения на iOS через Android [40]
VK / RuStore
VK / RuStore
Поговорим про разработку нативной части на С++, которая работает с iOS напрямую через провод. И про обертку этой нативной части, которая позволяет реализовать полноценную фичу.
Probator: эволюция UI-тестирования в Яндекс Картах [41]
Яндекс
Максим расскажет об эволюции подходов к тестированию UI приложения сразу на двух платформах — Android и iOS. Доклад будет обзорным, без ухода в технические детали. Из технологий затронем Espresso и XCTest, чуть глубже коснемся Kotlin Multiplatform.
Вам покажут, как эволюция [42] UI-тестирования улучшает качество финального продукта и уменьшает сложности для мобильных разработчиков. Поэтапно будем рассматривать состояние фреймворка для тестирования, сложности, с которыми сталкивались в Яндексе, и решения, которые принимали.
История, принципы и концепции библиотеки навигации Decompose [43]
X (ex. Twitter)
Decompose — это не просто еще одна библиотека навигации. Это мощный и гибкий инструмент для создания масштабируемых, типобезопасных и адаптируемых приложений под Android и Kotlin Multiplatform.
Автор этой библиотеки расскажет историю ее создания и принципы и решения, которые выделяют Decompose: максимальная гибкость для соответствия практически любому проекту, отличная масштабируемость на средних и больших проектах, типобезопасность, настолько надежная, что если ваш код компилируется, то, скорее всего, он работает, и, конечно же, тестируемость.
Также ознакомимся с основными API библиотеки, и узнаем как и почему так просто создавать свои модели навигации. Вы узнаете не только «как», но и «почему».
Цифровая доступность на практике. Воркшоп по Accessibility для iOS и Android [44]
Работа с доступностью приложения — это вовлечение коллег на нескольких уровнях. В Яндексе научились запускать accessibility-проекты от объяснения важности задачи до тестирования и адаптации.
На воркшопе мы не только комплексно посмотрим на доступность (поговорим про процессы, роли и инструменты для поддержания), но и попробуем в реальном времени исправить ошибки [45] интерфейсов и адаптировать их для незрячих пользователей. Вы сами сделаете доступным приложение, а незрячий тестировщик попробует им воспользоваться.
Да кто такой этот ваш 2D скролл? [46]
Yappy
Поговорим про Two dimensional scroll во Flutter. Рассмотрим, какие проблемы он решает, какие есть решения из коробки, когда и почему все-таки стоит озадачиться собственной реализацией и при чем тут производительность.
Фёдор покажет на примере сложного кейса видеоредактора приложения Yappy возможности для оптимизации, которые помогли в некоторых случаях увеличить показатель FPS в 10 раз. Продемонстрирует сравнение замеров и графиков производительности «старой-костыльной» и новой-оптимизированной реализаций. Также продемонстрирует собственную реализацию на примере приложения с расписанием Mobius.
Бьем по рукам при помощи своего Dart-линтера [47]
Surf
Иван покажет, какими способами можно реализовать кастомный линтер для Dart.
Поднимем известные проблемы, связанные с архитектурой, масштабируемостью и командой, которые могут встретиться на любом проекте. Раскроем, как кастомный линтер может покрыть большинство этих проблем.
В конечном итоге реализуем архитектурное правило и обсудим аспекты, которые нужно учитывать.
Опасный Flutter… Или нет? [48]
Surf
Рассмотрим типичные уязвимости, с которыми сталкиваются Flutter-разработчики, и разберем, как улучшить безопасность без лишних сложностей. Вы узнаете, правда ли Flutter декомпилировать сложнее, чем натив и что о Flutter думают эксперты по безопасности.
Марк покажет, что Flutter подходит для проектов, требующих серьезных мер защиты, и вы уйдете с готовыми рекомендациями, которые легко внедрить в любой команде.
Продакшен-опыт использования Flutter Web в Яндекс Смене [49]
Яндекс
Алексей расскажет про опыт продуктовой разработки на Flutter Web в рамках Яндекс Смены. Практические плюсы и минусы Flutter Web и почему в Яндексе после года разработки отказались от Flutter Web и переписали все на React.js
Изоляционно-плагинная архитектура в Dart-приложениях и ее переносимость на Flutter [50]
ГУАП
Поговорим про способы добавления динамических операций в Dart и Flutter-приложения. Как можно посредством механизма изоляционных групп реализовать плагинную архитектуру для приложений, написанных на Dart. А самое главное — с помощью каких костылей применить данный подход для Flutter-приложений и какие при этом существуют ограничения.
Станислав продемонстрирует код и работу приложения с изоляционно-плагинной архитектурой как для Dart, так и для Flutter.
Кроме перечисленных докладов, будет ещё выступление [51] Программного комитета — его содержание пока в секрете, но там тоже пойдёт речь о том, что сейчас актуально для мобильных разработчиков.
В комментариях можно попробовать представить, какими окажутся темы на Mobius через пару лет, чем они будут отличаться от нынешних. «Как отобрать свою работу обратно у искусственного интеллекта»? :)
А нам остаётся напомнить главную информацию:
9-10 апреля
Москва + онлайн
Другая информация и билеты — на сайте [2]
До встречи на Mobius!
Автор: lelyakuznetsova
Источник [52]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/13339
URLs in this post:
[1] внимание: http://www.braintools.ru/article/7595
[2] Mobius: https://mobiusconf.com/?utm_source=habr&utm_medium=892376
[3] Код, который не тормозит: секреты производительности на iOS: https://mobiusconf.com/talks/d13f22b7e12c425288222e86721b2164/?utm_source=habr&utm_medium=892376
[4] Перерисовки в SwiftUI: https://mobiusconf.com/talks/6b7968e1ca1f4f51b4c14f038c8a9fee/?utm_source=habr&utm_medium=892376
[5] Молот и наковальня iOS-разработчика: https://mobiusconf.com/talks/d853e192b3d9412290c755752003c258/?utm_source=habr&utm_medium=892376
[6] Sideloading и узник Apple: https://mobiusconf.com/talks/01b0db3c5b5b40b6ad9749b35c3a07d1/?utm_source=habr&utm_medium=892376
[7] Надежность мобильных приложений: что это и как достичь: https://mobiusconf.com/talks/333bcae068b1429ab5b7acecf3d4adb6/?utm_source=habr&utm_medium=892376
[8] опыт: http://www.braintools.ru/article/6952
[9] _VariadicView: подчеркивая скрытые возможности контейнеров: https://mobiusconf.com/talks/e7400766dc8644c8bed4619bc19b9808/?utm_source=habr&utm_medium=892376
[10] Расширяем iOS-разработку с помощью AI: https://mobiusconf.com/talks/48175709c7874377986fb62390cfca81/?utm_source=habr&utm_medium=892376
[11] Федеративный ML на iOS: как уберечь данные пользователей в эпоху ИИ: https://mobiusconf.com/talks/be5a1d29935648548207efd961f6c5f4/?utm_source=habr&utm_medium=892376
[12] обучении: http://www.braintools.ru/article/5125
[13] А ваше приложение похудело к лету?: https://mobiusconf.com/talks/cd5117f17573492b8119ca8563f6ea42/?utm_source=habr&utm_medium=892376
[14] памяти: http://www.braintools.ru/article/4140
[15] Переезд на Swift 6: строим графы для успешной миграции: https://mobiusconf.com/talks/7347cdb4fc7849d78875a3e747934d73/?utm_source=habr&utm_medium=892376
[16] A11Y: масштабирование шрифтов в «Мой МТС»: https://mobiusconf.com/talks/b4bbf5d3eb8649f5b23a70fb2bb210b8/?utm_source=habr&utm_medium=892376
[17] зрения: http://www.braintools.ru/article/6238
[18] Пишем видеоплеер под iOS с нуля: https://mobiusconf.com/talks/b1127f00cf40472685c4b882b770888c/?utm_source=habr&utm_medium=892376
[19] Боевой Reverse Engineering и патчинг под Non-Jailbroken iOS-девайсы: https://mobiusconf.com/talks/fb398324542b43a89faf23cb06dd0d07/?utm_source=habr&utm_medium=892376
[20] Производительность под микроскопом: инструменты для мониторинга производительности iOS-приложений: https://mobiusconf.com/talks/6eed67d62d5f49a181b6f77c09528d2a/?utm_source=habr&utm_medium=892376
[21] SQLite. Невероятно быстро: https://mobiusconf.com/talks/3cf09861b5424064bcd73bb840b5b06e/?utm_source=habr&utm_medium=892376
[22] Память в Android, утечки и OOM: https://mobiusconf.com/talks/b46a77b68e854d8c970041684abc1a54/?utm_source=habr&utm_medium=892376
[23] Разработка видеоредактора: https://mobiusconf.com/talks/e8f429ba2b504ee2b0136ad2745ca2c9/?utm_source=habr&utm_medium=892376
[24] Как мы случайно ускорили релизную сборку в два раза: https://mobiusconf.com/talks/84730d6b0af44b24937c1f934d7e71a1/?utm_source=habr&utm_medium=892376
[25] Нюансы работы Android Runtime в сравнении с HotSpot VM: https://mobiusconf.com/talks/655c22b84c3f4fdcaf7b4fdc01c3f1d1/?utm_source=habr&utm_medium=892376
[26] Тестирование Compose по-новому: простота, надежность, гибкость: https://mobiusconf.com/talks/cbb8c31c3ebd43979c5f09b8efcea1c5/?utm_source=habr&utm_medium=892376
[27] Поймай меня, если сможешь: как обнаружить Root и Frida: https://mobiusconf.com/talks/0e3996e5f9d64736af1ae56b071ef6e9/?utm_source=habr&utm_medium=892376
[28] Семантический Gradle: публикуем артефакты со спокойствием и уверенностью: https://mobiusconf.com/talks/df4322352ade457bae179c02adf9277b/?utm_source=habr&utm_medium=892376
[29] Rocket science в демонстрационном приложении: https://mobiusconf.com/talks/da019de6c6764407b1f85fc2098ca869/?utm_source=habr&utm_medium=892376
[30] Путешествуем по дизайн-системе с KSP: https://mobiusconf.com/talks/8742689c468649e98bd340b6ef784e62/?utm_source=habr&utm_medium=892376
[31] От идеи к CVE: как находить уязвимости в Android: https://mobiusconf.com/talks/426a226f430647a5a8e2ba3fe0be171d/?utm_source=habr&utm_medium=892376
[32] Облегчаем жизнь больших экранов на Compose: https://mobiusconf.com/talks/1201caeb9b4f4c86b4079c30a178e2a7/?utm_source=habr&utm_medium=892376
[33] VK Звонки в лесу: звоним в плохих сетях: https://mobiusconf.com/talks/0dfd0205fd864b8d99a8230bb3b7b063/?utm_source=habr&utm_medium=892376
[34] Практики повышения стабильности SDK: https://mobiusconf.com/talks/e5ad84aead144841bbffc66ab2cfd5cb/?utm_source=habr&utm_medium=892376
[35] Наглядный пример, когда не стоит следовать best practices for coroutines от Google: https://mobiusconf.com/talks/1d453a49cb5043e1ae5f1af3d4b94cf8/?utm_source=habr&utm_medium=892376
[36] Kotlin Multiplatform в большом проекте: https://mobiusconf.com/talks/af1be153c3df4a7f95ba59ab3270bcbc/?utm_source=habr&utm_medium=892376
[37] Архитектура для кроссфункциональных команд: https://mobiusconf.com/talks/c0ecc6c180b349f68513b8ac851e14ff/?utm_source=habr&utm_medium=892376
[38] TransmateSDK — ваш товарищ-полиглот: https://mobiusconf.com/talks/986c431d70be43298479215b033e42bd/?utm_source=habr&utm_medium=892376
[39] Миграция больших приложений на KMP: проблемы, подводные камни, решения: https://mobiusconf.com/talks/25dc57303a8d4ed59f0c54c171e96e8c/?utm_source=habr&utm_medium=892376
[40] Ставим приложения на iOS через Android: https://mobiusconf.com/talks/203930ba8810498f99dd49c1c7b874a2/?utm_source=habr&utm_medium=892376
[41] Probator: эволюция UI-тестирования в Яндекс Картах: https://mobiusconf.com/talks/b6ede4735dba41f08101ba9a6ca00b09/?utm_source=habr&utm_medium=892376
[42] эволюция: http://www.braintools.ru/article/7702
[43] История, принципы и концепции библиотеки навигации Decompose: https://mobiusconf.com/talks/3a90577c5a1b46b499b6ba702c77d531/?utm_source=habr&utm_medium=892376
[44] Цифровая доступность на практике. Воркшоп по Accessibility для iOS и Android: https://mobiusconf.com/talks/c47ec4a9d467410aa8d9200d10b15cd6/?utm_source=habr&utm_medium=892376
[45] ошибки: http://www.braintools.ru/article/4192
[46] Да кто такой этот ваш 2D скролл?: https://mobiusconf.com/talks/e92eef21930c4d8bb84ff5781ddd3066/?utm_source=habr&utm_medium=892376
[47] Бьем по рукам при помощи своего Dart-линтера: https://mobiusconf.com/talks/fa2c6c06f59a4ac09679f6337148c6d0/?utm_source=habr&utm_medium=892376
[48] Опасный Flutter… Или нет?: https://mobiusconf.com/talks/534baa92a39e43e59862800af0edfcf1/?utm_source=habr&utm_medium=892376
[49] Продакшен-опыт использования Flutter Web в Яндекс Смене: https://mobiusconf.com/talks/be6a683c0e91428a9fc84eed35b2dfd9/?utm_source=habr&utm_medium=892376
[50] Изоляционно-плагинная архитектура в Dart-приложениях и ее переносимость на Flutter: https://mobiusconf.com/talks/2b00e06c472e43c89dd8cf77a78aeef6/?utm_source=habr&utm_medium=892376
[51] выступление: https://mobiusconf.com/talks/0ee47dba94b744fa8329ae132f99a336/?utm_source=habr&utm_medium=892376
[52] Источник: https://habr.com/ru/companies/jugru/articles/892376/?utm_source=habrahabr&utm_medium=rss&utm_campaign=892376
Нажмите здесь для печати.