Начало основного контента

Расписание

  • Время в программе указано для вашего часового пояса .

  • Программа предварительная, в ней возможны изменения.

  1. 12 мая. Online

    • Тип доклада: Игра

      Корутинные загадки

      Спикеры будут показывать код с корутинами и спрашивать, что в нем должно случиться, а слушатели будут выбирать варианты ответов. После этого будет запускаться живой код и  оцениваться то, что получилось на самом деле. Затем будем разбор того, почему все именно так. Кто выберет больше всего правильных вариантов — тот и победил. Будут примеры с синхронизацией и конкурентной работой, отмена корутин и неочевидности Kotlin Flow.

    • Тип доклада: Доклад

      Modern MVI и MVVM+ со всех сторон в 2023

      Как и зачем выбирать MVI или MVVM+ фреймворк в 2023 году, на что важно обращать внимание и что может легко ускользнуть, внезапно всплыв лишь в продакшене.

    • Тип доклада: Обсуждение

      Мифы и легенды о безопасности мобильных приложений

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

    • Тип доклада: Доклад

      Кнопки красить — это вам не деревья вертеть

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

    • Тип доклада: Доклад

      Lobzik: полуавтоматическая модуляризация Android-проекта

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

    • Тип доклада: Доклад

      Разгоняем BLE

      BLE изначально задуман как технология для обмена данными с низкой скоростью. Но что если мы хотим обновить прошивку на подключенном устройстве? Или собрать логи? Или отправить файл? Тогда нам нужно выжать максимум скорости из BLE. Про это и пойдет речь в докладе: как работает BLE, какие параметры у него есть и что изменить для ускорения.

  2. 13 мая. Online

    • Тип доклада: Доклад

      Использование XCFramework в крупном iOS-проекте, или Как ускорить сборку в 2 раза

      Доклад о том, как Сергей с командой применили в iOS-проектах Тинькофф предкомпилированные зависимости в виде XCFramework с использованием CocoaPods, fastlane, GitLab CI и на примере проекта Тинькофф Бизнес ускорили холодную сборку до 2 раз.

    • Тип доклада: Доклад

      По ту сторону EditText. Программная клавиатура в Android

      Спикеры расскажут про принципы разработки и интеграции программных клавиатур в Android и настройку EditText под различные задачи. Они рассмотрят Android SDK в точке коммуникации между полями ввода и сервисом клавиатуры. Далее вы услышите про причины возможных проблем взаимодействия приложений с InputMethodManager и узнаете, как корректно настроить EditText для различных сценариев. Дмитрий и Вадим опишут взаимодействия с полями ввода со стороны приложения клавиатуры и покажут, как разработать собственное.

    • Тип доклада: Доклад

      Архитектура сложных клиентских приложений

      В докладе будет представлен современный взгляд на архитектуру и методологию разработки сложных клиентских приложений. Здесь слово «клиентских» означает независимость от платформы (iOS, Android, Web, Qt и т.п), а «сложных» — подразумевает наличие как синхронизируемого с бэкендом клиентского состояния, так и множественных источников событий. Основной упор будет сделан на обеспечение тестируемости (unit-тесты и интеграционные тесты), наглядности (отображение UML-диаграмм в код) и пластичности (устойчивость к изменениям).

    • Тип доклада: Доклад

      Готовим конфигурацию Android-приложения с помощью Dynamic Proxy и рефлексии

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

  3. 19 мая. Online + offline

    • Тип доклада: Доклад

      Зал 1

      Backend Driven… Аналитика!

      Для экранов мобильного приложения, UI которых приходит с бэкенда, в команде спикера придумали Backend Driven Аналитику. Она хранится и настраивается на бэкенде, а события отправляются из мобильного приложения, когда пользователь взаимодействует с экраном.

    • Тип доклада: Доклад

      Зал 2

      Gradle Kotlin DSL: о чем умолчали в документации

      Gradle.kts уже давно не новая технология, но далеко не все на нее перешли. Причины разные: кто-то слышал о плохом перформансе, кто-то пытался мигрировать, но с ходу не вышло. Даже спустя 5 лет после релиза скуповатая на детали документация не проясняет многие кейсы. Андрей постарается исправить эту ситуацию в своем докладе.

    • Тип доклада: Воркшоп

      Зал 1

      Jetpack Compose Multiplatform для iOS и Android

      Как писать на Compose сразу для iOS и Android, а если JetBrains еще что-то не добавили — как добавить это самому. Что происходит, когда Compose рисует вьюшки на обе платформы.

    • Тип доклада: Доклад

      Зал 2

      Прожарка Tuist

      Александр расскажет, как они в Открытии внедряли Tuist: как добиться того, чтобы он работал параллельно с CocoaPods, как собрать на его базе аналог Independency от Авито и как настроить кэширование билдов.

    • Тип доклада: Доклад

      Зал 1

      О дивный новый мир со Swift Concurrency

      Кирилл расскажет, как в Тинькофф внедряли Swift Concurrency, какие требования предъявляли к новому инструменту и какие альтернативы рассматривали. Он поделится best practice, разработанными при написании кода со Swift Concurrency, напомнит про акторную модель и покажет, как может измениться написание кода фичи при ее использовании. И, конечно, как постепенно мигрировать на данное решение, какой стратегии стоит придерживаться, и почему за Swift Concurrency будущее.

       

    • Тип доклада: Доклад

      Зал 2

      Измеряем sequence

      Максим расскажет, как sequence работают под капотом и измерит выигрыш от их использования. Вы узнаете, насколько корректно правило detect CouldBeSequence.

    • Тип доклада: Доклад

      Зал 1

      Генератор межъязыковых мостов для мобильных приложений PyDjinni

      В докладе пойдет речь о системе PyDjinni, которая служит для автоматической генерации межъязыковых мостов C++<=>Swift и C++<=>Kotlin на основании псевдокода, описывающего необходимые сущности. Эта система используется для разработки мобильных приложений под iOS и Android, имеющих общее ядро, написанное на C++. Благодаря автоматической генерации мостов можно избавить прикладных программистов от написания большого количества сложного boilerplate-кода.

    • Тип доклада: Доклад

      Зал 2

      Декларативная навигация в iOS-приложении

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

    • Тип доклада: Доклад

      Зал 1

      Compose for iOS под капотом

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

  4. 20 мая. Online + offline

    • Тип доклада: Доклад

      Зал 1

      Управление сложностью состояния

      Доклад Сергея продолжает и развивает доклад «The Elm Architecture in Prod» с последнего Mobius, где обсуждали основные компоненты возможной UDF-архитектуры и показывали на практике, как можно контролировать сложность состояния в UDF.

    • Тип доклада: Доклад

      Зал 1

      Ошибки при проектировании публичного API наших библиотек, и как мы их решали

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

    • Тип доклада: Доклад

      Зал 2

      Автоматизация ревью ресурсных картинок в iOS

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

    • Тип доклада: Доклад

      Зал 2

      Показываем красивое с помощью видеоредактора в VK Клипах на iOS

      Михаил расскажет, как под капотом устроен фреймворк от Apple по работе с видео и аудио — AVFoundation. Он разберет основы библиотеки и более интересные вещи, такие как: реверс видео, трансформации, стикеры, звуковые эффекты и другие.

    • Тип доклада: Доклад

      Зал 1

      Универсальные пуши для Android. FCM, HMS и RuStore в одном месте

      Когда был только Firebase все было просто. Теперь тренды меняются, появился HMS, появляются региональные решения. Артём расскажет, как охватить большую аудиторию используя не только Firebase.

    • Тип доклада: Доклад

      Зал 2

      Как мы делали новую iOS-камеру ВКонтакте и VK Клипов

      Никита опишет новую iOS-камеру ВКонтакте и VK Клипах. Он расскажет, какой API предоставляет Apple для взаимодействия с системной камерой (фреймворк AVFoundation) и какая обертка была написана поверх этого API. Он объяснит построение флоу фильтров для кадров с камеры и поделится техниками использования моделей CoreML для распознавания. Вы узнаете про изменение fps для камеры, пользу EXIF-формата и устройство Camera FOV, а также про замеры работы ML-моделей, Apple ARKit-распознавания и имплементацию AR Session.

    • Тип доклада: Доклад

      Зал 1

      Мы решили все проблемы работы в модульном проекте. Хотите так же?

      Из доклада вы узнаете, почему мультирепа и многомодульность — это круто и захотите их себе. Спикер и покажет проблемы, которые они создают, и сразу решит их. Особый упор будет на синхронизацию изменений репозиториев, полное избавление от dependency hell и контроль над консистенстностью большого проекта.

    • Тип доклада: Доклад

      Зал 1

      Как Google победила фрагментацию в Android

      Android SDK Extentions — одна из самых свежих новинок Google, которая позволяет использовать функции новых версий ОС на старые версии Android. В своем докладе Кирилл опишет весь тернистый путь борьбы Google с вендорами, чипмейкерами и разработчиками, чтобы сделать Android без фрагментации и не взять все обновление ОС под свой контроль.

    • Тип доклада: Доклад

      Зал 2

      SBOL iOS Story

      Эволюция инфраструктуры крупного проекта с ретроспективой за 10 лет. Мультирепозиторий, модульность, кастомная билд-система.

Скоро добавим еще больше докладов

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

Подписаться