Карты и Навигатор ежедневно помогают миллионам пользователей по всему миру решать свои задачи. Найти ресторан или дорогу до места встречи с друзьями, запланировать поход в салон красоты, построить максимально эффективный маршрут на любом типе транспорта или просто узнать, что интересного есть в городе, — наши базовые сценарии, жизненно необходимые современному городскому жителю.
Мы не стоим на месте: проводим эксперименты, исследуем потребности пользователей, расширяем возможности существующих сценариев и создаём новые. За последнее время добавили поддержку AndroidAuto, новый виджет, аренду самокатов, заказ такси, доставку еды. Карты и Навигатор превратились в мощный геосуперапп.
Как устроена разработка?
Важная часть нашего подхода — ставка на мультиплатформенную разработку. Наши приложения на iOS и Android практически идентичны, а функционал настолько разнообразен и обширен, что поддерживать одновременно две реализации трудно и неэффективно. Несколько лет назад мы выбрали KotlinMultiplatform в качестве основной технологии для кросс-платформенной разработки и одними из первых начали использовать её в продакшен. KotlinMultiplatform не накладывает ограничений на использование платформенных SDK, мы пишем на нём только бизнес-логику, а UI и взаимодействие с операционной системой остаются платформенными, что позволяет использовать актуальный стек на Android и iOS. За эти годы мы прошли огромный путь, и сейчас общий код составляет значимую часть нашей кодовой базы. Благодаря этому команды Android и iOS тесно контактируют, обмениваются знаниями, а под новые большие проекты мы сразу собираем кросс-платформенные v-team, что упрощает контроль над процессами и совместные запуски.
Наш проект разбит на модули, что улучшает архитектуру и позволяет разрабатывать новые сценарии в отдельных легковесных тестовых проектах. Внутри модулей используем архитектуру Redux с Unidirectional Data Flow.
Большой проект невозможно развивать без вложений в инфраструктуру. 80% времени мы тратим на продуктовую разработку, 20% времени выделяем на развитие технологий, автоматизацию рутины и отдачу техдолга. CI/CD, автоматическая синхронизация ресурсов от редакторов и дизайнеров, автоматизации workflow задач, автоматизации релизного процесса, UI-тесты, A/B-эксперименты, мониторинги здоровья приложения и процессов — у нас есть всё необходимое для проекта такого уровня.
Какой у нас стек Android?
Вызовы
Главный продуктовый вызов — одновременное развитие сценариев выбора мест и навигации. Мы работаем над тем, чтобы в Картах можно было легко находить идеи, куда сходить, и строить оптимальные маршруты до выбранных мест на любом удобном пользователю транспорте.
Продолжаем прокачивать навигацию по сложным развязкам для автомобилистов и добавляем новые возможности для пешеходов и велосипедистов. Хотим перейти на еженедельный цикл и выпускать обновления в два раза чаще.
У нас идёт большая перестройка процессов, расширение покрытия UI-тестами, оптимизация сборки и производительности приложения: энергопотребления и времени старта. Чтобы реализовать логику между платформами, используем Kotlin Multiplatform. Активно внедряем Compose.
А ещё мы выводим продукты на международные рынки с учётом региональных особенностей и потребностей.
Что по атмосфере?
Много внимания уделяем обмену знаниями: раз в месяц проводим общие «техновстречи» на всю разработку, на которых рассказываем про интересные исследования и достижения в разных технологических областях, еженедельно собираемся платформенными командами и обсуждаем насущные проблемы. По результатам спринта проводим продуктовые демо. Уважаем work-life balance, тимбилдинговые активности, неформальное общение, вечеринки, поддерживаем дружескую атмосферу. Приветствуем участие в школах мобильной разработки в качестве преподавателей, помогаем с выступлениями на конференциях.
Возможно, вы уже видели наши доклады и статьи:
Евгений Васильев на Я.Субботнике рассказывает про то, как собираем грабли при профилировании Android-приложений: https://www.youtube.com/watch?v=fnQkcF38GvU&t=12008s
Михаил Куренков рассказывает на Mobius 2020 про процессные особенности мультиплатформенной разработки: https://www.youtube.com/watch?v=m5H1KGsdqtw
Дмитрий Яковлев рассказывает на AppsLive 2020, как концептуально выглядит типичная фича на Kotlin Multiplatform: https://www.youtube.com/watch?v=o-2RLhSlosI
Денис Загаевский рассказывает на Mobius 2021 про наш DI: https://www.youtube.com/watch?v=COzmONYAY3U
Мы ждем, что вы:
Условия:
InSmile
Москва
от 250000 RUR
Стоматологическая клиника РуДента
Москва
до 250000 RUR
D.N.A. Clinic (ООО Бьютиленд)
Москва
от 180000 RUR
ГБУЗ Московской Области Мытищинская Областная Клиническая Больница
Москва
до 450000 RUR
Добрая Школа На Сольбе
Москва
до 150000 RUR
Строймехсервис Метростроя
Москва
до 170000 RUR
Группа компаний МЕДСИ
Москва
до 170000 RUR
Major Auto (Мэйджор Авто)
Москва
от 110000 RUR
Гадирова Любовь Валерьевна
Москва
до 200000 RUR
Добрая Школа На Сольбе
Москва
до 150000 RUR
Добрая Школа На Сольбе
Москва
до 150000 RUR
Летуновская Кристина
Москва
до 150000 RUR