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

  • Тренды

    • Смотреть запись

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

      Distributed actors и где они обитают

      Строим свой протокол для P2P-сети, доступный каждому на чистом Swift. Откроем новые возможности для текущих приложений без головной боли.

    • Смотреть запись

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

      Мультиплатформенный Redux и SwiftUI / Jetpack Compose

      На примере приложения «Народный Картограф» будет продемонстрирована архитектура, позволяющая стандартизовать описание UI приложений, минимизировать количество платформенного кода, состоящего из экранов SwiftUI / Jetpack Compose, и выносить всю логику в мультиплатформенный Redux, написанный на Kotlin Multiplatform.

    • Смотреть запись

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

      Impact Analysis. Как мы ускоряли юнит-тесты

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

    • Смотреть запись

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

      Навигируемся в Jetpack Compose

      Есть несколько библиотек для реализации навигации в Jetpack Compose: google navigation, voyager, modo, appyx, oddysey, но что выбрать и как понять, что лучше?

      Спикер сравнит различные библиотеки, выделит их сильные и слабые стороны, сравнит их в реальных кейсах. Рассмотрим большинство реальных кейсов, в том числе интеграцию навигации в реальное приложение c Fragment. Вы узнаете больше про Modo, про то, почему у неё нет аналогов и почему нужно выбрать именно её (спойлер, потому что UDF).

    • Смотреть запись

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

      Android Navigation at scale

      Спикер рассмотрит проблемы, которые возникают при использовании Jetpack Navigation в многомодульном проекте, даст собственное расширяемое решение и обсудит его плюсы и минусы.

      Часть доклада посвящена проблемам и интересным решениям, возникшим в процессе реализации поддержки диплинков.

      Доклад будет интересен и тем, кто только начинает работать с Jetpack Navigation и тем, кто ищет альтернативные решения. А также всем, кто хочет посмотреть, как же применять алгоритмы на примере модуля для поддержки диплинков.

    • Смотреть запись

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

      GraphQL: как уговорить сервер подстроиться под приложение

      Мобильному клиенту довольно трудно работать с сервером, если используется микросервисная архитектура, но такая технология, которая могла бы это упростить, существует: GraphQL. В этом докладе пойдет речь о том, как в команде спикера внедряли GraphQL, с какими трудностями столкнулись и как их преодолели.

    • Смотреть запись

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

      Разработка для ОС «Аврора»

      Разработка своей операционной системы вызывает много вопросов. Один из главных — как предоставить инструменты для создателей приложений.

      Спикер рассмотрит ОС «Аврора», расскажет о средствах и трендах кроссплатформенной разработки и поговорит о том, как ОС «Аврора» должна развиваться в этом направлении.

    • Смотреть запись

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

      Состояние дел в Fuchsia

      Когда мы говорим про Flutter, то очень часто всплывает название Fuchsia. Это новая операционная система от Google. При этом мало кто знает, что это такое, зачем оно нужно и как вообще работает и выглядит.

      Спикер проведет обзорную экскурсию по этой ОС и расскажет, что там и как.

    • Смотреть запись

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

      ОС «Аврора» глазами Android- и iOS-разработчика

      В современном мире нельзя быть до конца уверенным, что завтра у нас будут работать Android или iOS. Поэтому спикер решил взглянуть на альтернативные мобильные ОС из России и начать с самой перспективной — ОС «Аврора».  В докладе будут разобраны технологии, на которых пишутся приложения, подходы в ОС, best practices, построение архитектуры, навигация, UI/UX, DI и т. д.

    • Смотреть запись

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

      Почему KMM — не кроссплатформа?

      Александр уже полтора года делает приложения с использованием технологии KMM в продакшене. В докладе он рассмотрит концепцию KMM и ее принципиальные отличия от остальных кроссплатформенных решений.

      Доклад будет ориентирован на разработчиков, не знакомых с KMM или не погружавшихся в устройство этой технологии. Сначала спикер затронет известные недостатки кроссплатформы, а затем покажет, как их решает Kotlin Multiplatform. Затем будет конкретика: что можно сделать общим между платформами, а что нет, и сколько в итоге можно выиграть от использования KMM.

    • Смотреть запись

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

      С какими особенностями мы столкнулись при создании альтернативного магазина приложений в России

      Спикер расскажет, как совместно с крупнейшими ИТ-компаниями за 1,5 месяца создали и запустили бета-версию российского магазина мобильных приложений для Android. Поделится процессом создания стора в условиях отсутствия локальной операционной системы и других технических и когнитивных сложностей и ограничений. Раскроет перечень технологий, которые применяются при разработке стора и реализации функций веб-витрины, консоли разработчика, платежей, пуш-уведомлений и других.

      Доклад прежде всего ориентирован на разработчиков, но будет полезен всем, кто интересуется темой импортозамещения.

    • Смотреть запись

      Тип доклада: Доклад от партнера

      Как сделать аналог Firebase App Distribution и замахнуться на корпоративный магазин приложений

      Как и зачем делать свой аналог Firebase App Distribution? И как потом с помощью него начать распространять In-House приложения.

    • Смотреть запись

      Тип доклада: Доклад от партнера

      Как я научился не волноваться и полюбил SwiftUI

      Александр расскажет, как в его команде смогли подружить SwiftUI и UIKit, дизайн-систему и коллекции, тем самым позволив разработчикам самим выбирать, с помощью чего реализовывать UI, не имея никаких ограничений (ну почти). Будет интересно тем, кто хочет попробовать SwiftUI в продакшене, но боится это сделать.

  • Под капотом

    • Смотреть запись

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

      Gradle: Incremental compilation 101

      Исследование механизмов инкрементальной компиляции, которые есть в современном Android toolchain. Спикер расскажет, что такое ABI, обсудит «степени» инкрементальности и расскажет, как развивать эффективно собирающуюся кодовую базу.

      Доклад ориентирован для Android-разработчиков, но будет полезен и JVM-backend-разработчикам, использующим Gradle. Ребятам из iOS, возможно, будет интересно расширить кругозор или вдохновиться на собственное исследование.

    • Смотреть запись

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

      Как выстроить DI в многомодульном iOS-приложении при помощи Needle

      Кратко вспомним, что такое модуляризация, зачем она нужна, и причем здесь Dependency Injection. Подумаем, как этот принцип, а точнее фреймворк, который его реализует, поможет при модуляризации.

      Далее обсудим, почему Needle — это лучший выбор из существующих open source DI-фреймворков. Поговорим и про сам Needle — как он устроен и какие есть нюансы использования.

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

    • Смотреть запись

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

      И ещё чуть-чуть про изображения

      Спикер расскажет, что собой представляют изображения в памяти компьютера, затронет отличия между UIImage, CGImage и CIImage, поговорит о Core Graphics и Core Image, а закончит созданием своего CIFIlter на основе Metal shaders

    • Смотреть запись

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

      Как Яндекс Go самокаты BLE внедряли

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

    • Смотреть запись

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

      Keyboard avoiding in SwiftUI

      Спикер расскажет об экспериментах со SwiftUI, благодаря которым был создан гибкий и удобный механизм избегания клавиатуры.

    • Смотреть запись

      Тип доклада: Мастер-класс

      Оптимизация UI с использованием Texture

      Спикер рассмотрит основные проблемы оптимизации и подробно разберется в них: вы узнаете, как они могут уронить FPS, и научитесь исправлять их. Затем без Texture, а затем и с ним, рассмотрим решение подобных проблем и сравним результаты.

    • Смотреть запись

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

      Как избежать хаоса: навигация как отдельный логический уровень

      Спикер затронет следующие темы: построение навигации LANG: особенности и подходы реализации. Cicerone VS навигация LANG: ключевые отличия. Технические сложности и как с ними работать. В каких случаях пригодится подход команды спикера к навигации, а когда можно обойтись без нее.

    • Смотреть запись

      Тип доклада: Доклад от партнера

      Кодогенерация для Flutter: что, как и зачем

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

    • Смотреть запись

      Тип доклада: Доклад от партнера

      Музыка в iOS приложениях: подводные камни при разработке

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

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

    • Смотреть запись

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

      Телефон, NFC и пластиковые карты — романтика!

      Спикер затронет следующие темы: как устроена технология NFC; NFC-метки и стандарты; возможности Android SDK; особые китайские «магические» носители.

    • Смотреть запись

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

      Работа с картой в каршеринге

      Спикер затронет следующие вопросы: насколько легко сменить провайдера карт в приложении? Какие бывают боли и подводные камни в разных картографических сервисах? Как оптимизировать работу с картой?

  • Архитектура

    • Смотреть запись

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

      Мультиплатформенный Redux и SwiftUI / Jetpack Compose

      На примере приложения «Народный Картограф» будет продемонстрирована архитектура, позволяющая стандартизовать описание UI приложений, минимизировать количество платформенного кода, состоящего из экранов SwiftUI / Jetpack Compose, и выносить всю логику в мультиплатформенный Redux, написанный на Kotlin Multiplatform.

    • Смотреть запись

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

      Как выстроить DI в многомодульном iOS-приложении при помощи Needle

      Кратко вспомним, что такое модуляризация, зачем она нужна, и причем здесь Dependency Injection. Подумаем, как этот принцип, а точнее фреймворк, который его реализует, поможет при модуляризации.

      Далее обсудим, почему Needle — это лучший выбор из существующих open source DI-фреймворков. Поговорим и про сам Needle — как он устроен и какие есть нюансы использования.

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

    • Смотреть запись

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

      The Elm Architecture in Prod

      В команде спикера на протяжении последних четырёх лет прошли путь от MVP к MVI и от MVI к MVU. Этот доклад — об этом тернистом пути. Вы узнаете, почему в команде решили уйти от детища Badoo — связки Ribs и MVICore.

    • Смотреть запись

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

      Android Navigation at scale

      Спикер рассмотрит проблемы, которые возникают при использовании Jetpack Navigation в многомодульном проекте, даст собственное расширяемое решение и обсудит его плюсы и минусы.

      Часть доклада посвящена проблемам и интересным решениям, возникшим в процессе реализации поддержки диплинков.

      Доклад будет интересен и тем, кто только начинает работать с Jetpack Navigation и тем, кто ищет альтернативные решения. А также всем, кто хочет посмотреть, как же применять алгоритмы на примере модуля для поддержки диплинков.

    • Смотреть запись

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

      DivKit — дивная разработка

      Сейчас в любом крупном приложении есть что-то, что меняется от конфига сервера. Доклады про Server Driven UI появляются уже несколько лет. В команде Ольги шли примерно таким же путем, как и все — писали свой конструктор-компонент. Но 4 года назад его стало не хватать, и  написали «свой HTML». Ольга расскажет про разработку и детали работы DivKit, open source-фреймворка от Яндекса.

    • Смотреть запись

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

      Как избежать хаоса: навигация как отдельный логический уровень

      Спикер затронет следующие темы: построение навигации LANG: особенности и подходы реализации. Cicerone VS навигация LANG: ключевые отличия. Технические сложности и как с ними работать. В каких случаях пригодится подход команды спикера к навигации, а когда можно обойтись без нее.

    • Смотреть запись

      Тип доклада: Доклад от партнера

      Как я научился не волноваться и полюбил SwiftUI

      Александр расскажет, как в его команде смогли подружить SwiftUI и UIKit, дизайн-систему и коллекции, тем самым позволив разработчикам самим выбирать, с помощью чего реализовывать UI, не имея никаких ограничений (ну почти). Будет интересно тем, кто хочет попробовать SwiftUI в продакшене, но боится это сделать.

    • Смотреть запись

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

      Как и зачем дробить iOS-приложение на микрофичи

      Илья расскажет об опыте дробления iOS-монолита на микрофичи (uFeatures). Вы узнаете, зачем это вообще нужно, с какими сложностями столкнулись в команде Ильи и как их решали, какие профиты получили в итоге. Подробно рассмотрим инструменты, которые очень помогли в этом нелегком деле.

  • Качество продукта

    • Смотреть запись

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

      Keyboard avoiding in SwiftUI

      Спикер расскажет об экспериментах со SwiftUI, благодаря которым был создан гибкий и удобный механизм избегания клавиатуры.

    • Смотреть запись

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

      TDD + BDD = TBD (Tests, Business, Development). Триада инженерной культуры

      Было сказано много слов о том, как писать тестируемый код, и о важности управления зависимостями. Но мало кто говорит о том, как писать сами тесты. Почему в одних проектах тесты служат документацией, а в других — только усложняют поддержку? Что делать, если тесты пишутся, а процент покрытия кода практически не растет? Как превратить рутинное описание тест-кейсов в творческий процесс, понятный всей команде? Цель доклада — ответить на эти и многие другие вопросы, показать слушателю, как писать читабельные и простые в поддержке тесты, формирующие инженерную культуру.

    • Смотреть запись

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

      Как перестать волноваться и начать ревьюить код быстро и эффективно

      Поговорим о том, как сделать процесс ревью интересным, менее энергетически затратным для ревьюера и при этом максимально полезным для автора и самого кода.

    • Смотреть запись

      Тип доклада: Доклад от партнера

      Кодогенерация для Flutter: что, как и зачем

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

    • Смотреть запись

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

      Перестройка: как провести рефакторинг с пользой

      Представьте задачу, которая не приносит никакой новой функциональности вашему продукту, отнимает огромное количество драгоценного времени ваших разработчиков, но тем не менее время от времени встает перед командой. Такая задача именуется рефакторингом. В чем причина этой задачи? Как с ней справляться и возможно ли не допустить ее появления в своем продукте? Обо всем этом пойдет речь в докладе.

    • Смотреть запись

      Тип доклада: Доклад от партнера

      Музыка в iOS приложениях: подводные камни при разработке

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

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

    • Смотреть запись

      Тип доклада: Доклад от партнера

      Как мы обеспечиваем качество, не жертвуя TTM

      На примере приложения Циан вы узнаете, как еще до разработки фичи повысить ее отказоустойчивость, соблюдая простые договоренности. Поговорим, как выжать максимум из автотестов, минимизируя их сопровождение, как сбросить нагрузку с клиентской службы и тестеров, организовать сбор и мониторинг метрик в iOS-приложении и как организовать работу команды. И всё это для того, чтобы поднять периодичность релиза до одного раза в неделю, удерживая crash-free выше 99.9% в течение года.

  • UI/UX в мобильной разработке

    • Смотреть запись

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

      Подписки в iOS: Deep Dive

      Спикер расскажет про нюансы работы in-app подписок на iOS и покажет редкие инструменты, которые мало кто использует.

    • Смотреть запись

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

      Круглый стол про дизайн-систему

      Какие звоночки могут говорить о необходимости дизайн-системы на проекте и как обосновать эту идею руководству?

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

    • Смотреть запись

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

      Выжимаем максимум из SwiftUI Preview

      Рассмотрим, что можно сделать на основе SwiftUI Preview. Поговорим об автоматической генерации на основе Previews:

      • Демо приложения.
      • Snapshot-тестов.
      • Performance-анализ views.
      • Accessibility-тесты.

      Все это попробуем генерировать полностью автоматически. Спикер расскажет о своём готовом решении и выжмет максимум из SwiftUI Preview.

    • Смотреть запись

      Тип доклада: Доклад от партнера

      Как я научился не волноваться и полюбил SwiftUI

      Александр расскажет, как в его команде смогли подружить SwiftUI и UIKit, дизайн-систему и коллекции, тем самым позволив разработчикам самим выбирать, с помощью чего реализовывать UI, не имея никаких ограничений (ну почти). Будет интересно тем, кто хочет попробовать SwiftUI в продакшене, но боится это сделать.

    • Смотреть запись

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

      Android Insets и анимация клавиатуры

      Спикер рассмотрит разные виды Insets, поговорит о том, как достичь Edge-to-Edge-вида приложения и подробно остановится на клавиатуре. Вы научитесь одновременно анимировать контент приложения и открытие клавиатуры. Научитесь думать об анимации так, чтобы упросить себе жизнь, и поймете, почему всё не так просто.

  • Инфраструктура

    • Смотреть запись

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

      Какие параметры компьютера влияют на скорость Gradle-сборки

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

    • Смотреть запись

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

      Impact Analysis. Как мы ускоряли юнит-тесты

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

    • Смотреть запись

      Тип доклада: Доклад от партнера

      Как сделать аналог Firebase App Distribution и замахнуться на корпоративный магазин приложений

      Как и зачем делать свой аналог Firebase App Distribution? И как потом с помощью него начать распространять In-House приложения.