Привет! Меня зовут Саша Свиридов, я руковожу отделом мобильной разработки в Ozon. В моей команде чуть больше 80 человек — это Android- и iOS-разработчики и QA-инженеры. Мы делаем основное приложение Ozon для покупателей. Моя команда состоит из семи кроссфункцинальных групп разработки, каждая из которых отвечает за определенный скоуп задач. Спектр наших задач очень широк: мы разрабатываем чаты на сокетах, работаем с картографией, с потоковым видео, пушами, с аналитикой, со сложным UI. Пожалуй, у нас нет только GameDev:)
Всего в Ozon больше 150 мобильных инженеров, которые развивают приложения для покупателей, продавцов, Ozon Fresh, FinTech, курьеров и сотрудников пунктов выдачи заказов.
Для основного приложения Ozon мы написали топовый Backend-Driven UI фреймворк — Composer (не путать с JetPack Compose, это название Google придумал позже). Он используется для построения почти всех страниц, и он очень гибкий: можно вставить любой виджет на любую страницу, можно собрать новые страницы из готовых виджетов, можно собирать кучу аналитики — в том числе перформанс-аналитики. Также фреймворк наравне с модулями используется для разделения кода разработчиков.
Для любителей свежих технологий в приложении для продавцов UI строится на Swift UI/JetPack Compose. Ребята не используют Backend-Driven UI.
Что у нас под капотом
iOS
Мы используем Swift: на нём написано основное приложение Ozon и приложение для наших продавцов.
Разрабатываем и развиваем свои инструменты и библиотеки:
Фреймворк Composer для BE Driven UI — можем запускать фичи без релиза, управлять UI через админку, собирать аналитику и многое другое.
Библиотеки Alamofire, PinLayout, Nuke.
Фреймворк-убийца Google Analytics — Ozon Tracker собирает бизнес-метрики, многие из них в автоматическом режиме.
Своя либа для работы с Feature Toggles — ABTool (в простонародии Абдул) и многое другое.
Android
Наши мобильные приложения полностью написаны на Kotlin. Есть Android-библиотеки, аналогичные iOS-ным: Composer, Tracker, ABTool и прочее.
Любим подход MVVM, хотя не против поэкспериментировать с MVI.
Благодаря фреймворку Composer создаем сотни страниц без разработки.
Десять команд работают независимо в одном приложении, в том числе благодаря правильному разделению кода на Gradle-модули.
Для работы с потоками в равной степени используем RxJava 2 и Coroutines.
Тестирование
В mobile QA Automation — Appium и Python.
Автотесты мобильного приложения встроены в наши пайплайны мобильной и бэкенд разработки.
Помимо функциональных тестов, автоматизация также распространяется на тесты аналитики и производительности.
Совместно с сообществом Сoffee&Code приглашаем на открытый митап 19 мая в 18:00
Coffee&Code — оффлайн и онлайн сообщество iOS-разработчиков из разных городов и стран. Сейчас на регулярной основе проходят встречи в Минске, Санкт-Петербурге, Москве, Ереване и Варшаве. Каждые выходные люди самых разных грейдов и компетенций собираются вместе, делятся опытом и обсуждают новости из мира разработки. Следить за новостями можно в канале, а общаться — в чате.
В программе
Александр Свиридов (Ozon)
Руководитель отдела разработки мобильных приложений «Покупатель»
Перформанс мониторинг по-взрослому
Когда я был маленьким, я думал, что хороший перфоманс приложения определяется crash rate'ом и OOM/ANR. Со временем я немного вырос и понял, что перформанс — это очень многогранное понятие, включающее множество метрик и практик. Поговорим о том, какие метрики собираются и как мы боремся за перформанс приложения Ozon.
Владимир Шедько (Ozon)
Ведущий разработчик мобильных приложений
Плавный скролл для сложного UI
Как мы в Ozon делали плавный скролл для нагруженного UI, и при этом не переверстали всё приложение. Рассмотрим необычные подходы, которые мы опробовали на практике, и расскажем, что из этого получилось.
Артем Новичков (Skyeng)
iOS developer
@SarkazmMan Как подружить свой код с async/await
Рассмотрим, как работает новая модель многопоточности. На примерах разберём, что нового появилось в Swift и как это подружить со своим кодом.
Круглый стол
С представителями Ozon, Skyeng и сообщества Coffee&Code
Обсудим темы, предложенные вами при регистрации на мероприятие.
Модератор круглого стола — Александр Лазарев, руководитель подгруппы мобильной разработки (Ozon, Coffee&Code).
Вести митап будет iOS-разработчик Сергей Гнатюк (Ozon, Coffee&Code).
Встречаемся онлайн и оффлайн
Ждём в гости в офисе Ozon («Башне на Набережной» в Москва-Сити). Важно: количество мест в зале ограничено — убедитесь, что вам пришло подтверждение для посещения оффлайн. Если возникнут вопросы на месте — обращайтесь в телеграм @ozon_tech_help.
Трансляция будет на нашем Youtube-канале, зарегистрируйтесь, чтобы получить ссылку. До встречи!