Привет! Меня зовут Саша Свиридов, я руковожу отделом мобильной разработки в 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-канале, зарегистрируйтесь, чтобы получить ссылку. До встречи!

Комментарии (0)