Только представьте, сегодня понедельник, по этим дням в Авито проходят community meetings с разработчиками Android и iOS. Меня зовут Михаил. И я Android-разработчик в команде Мобильной Архитектуры. Уже через 5 минут я буду выступать перед нашим большим сообществом Android-разработчиков и рассказывать про новый подход в построении DI в нашем приложении при помощи Anvil.
Два месяца назад мы провели очередной опрос наших коллег — Android-разработчиков из продуктовых команд — с какими трудностями они встречались при разработке своих фичей. Одной из самых больших болей оказалась работа с механизмом Dependency Injection: граф зависимостей был запутанным, разобраться, особенно новичку, крайне сложно. Да и скорость сборки с увеличением количества команд и фичей стала страдать.
На планировании квартала наша команда решила взять задачу оптимизации DI себе в цель, и я вызвался лидировать эту задачу.
Прежде всего я обратился к community, и на встрече мы обсудили основные проблемы и сложности с текущим DI, который у нас построен на Dagger 2. Я аккуратно записал все проблемы:
На этой же встрече мы определили, чего ожидаем от новой системы DI:
Из инструментов мы могли использовать только библиотеки на базе Dagger 2, из-за его compile time проверок графа зависимостей и большого количества даггеро-специфичной логики, написанной в проекте. К таким инструментам относятся Hilt и Anvil.
Для тестирования DI-фреймворка я придумал набор сценариев, с которыми чаще всего сталкиваются разработчики, когда пишут код и работают с зависимостями.
Мы ищем коллегу Android-разработчика в нашу команду. Приходи на собес, будем тебе рады.
Avito — самый популярный сайт объявлений в России, классифайд №1 в мире. Месячная аудитория составляет 57,4 млн. — это больше трети населения России. Количество активных объявлений превысило 125 млн. Каждую секунду на “Авито” совершается более восьми сделок. А география сервиса — это вся Россия — от Калининграда до Дальнего Востока.