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

Наш продукт

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

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

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

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

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

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

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

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

  • Swift, RxSwift, Combine, SDWebImage, Alamofire, Fastlane;
  • UIKit, SwiftUI;
  • AppMetrica, SpeechKit, YandexMapsMobile;
  • Kotlin Native, Ktor, Kinzhal, Kotlin Coroutines/Flow, KotlinX Serialization;
  • CI на TeamСity;
  • UI-тесты на XCTest & Allure;
  • Модульность на Cocoapods.

Какие сейчас есть вызовы?

Прямо сейчас в разгаре большая «стройка» по UI-тестам. Причём и тут мы используем Kotlin Native, чтобы реализовать общую логику тестов между платформами. Также мы в процессе перехода на релиз двух приложений — Карт и Навигатора — из одной кодовой базы со всеми сопутствующими проблемами. Впереди рывок по процессам: хотим выпускать обновления в два раза чаще, перейти на еженедельный цикл.

Помимо этого:

  • активно внедряем SwiftUI;
  • заменяем RxSwift на Combine;
  • оптимизируем сборку;
  • планируем переход на SPM;
  • планируем проект по оптимизации производительности приложения (время старта, энергопотребление) и пару крупных рефакторингов.

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

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

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

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

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

Что мы предлагаем

Расширенная медицинская страховка начинает работать с первого месяца в Яндексе. В неё входят стоматология, ежегодные чекапы, неотложная помощь за рубежом, лечение критических заболеваний, в том числе онкологии, и страхование от несчастных случаев.

А также:
  • психотерапия в офисе или онлайн-сервисах;
  • лазерная коррекция зрения через год работы;
  • ведение беременности и роды — через два года.
Страховка для родственников по системе 80/20

Мы оплачиваем 80% стоимости ДМС для детей и супругов, вы — остальные 20%.

В Яндексе есть всё, чтобы постоянно развиваться и учиться новому: внутренняя образовательная платформа, менторство и программы для начинающих и опытных руководителей.

А также:
  • оплата участия в профильных конференциях;
  • скидка 50% на изучение иностранных языков.

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

Во всех крупных офисах Яндекса есть спортзалы со всем необходимым: тренажёрами, спортивным инвентарём, душевыми, шкафчиками для одежды и вещей.

Можете заниматься самостоятельно, а можете с корпоративным тренером.

А также:
  • бесплатные онлайн-тренировки с FITMOST;
  • скидки в фитнес-клубах, бассейнах, студиях йоги, скалодромах и других местах.
Спортивный клуб Яндекса

В Яндексе есть спортивный клуб и много спортивных команд. У них есть свои лидеры, чаты, программы тренировок. А ещё они регулярно участвуют в забегах, триатлонах, «Гонке героев», футбольных и других соревнованиях.

Вы сможете присоединиться к существующим командам или собрать свою.

Гибкий график

У нас нет фиксированного времени начала и конца рабочего дня — работайте так, как удобно вам и вашей команде.

Гибридный формат

Если для ваших задач не нужно быть в офисе каждый день, можно приходить 2–3 раза в неделю.

Всё для детей

Страхование, детские дни в офисе, подарки на рождение детей и чекапы при планировании беременности.

Жилищные займы

Льготная ставка на покупку жилья и улучшение жилищных условий — в зависимости от стажа, позиции и результатов ревью. Действует для сотрудников, работающих в российских офисах Яндекса.

Спасибо за отклик!

Мы свяжемся с вами в течение недели.

Fri Feb 09 2024 12:47:58 GMT+0300 (Moscow Standard Time)