Разработчик для iOS в Карты

Дата размещения вакансии: 17.11.2024
Работодатель: Яндекс
Уровень зарплаты:
з/п не указана
Город:
Москва
Требуемый опыт работы:
От 3 до 6 лет

Наш продукт

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

Мы на этом не останавливаемся: проводим эксперименты, исследуем потребности пользователей, расширяем существующие сценарии и создаём новые. Например, не так давно запустили сверхподробную навигацию. А ещё стали предлагать пользователям комбинированные маршруты с проездом на такси и метро, добавили оплату парковок и электрозаправок. Всё это делает Карты и Навигатор мощными супераппами.

Как устроена разработка?

Мы сделали ставку на мультиплатформенную разработку: наши приложения на iOS и Android практически идентичны. Это позволяет везде поддерживать широкую функциональность и оптимизировать ресурсы.

Несколько лет назад мы выбрали Kotlin Multiplatform в качестве основной технологии для кросс-платформенной разработки и одними из первых начали применять её в продакшене. Kotlin Multiplatform не накладывает ограничений на использование платформенных SDK, мы пишем на нём только бизнес-логику, а UI и взаимодействие с операционной системой остаются платформенными.

Благодаря общему коду команды iOS и Android тесно контактируют, обмениваются знаниями. Для новых больших проектов мы собираем кросс-платформенные v-team, что упрощает контроль над процессами и совместные запуски. Об особенностях нашей мультиплатформенной разработки Михаил Куренков рассказывал в своём выступлении на Mobius 2020.

Проект Карт и Навигатора разбит на модули. Внутри модулей используем устоявшуюся «чистую» архитектуру с однонаправленным потоком данных. Feature-модули максимально независимы, что позволяет разрабатывать новые сценарии в отдельных легковесных тестовых проектах. Подробнее про модульность рассказывал Николай Лихогруд, а про тестовые проекты — Михаил Куренков.

Большой проект невозможно развивать без вложений в инфраструктуру. 80% времени мы тратим на продуктовую разработку, 20% выделяем на развитие технологий, автоматизацию рутины и отдачу техдолга. CI/CD, автоматическая синхронизация ресурсов от редакторов и дизайнеров, автоматизация жизненного цикла задач и релизного процесса, UI-тесты, A/B-эксперименты, мониторинги здоровья приложения и процессов — у нас есть всё необходимое.

Какой у нас стек:

  • iOS 15+, Swift 5.9, Kotlin Multiplatform
  • UIKit, SwiftUI
  • RxSwift, Kotlin Coroutines/Flow
  • MVI/MVVM, Redux
  • Fastlane, SwiftLint
  • UI-тесты на XCTest & Allure
  • Модульность на Cocoapods

Наши таргеты

  • CarPlay
  • Apple Watch
  • Виджеты
  • Live-activities

Вызовы

Главный продуктовый вызов — одновременное развитие сценариев выбора мест и навигации. Мы работаем над тем, чтобы в Картах можно было легко находить идеи, куда сходить, и строить оптимальные маршруты до выбранных мест на любом удобном пользователю транспорте.

Мы продолжаем прокачивать навигацию по сложным развязкам для автомобилистов и добавляем новые возможности для пешеходов и велосипедистов.

Хотим перейти на еженедельный цикл и выпускать обновления в два раза чаще. Прямо сейчас в разгаре большая перестройка процессов, оптимизация производительности приложения (времени старта, энергопотребления) и сборки, увеличение покрытия UI-тестами. Чтобы реализовать логику между платформами, используем Kotlin Multiplatform. Внедряем SwiftUI, экспериментируем с Tuist.

А ещё мы выводим продукты на международные рынки с учётом региональных особенностей и потребностей.

Что с атмосферой?

Любим обмениваться знаниями: регулярно проводим общие техновстречи всего отдела разработки, на которых рассказываем об интересных исследованиях и достижениях в разных технологических областях. Еженедельно собираемся платформенными командами и обсуждаем актуальные проблемы. По результатам спринта проводим продуктовые демо.

Уважаем work-life balance, тимбилдинг, неформальное общение, вечеринки, поддерживаем дружескую атмосферу. Преподаём в школах мобильной разработки и помогаем с выступлениями на конференциях. Возможно, вы видели наши доклады:

  • Даниил Кристалев на Yandex Mobile Team Meetup про подводные камни Live Activities: https://www.youtube.com/watch?v=IsA71KMs_4c&t=2043s
  • Александр Горемыкин на CocoaHeads про приватное API Autolayout: https://www.youtube.com/watch?v=SDsUdAHBiZA
  • Дмитрий Тримонов на CodeFest про Rx в iOS-разработке: https://www.youtube.com/watch?v=nxmQKbjmj4o
  • Дмитрий Яковлев на Mobius про компоненты типичной фичи на Kotlin Multiplatform: https://www.youtube.com/watch?v=o-2RLhSlosI
  • Денис Загаевский в Yandex for Mobile подкасте про разработку в Картах и первый коммит с Kotlin Multiplatform: https://www.youtube.com/watch?v=R_S3PcMIcaM

Мы ждём, что вы

  • Разрабатывали мобильные приложения для iOS и глубоко знаете SDK-платформы
  • Умеете прорабатывать задачи от и до, имеете продуктовое мышление, стремитесь улучшать жизнь пользователей
  • Знаете современные принципы построения архитектуры мобильных приложений
  • Готовы совершенствовать процессы и инфраструктуру разработки

Условия:

  • Высокий доход и премии каждые полгода за эффективную работу
  • Возможность работать над ещё не решёнными задачами, участвовать в обсуждении и предлагать идеи, влиять на процесс и результат
  • Сильная команда, с которой можно расти
  • Расширенная программа ДМС: стоматология, обследования и многое другое
  • Оплата 80% стоимости ДМС для супругов и детей
  • Компенсация оплаты питания
  • Корпоративные скидки в бассейнах, фитнес-центрах и магазинах
  • Курсы, тренинги, участие в конференциях
  • Гибкий график работы
  • Бесплатная парковка