Кое-что на ближайшей конференции Mobius будет необычно. Два дня она будет проходить в Москве (с возможностью онлайн-участия), а ещё два дня в интернете — такого масштабного сочетания офлайна с онлайном на Mobius ещё не было.
А кое-что остаётся привычным: это по-прежнему конференция по мобильной разработке, где в докладах не вода и общие темы, а техническая конкретика. За четыре дня докладов будет много, сейчас они уже известны — и мы представляем Хабру все их описания. Для удобства снабдили здесь описания значками ???? (Android), ???? (iOS), ♾️ (не привязанные к платформе), ????(Flutter). И поделили на тематические блоки (но порой это деление условное, один доклад может хорошо подходить в две категории сразу).
Оглавление
Тренды
Архитектура
Под капотом
UI/UX в мобильной разработке
Качество продукта
Инфраструктура
Тренды
♾️ Генератор межъязыковых мостов для мобильных приложений PyDjinni
Глеб Игумнов
Тензор
В докладе пойдет речь о системе PyDjinni, которая служит для автоматической генерации межъязыковых мостов C++<=>Swift и C++<=>Kotlin на основании псевдокода, описывающего необходимые сущности. Эта система используется для разработки мобильных приложений под iOS и Android, имеющих общее ядро, написанное на C++. Благодаря автоматической генерации мостов можно избавить прикладных программистов от написания большого количества сложного boilerplate-кода.
♾️ Compose Multiplatform для iOS и Android
Кирилл Аникин
Яндекс.Маркет
Как писать на Compose для обеих платформ? Если JetBrains что-то ещё не добавили, как добавить это самому? Что происходит, когда Compose рисует вьюшки для обеих платформ?
Мастер-класс для iOS- и Android-разработчиков всех уровней, который также будет полезен и веб-разработчикам. Технологии: Compose Multiplatform, Kotlin, Android, iOS, Xcode, Android Studio.
Константин Семочкин
Дзен
Константин расскажет о том, как они в Дзене внедряют КММ с минимальным участием со стороны iOS и почему так сложилось. Он опишет особенности работы с кодом КММ как библиотеки. Спикер постарается упростить жизнь IOS-разработчикам и улучшить их впечатление о технологии. Вы сможете обсудить KMM-тесты и то, какие подходы можно использовать при их написании. И другие полезные мелочи.
♾️ Compose for iOS под капотом
Алексей Гладков
Тинькофф
Доклад Алексея — это попытка заглянуть в то, как устроен Compose для iOS внутри. Он расскажет о том, какие проблемы приходится решать инженерам JetBrains, чтобы сделать адаптацию, и в какой стадии сейчас разработка.
♾️ ОС Аврора и Flutter. Статус поддержки
Денис Глазков
Открытая Мобильная Платформа
Фреймворк Flutter является кроссплатформенным только потому, что кто-то уже спортировал его на популярные операционные системы. Настала очередь команды ОМП добавить поддержку Flutter в ОС Аврора. Доклад будет посвящен процессу и особенностям портирования фреймворка Flutter на ОС Аврора, а также тому, как можно писать Flutter-приложения под ОС Аврора.
???? Lobzik: полуавтоматическая модуляризация Android-проекта
Миша Левченко
Авто.ру
В любом крупном Android-проекте рано или поздно возникает необходимость разбить его на модули. Что делать, если вы все-таки начали модуляризацию слишком поздно и у вас уже есть огромных размеров монолит из сотен тысяч строк кода и сотен экранов? Иногда даже совсем небольшие фичи тянут множество зависимостей и требуют сложного рефакторинга. Как понять, откуда начать, как масштабировать этот процесс и довести его в итоге до конца?
Миша проанализировал разные алгоритмы поиска сообществ в графах и создал инструмент, который стал его путеводителем в решении задачи модуляризации. Ориентируясь на различные метрики, можно предсказывать, на сколько модулей будет оптимально разбить ваш монолит, какие классы должны войти в них и с каких модулей лучше начинать.
???? Как мы делали новую iOS-камеру ВКонтакте и VK Клипов
Никита Савинов
ВКонтакте, VK Клипы
Никита опишет камеру ВКонтакте с продуктовой точки зрения до прихода команды VK Клипов. Он расскажет, какой API предоставляет Apple для взаимодействия с системной камерой (фреймворк AVFoundation) и какая обертка была написана поверх этого API. Затем он опишет то, чего не хватало клипам — умения распознавать на кадрах жесты и лица и сегментировать людей и небо. Он объяснит построение флоу фильтров для кадров с камеры и поделится техниками использования моделей CoreML для распознавания.
Вы услышите про способы решения проблем с перфомансом, про то, как менять FPS для камеры, и про кастомные форматы. В докладе также описывается польза EXIF-формата и устройство Camera FOV.
Спикер расскажет про замеры работы ML-моделей и Apple ARKit-распознавания и объяснит, зачем имплементировать AR Session. Он покажет их решение проблемы совместной работы AR и AV-сессий и их архитектурную реализацию новой камеры.
???? О дивный новый мир со Swift Concurrency
Кирилл Володин
Тинькофф
Кирилл расскажет о том, как и ради чего в Тинькофф решили внедрить Swift Concurrency: какие требования предъявляли к новому инструменту и какие альтернативы рассматривали.
Он опишет проблемы, с которыми столкнулись, и то, как их решали (особенно в тестировании) через разработку собственных инструментов. Спикер покажет best practice, разработанные при написании кода со Swift Concurrency. А ещё напомнит про акторную модель и покажет, как может измениться написание кода фичи при ее использовании. И, конечно, как постепенно мигрировать на данное решение, какой стратегии стоит придерживаться, и почему за Swift Concurrency будущее.
Архитектура
♾️ Управление сложностью состояния
Сергей Опивалов
Gradle Inc.
UDF — это длительный тренд в архитектуре презентационного слоя. Несмотря на то, что UDF призван упростить работу с состоянием, в сложных фичах легко потерять контроль над большим количеством ивентов/месседжей/экшенов и возможных стейтов.
Доклад Сергея продолжает и развивает доклад «The Elm Architecture in Prod» с предыдущего Mobius, где обсуждали основные компоненты возможной UDF-архитектуры и показывали на практике, как можно контролировать сложность состояния в UDF.
Вдохновение для доклада черпалось из статьи «What Makes a Rule Complex?» American Economic Review, наложенного на собственные представления спикера об архитектуре. Помимо этого, в докладе есть своего рода трибьют выступлению Рича Хикки «Simple Made Easy».
♾️ Декларативная архитектура и навигация с Decompose
Алексей Панов
Контур
В современных мобильных приложениях декларативный подход все чаще вытесняет императивный. Вы, наверняка, слышали о плюсах использования однонаправленного потока данных или о преимуществах декларативных UI-фреймворков. Но все же этого не достаточно, чтобы сделать архитектуру по-настоящему декларативной: здесь не хватает еще одного важного кирпичика — декларативной навигации.
В докладе Алексей расскажет, что такое декларативная навигация и какие проблемы она решает. На реальном примере покажет, как реализовать такую навигацию с помощью библиотеки Decompose. Поговорит, как декларативная архитектура в связке с технологией Kotlin Multiplatform Mobile позволяет переиспользовать максимальное количество кода между платформами, тем самым значительно ускоряя и удешевляя разработку. Наконец, поделится опытом интеграции такой архитектуры с декларативными UI-фреймворками Jetpack Compose и SwiftUI.
♾️ Modern MVI и MVVM+ со всех сторон в 2023
Артём Шендрик
Linen Wallet
Существует множество библиотек, решающих задачу эффективно организовать работу с состоянием в приложении. Но решают различными путями, например: MVI, MVVM+, SAM, State Machine. Что дает довольно большую фрагментацию и может усложнять выбор в конкретных командах. Существующие сравнительные обзоры довольно старые и охватывают лишь малую часть библиотек их различий.
Недавно Артём проводил исследование более 15 разных существующих решений. Подробно разобрался в плюсах и минусах, возможностях, вариантах архитектуры, производительности, поддержке KMP, Compose. Теперь он хочет рассказать о полученных данных и выводах из них.
Спикер также проверил гипотезу о том, есть ли возможность объединить все сильные стороны строгого MVI/Redux подхода с гибкостью, простотой чтения и поддержки MVVM+. Он расскажет об этом на примере Fluxo MVI и о том, какой ценой можно объединить эти подходы и совместить очень простое использование со строгостью тестирования, автоверификации и многим другим.
Анна Саботович
Альфа-Банк
Как изменить текст на кнопке без релиза мобильного приложения? Как показать пользователю новые экраны, если приложение удалили из официальных магазинов? Для решения этих вопросов на помощь приходит Backend Driven UI — подход, когда экраны на фронте настраиваются с помощью сервера.
Анна покажет, как они применяют BDUI в Альфа-Банке и как собирают продуктовую аналитику, когда пользователь взаимодействует с экраном BDUI. Такой экран не содержит бизнес-логики, а является списком абстрактных полей. Как же тогда формировать события аналитики, когда неизвестен смысл пришедших полей?
В команде решили, что раз бэкенд управляет отображением, то логично, что он же должен и настраивать аналитику, и назвали это «Backend Driven Аналитикой». С ее помощью они могут добавлять и менять состав событий аналитики на бэкенде — без релизов фронта.
???? Универсальные пуши для Android. FCM, HMS и RuStore в одном месте
Артём Ковардин
RuStore
Доклад про реализацию сервиса для рассылки пушей одновременно через Firebase, RuStore и HMS. Артем расскажет, с какими проблемами они столкнулись и какие решения приняли. Он также опишет то, что их сервис предлагает разработчикам и чем они лучше других. Вы узнаете, какие перспективы есть у пушей, независимых от Firebase.
???? Готовим конфигурацию Android-приложения с помощью Dynamic Proxy и рефлексии
Анатолий Гусев
RuStore
Анатолий расскажет о том, как спроектировать систему холодной конфигурации для Android-приложения. Он опишет существующие подходы, их плюсы и минусы. Спикер объяснит, как в идеале должны работать конфиги и на какие компромиссы имеет смысл идти в случае многомодульного приложения.
???? Ошибки при проектировании публичного API наших библиотек, и как мы их решали
Абакар Магомедов
Альфа-Банк
Абакар расскажет, как у них в команде появились внутренние библиотеки и какую цель они должны были выполнять. Затем он опишет, как росло число этих библиотек и количество связей между ними. Публичный API этих библиотек не всегда был спроектирован грамотно, и это начало приносить проблемы. Спикер пройдется по основным проблемам, с которыми они столкнулись, и покажет, как они их решали. А в конце поделится выводами, которые они сделали для себя на этом этапе.
???? Kodein в Android. Что за зверь и как его готовить
Максим Качинкин
Dodo Engineering
Максим расскажет про DI-фреймворк Kodein и то, как его применять в Android. В Dodo Engineering используют Kodein на проекте Drinkit — вы услышите про его плюсы и минусы на опыте реального проекта. Спикер сравнит его с другими популярными фреймворками: Dagger 2 и Koin. Он расскажет, как подружить KMM и Compose и как можно проверить целостность графа.
???? Декларативная навигация в iOS-приложении
Андрей Зонов
Тинькофф
Подходы к навигации в модульных проектах: роутинг, декомпозиция, декларативные подходы.
Андрей поделится практическим опытом из текущего проекта интеграции диплинков для модулей, использующихся в разных приложениях. Он поговорит о проблемах, с которыми они столкнулись, и решениях, к которым пришли в итоге.
???? Архитектура сложных клиентских приложений
Юрий Дубовой
Делимобиль
В докладе будет представлен современный взгляд на архитектуру и методологию разработки сложных клиентских приложений. Здесь слово «клиентских» означает независимость от платформы (iOS, Android, Web, Qt и т.п), а «сложных» — подразумевает наличие как синхронизируемого с бэкендом клиентского состояния, так и множественных источников событий. Основной упор будет сделан на обеспечение тестируемости (unit-тесты и интеграционные тесты), наглядности (отображение UML-диаграмм в код) и пластичности (устойчивость к изменениям).
Под капотом
Максим Сидоров
SberDevices
В Kotlin существует мощный механизм ленивой обработки коллекций, но многие разработчики боятся его использовать, так как не понимают, как он работает внутри.
Максим сравнит два подхода к обработке коллекций: обычный и ленивый через sequence. Он рассмотрит, как работают под капотом большинство конструкций sequence. Но самое главное — он измерит на конкретных цифрах, насколько корректно правило CouldBeSequence, и в каких случаях использование sequence дает реальный выигрыш, а в каких — проигрыш. «На десерт» будет немного оптимизации. Да-да, оригинальные функции Kotlin не всегда работают оптимально.
Gianfranco Papa
Somnio Software
We all know that Dart is the secret sauce of Flutter. But, did you know that Dart is also a great programming language for developing a Backend? In this talk, we will present different types of backends that can be developed with Dart. We'll explore some of the most well-known frameworks, like dart frog and serverpod, while we compare the benefits of each of them. At the end of the talk, you will have a more clear understanding of how to start with Dart in the backend and start developing full-stack apps with Dart.
???? Прокрутка во Flutter. Меняем законы физики
Артём Зайцев
Скролл — неотъемлемая часть современного мобильного приложения. Мы крутим списки, карусели, карты... И вроде бы все просто, привычно, и нам не стоит прилагать никаких усилий, особенно, когда речь идет о таких высокоуровневых фреймворках, как Flutter. Но вдруг нам требуется задать особенные характеристики скролла, изменить физику, или, наконец, добиться, чтобы было «как на iOS». Как быть с этим?
Артем ответит на эти вопросы в докладе. Он пройдется по основным аспектам прокрутки, расскажет, кто участвует в данном процессе, и уделит особенное внимание классу ScrollPhysics.
Никита Куликов
Flipper Devices
BLE изначально задуман как технология для обмена данными с низкой скоростью. Но что если мы хотим обновить прошивку на подключенном устройстве? Или собрать логи? Или отправить файл? Тогда нам нужно выжать максимум скорости из BLE. Про это и пойдет речь в докладе: как работает BLE, какие параметры у него есть и что изменить для ускорения.
???? Как Google победил фрагментацию в Android
Кирилл Розов
Тинькофф
Фрагментация в Android доставляет разработчикам множество проблем с начала существования Android ОС. В самом начале Google было не до этого и решались другие проблемы, в то время как снежный ком разрастался.
В итоге мы увидели Android Support Library (сейчас известную как Android Jetpack), ActionBarSherlock и множество других решений. Начиная с Android 8.0, Google запустил процесс, в рамках которого начал упрощать обновление ОС и забирать больше контроля себе, упрощая тем самым процесс адаптации новой версии Android для вендоров.
Project Treble, HAL, Project Mainline, Dynamic System Updates и другие улучшения изменили Android, и уже сейчас мажорные обновления ОС имеют все меньшее значение для пользователей, так как Google научился доставлять новые функции на старые версии ОС.
В своем докладе Кирилл подробно разберет всю эволюцию Android на пути борьбы с проблемой фрагментации ОС.
???? По ту сторону EditText. Программная клавиатура в Android
Вадим Черненко
Яндекс
Дмитрий Дегтярёв
Яндекс
Спикеры расскажут про принципы разработки и интеграции программных клавиатур в Android и настройку EditText под различные задачи. Они рассмотрят Android SDK в точке коммуникации между полями ввода и сервисом клавиатуры. Далее вы услышите про причины возможных проблем взаимодействия приложений с InputMethodManager и узнаете, как корректно настроить EditText для различных сценариев. Дмитрий и Вадим опишут взаимодействия с полями ввода со стороны приложения клавиатуры и покажут, как разработать собственное.
???? Корутинные загадки
Антон Дудаков
Ziina
Владимир Меркурьев
Ziina
Полудоклад-полуигра: спикеры будут показывать код с корутинами и спрашивать, что в нем должно случиться, а слушатели будут выбирать варианты ответов. После этого будет запускаться живой код и оцениваться то, что получилось на самом деле. Затем будем разбор того, почему все именно так. Кто выберет больше всего правильных вариантов — тот и победил.
Будут примеры с синхронизацией и конкурентной работой, отмена корутин и неочевидности Kotlin Flow.
???? Здоровье вашей Gradle-сборки
Сергей Боиштян
Авито
Обсудим контекст: кому и когда нужно следить за своей сборкой. Сценарии, когда сборка может заболеть. Сергей расскажет про их случаи из практики, из-за которых сборка становилась медленнее. Он обсудит инструменты и подходы для наблюдения за сборками. Спикер расскажет, как они мерят влияние деградации и выбирают, что ускорять.
???? Кнопки красить — это вам не деревья вертеть
Евгений Ёлчев
ВКонтакте
На примере обычной кнопки Евгений расскажет, почему верстка интерфейса не так проста, как кажется на первый взгляд, и почему объяснить процесс создания UI-элемента порой сложнее, чем рассказать об алгоритмах работы с деревьями.
???? Жизненный цикл объектов SwiftUI
Дмитрий Куркин
Spark Networks
SwiftUI — это не только удобный метод создания UI, но и магические State и Environment. Эти новые типы данных имеют не самое очевидное поведение. В докладе рассматриваются нюансы их создания, времени жизни, а также доступа и удаления.
Тема перекликается с докладом «Demystify SwiftUI» с конференции WWDC21, но спикер пойдет дальше с отладчиком, call stack и указателями.
???? Показываем красивое с помощью видеоредактора в VK Клипах на iOS
Михаил Дементьев
ВКонтакте
Михаил расскажет, как под капотом устроен фреймворк от Apple по работе с видео и аудио — AVFoundation. Он разберет и основы библиотеки (для тех, кто еще не работал с ней), и более интересные вещи, такие как: реверс видео (AVAssetReader и AVAssetWriter), трансформации, фильтры и стикеры (кастомный AVVideoCompositing), звуковые эффекты (AVAudioEngine) и другие. Спикер расскажет про проблемы, с которыми может столкнуться любой разработчик, использующий библиотеку AVFoundation, и которые из-за скудной документации приходится решать опытным путем. Он также поделится тем, как с ними справились в VK Клипах.
Выступление будет полезно как тем, кто еще никогда не работал с AVFoundation и хочет разобраться с ней, чтобы, к примеру, внедрить в свои проекты нативные решения по работе с видео от Apple, так и тем, кто уже достаточно много ее использует и хочет открыть для себя больше возможностей.
???? SwiftUI? Может лучше DoomUI? Пишем свой рендеринг графики на SwiftUI и запускаем на нем Doom
Денис Кудинов
Лаборатория Касперского
Соберем Doom и запустим на iOS с использованием в качестве пикселей все, начиная от квадратов и заканчивая UI-элементами из библиотеки SwiftUI. Сессия в формате исследования, получение удовольствия от процесса и результата. Плюс рефлексия на тему качества кода, которому уже 30 лет, и он по-прежнему собирается. Будет C, SwiftUI, капелька математики и много фана.
???? Как приручить iPhone, или Общаемся с телефоном по проводу
Евгений Онуфрейчик
Альфа-Банк
Однажды Евгению пришлось разбираться с тем, как можно установить приложение по проводу на телефон. Во время решения этой задачи он углубился в процесс взаимодействия телефона с ноутбуком и таким образом получился этот доклад.
Спикер расскажет о том, каким образом можно организовать общение iPhone с ноутбуком. Посмотрим, что происходит во время запроса на доверие в смартфоне. Перехватим некоторые запросы к телефону и посмотрим, какие возможности это нам дает.
А в конце доклада посмотрим на различные готовые решения, которые позволяют упростить часть задач при работе с телефоном.
???? Новые подходы к работе с регулярными выражениями в Swift. Просто о сложном
Илья Мирусин
Газпромбанк
Илья сравнит преимущества нового фреймворка RegexBuilder с устоявшимися подходами в использовании класса NSRegularExpression из библиотеки Foundation. Все это на примерах и с разбором практик его применения.
Он начнет с разговора о трендах Apple: что привело к появлению RegexBuilder. Почему инструменты из Foundation оказались недостаточными для решения задач работы с регулярными выражениями. Была ли неэффективность в «старом» подходе, что потребовало его замены? Были ли иные пути модификации NSRegularExpression?
Далее спикер расскажет, что внутри RegexBuilder, в чем отличие одного компонента от другого, какие есть случаи его применения и так ли он лучше предшественника.
Затем Илья перейдет к практической реализации использования нового подхода. Сравнит на кейсах, как одни и те же задачи применения регулярных выражений решаются с использованием нового фреймворка.
В завершении выступления он ответит на вопрос: зачем Apple очередной декларативный фреймворк и к чему этот тренд идет.
UI/UX
???? Упрощаем и укрощаем UI для Android с помощью аннотаций
Анна Жаркова
Usetech
Даже в самом сбалансированном приложении, написанном по всем канонам Clean Code, найдется немало узких мест, избыточного и повторяющегося кода, который можно было бы упростить. Для нативных приложений Android это не только бизнес-логика, но также и UI: экраны, контролы и их стилизация, работа со списками, навигацией и многое другое. Было бы неплохо не только устранить обозначенные проблемы, но и автоматизировать и упростить реализацию новых функциональностей в будущем. В качестве инструмента для достижения этих целей мы можем использовать процессоры аннотаций. Например, реализованные с помощью KSP — специального API от Google, более быстрого и эффективного, чем привычный KAPT. Анна покажет на примере вполне реальных кейсов, как можно на практике упростить работу с UI в Android-приложении.
???? Декларативная навигация в iOS-приложении
Андрей Зонов
Тинькофф
Подходы к навигации в модульных проектах: роутинг, декомпозиция, декларативные подходы.
Андрей поделится практическим опытом из текущего проекта интеграции диплинков для модулей, использующихся в разных приложениях. Он поговорит о проблемах, с которыми они столкнулись, и решениях, к которым пришли в итоге.
Качество продукта
♾️ Технологии, меняющие мир незрячих и глухих людей
Валерия Курмак
Яндекс
Как отличить банку с горошком от банки с кукурузой, если ты не видишь? Как понять, что говорит тебе собеседник, если ты не слышишь? Можно обратиться к помощи другого человека. Но сегодня есть технологии, которые помогают людям быть более самостоятельными. Валерия расскажет, как они придумали использовать технологии распознавания образов и речи, и создали Умную камеру для незрячих и Яндекс Разговор для людей с нарушением слуха.
В докладе на примерах она покажет, какая есть специфика при создании приложений для людей с инвалидностью. Спикер также поделится опытом того, как они работали со специфическими сценариями людей с инвалидностью. И расскажет, насколько сложно и дорого делать подобные приложения.
♾️ Мифы и легенды о безопасности мобильных приложений
Юрий Шабалин
Стингрей Технолоджиз
Вокруг защиты и безопасности мобильных приложений витает много мифов и заблуждений. Юрий решил в подробностях поговорить об этом. Он расскажет, зачем вообще защищать и проверять мобильные приложения. Ведь это всего лишь клиент, фронт для серверной части, да к тому же Google Play и App Store сами проверяют их перед публикацией. Вот серверную часть и надо защищать, а не эти ваши мобильные приложения.
Вы узнаете, почему это не так и почему важно уделять внимание безопасности всех составляющих сервисов, а в особенности — мобильным приложениям. В докладе есть бизнес-часть (про публикации, проверки магазинами приложений, риски взлома приложений) и чисто техническая часть (про песочницы приложений, шифрование, мифы про Flutter и другое). Теория, как обычно, закреплена практикой и примерами реальных уязвимостей и недостатков приложений, с которыми команда Юрия встречала за прошедший год.
???? Автоматизация ревью ресурсных картинок в iOS
Сергей Балалаев
Ozon
Зачем вообще линтить изображения при разработке iOS-приложений? На этот вопрос Сергей попробует ответить совместно с вами во время игры в quiz.
Вы скажете, что Xcode 14 уже умеет подсвечивать на один тип ошибки больше, чем раньше — аж две штуки. А он ответит, что это даже не основные ошибки. Если сравнивать с Android, то есть еще что показать обескураженному разработчику или ревьюверу iOS-проекта на этапе линтинга.
Спикер опишет решения проблем с использованием ресурсных изображений через кодогенерацию. Он предложит свое решение и сравнит его с существующими сторонними. Далее он обсудит профиты и эффекты включения в проект линтинга изображений.
Это простое решение подходит для проекта любого масштаба, поэтому у вас будет возможность зареюзать его, ведь оно просто в использовании и доступно в open source.
Доклад будет полезен iOS-разработчикам, тимлидам и техлидам, руководителям мобильной разработки.
Инфраструктура
♾️ Мы решили все проблемы работы в модульном проекте. Хотите так же?
Михаил Харитончик
Сбер
Вы наверняка знакомы с преимуществами монорепозитория, видели как устроена Яндекс Аркадия, читали блог о монорепе от Uber, восхищались кастомным SCM от Facebook и Microsoft, возможно, даже трогали Bazel.
Доклад Михаила перевернет ваше представление о хороших практиках. Он покажет, как делать принято, а как — оптимально. Вы поймете, почему мультирепа и многомодульность — это круто, посмотрите на проблемы, которые они создают, и сразу их решите. Особый упор будет на синхронизацию изменений репозиториев, полное избавление от dependency hell и контроль над консистентностью большого проекта. Цель доклада — показать задачи, из-за которых вы захотите модульность и мультирепозиторий, выявить проблемы, предложить решения и показать их в деле.
???? Gradle Kotlin DSL: о чем умолчали в документации
Андрей Данилов
Яндекс
Gradle.kts уже давно не новая технология, но далеко не все на нее перешли. Причины разные: кто-то слышал о плохом перформансе, кто-то пытался мигрировать, но с ходу не вышло. Даже спустя 5 лет после релиза скуповатая на детали документация не проясняет многие кейсы. Андрей постарается исправить эту ситуацию в своем докладе.
Вы узнаете, есть ли вообще причины переходить на kts в 2023 году и насколько все плохо (или хорошо) с перформансом, учитывая что во многих release notes сообщают об ускорениях. Спикер также разберет все проблемы, возникающие как при миграции крупного проекта, так и при интеропе Kotlin/Groovy.
???? Использование XCFramework в крупном iOS-проекте, или Как ускорить сборку в 2 раза
Сергей Ерохин
Тинькофф
Доклад о том, как Сергей с командой применили в iOS-проектах Тинькофф предкомпилированные зависимости в виде XCFramework с использованием CocoaPods, fastlane, GitLab CI и на примере проекта Тинькофф Бизнес ускорили холодную сборку до 2 раз.
???? SBOL iOS Story
Владимир Озеров
Сбербанк
Развлекательный доклад про развитие проекта и инфраструктуры на протяжении более 10 лет. В процессе приводится несколько ключевых тезисов-выводов, основанных на опыте команды. Общая канва: ожидание — реальность. Ценность: полезные советы и мысли по развитию проекта.
Доклад разделен на эпохи, для каждой из которой дается ответ на вопрос:
Какие вызовы стояли перед разработкой?
Почему принимались те или иные конкретные решения (задумки, идеи)?
К чему в итоге привели эти решения?
Что оказалось ошибкой, а что хорошо себя показало?
???? Прожарка Tuist
Александр Евтухов
Банк Открытие
Александр расскажет о том, как использовать Tuist на все 100%. Многие рассматривают этот инструмент как простую замену XcodeGen, так как он написан на Swift и более органично выглядит для большинства.
На примере Открытия спикер покажет, какой путь прошла его команда при переходе от CocoaPods на Tuist. Он также объяснит, как они поддерживают многомодульность одновременно и на CocoaPods, и на Tuist.
Из доклада вы узнаете, как:
Плавно переехать с одной системы сборки на другую;
Сделать свой аналог Independency от Авито;
Приручить кэш Tuist и побороть его детские болезни.
Заключение
Конференция — это не только доклады. Будут и другие активности, от записи подкаста до офлайнового обсуждения «От монолита к распределенной архитектуре».
Но для многих участников важно обычное общение, которое в хабрапосте по пунктам не перечислишь. И вопросы спикерам после докладов (для этого мы всегда выделяем много времени), и разговоры друг с другом. Тут уж мы не можем сказать, о чём именно зайдёт конкретный разговор — всё в ваших руках.
А нам остаётся дать ссылку на сайт Mobius: там и вся актуальная информация, и билеты.