Разработчик для 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, тимбилдинговые активности, неформальное общение, вечеринки, поддерживаем дружескую атмосферу. Приветствуем участие в школах мобильной разработки в качестве преподавателей, помогаем с выступлениями на конференциях. Возможно вы видели наши доклады:

We expect that you

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

Benefits

Enhanced medical insurance begins from your first month at Yandex. It includes dental care, check-ups, emergency assistance abroad, critical illness treatment, including oncology, and accident insurance for those who engage in active leisure activities.

Insurance for family members on an 80/20 basis:

We cover 80% of the cost of medical insurance for children and spouses, and you cover the remaining 20%.

At Yandex, we have everything you need for continuous growth and learning: an internal educational platform, mentoring, and programs for both beginners and experienced leaders.

Additionally:
  • Reimbursement for participation in industry-related conferences.
  • 50% discount on foreign language courses.

Moreover, at Yandex, we have internal projects where our employees share their expertise, discuss complex topics, and analyze their project cases.

At Yandex offices, we have fully equipped gyms with exercise machines, equipment, showers, and lockers for your convenience. You can work out independently or with a trainer.

Additionally:
  • Free workouts with FITMOST.
  • Discounts at fitness clubs, pools, yoga studios, climbing walls, and other places.
Yandex sports club:

At Yandex, we have a sports club and numerous sports teams. They have their leaders, group chats, and training programs. They regularly participate in running events, triathlons, the "Race of Heroes", football matches, and other competitions.

You can join existing teams or create your own.

Flexible schedule

We don't have a set start and end time for the workday — work when it's convenient for you and your team.

Hybrid format

Work where it's most convenient for you — for example, part of the week from the office and part from home.

Everything for children

Insurance, kids' days at the office, gifts for children's birthdays, and check-ups for family planning.

Housing Loans

Benefits for the purchase of housing - depending on length of service, position and review results. Operate in Russia where there are Yandex offices.

Thank you for your apply!

We will contact you within a week.

Mon Feb 12 2024 19:00:36 GMT+0300 (Moscow Standard Time)