Команда мобильной разработки в Туру.ру
Мы связываем удивительный мир путешествий и открытий с обычными людьми, предоставляя удобные и полезные инструменты для планирования поездок
  • 1
    Нашим приложением пользуются больше 10 миллионов человек по всей России и миру
  • 2
    Мы ведем разработку на современном стеке для каждой из платформ (iOS и Android)
  • 3
    У нас есть моно-приложения по каждому виду транспорта, которые мы поддерживаем
  • 4
    В наших планах — сделать приложение Туту самым крутым тревел-приложением, которое позволит нашим клиентам не только покупать билеты, но и организовывать свои поездки и получать для этого всю необходимую информацию и поддержку
Нашим приложением пользуются больше 10 миллионов человек по всей России и миру.
В наших планах — сделать приложение Туту самым крутым тревел-приложением, которое позволит нашим клиентам не только покупать билеты, но и организовывать свои поездки и получать для этого всю необходимую информацию и поддержку.
Мы ведем разработку на современном стеке для каждой из платформ (iOS и Android).
А ещё у нас есть моно-приложения по каждому виду транспорта, которые мы поддерживаем.

Про команду
Мы на Mobius!
Заходи послушать и поговорить:


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

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



Наш ключевой продукт — это единое приложение Туту.ру, которое позволяет нашим клиентам находить и покупать билеты на самолет, поезд и автобус (а скоро ещё и отели!).

Tutu на конференции по мобильной разработке Mobius
25-26 мая
25 мая
18:15 – 19:00
Евгений Суханов, экс-лид iOS-команды в Туту

Максим Пономаренко, старший разработчик в iOS-команде Туту
26 мая
18:15 – 19:00
Андрей Мацуленко, руководитель продукта «Электрички» в Туту.ру

Ариэль Лейва Литвиненко, скрам-мастер в Туту.ру

Алексей Зайцев, инженер-разработчик в команде «Авиа»

Иван Садовой, ведущий инженер-разработчик в команде «Авиа»

Пройди квизы на базе реальных вопросов с техсобесов в Туту и выиграй мерч или гаджеты

Комплекты призов разыгрываются каждый день. Пройти квиз можно только раз. Если верно ответивших будет больше, чем призов, мы разыграем их рандомом среди давших наибольшее число верных ответов.
Отправка только по РФ.
400
15
20
30
штатных сотрудников, увлечённых путешествиями
на мировом рынке
онлайн путешествий
крупнейших туристических онлайн-ресурсов в мире
путешественников, пользующихся нашими мобильными приложениями
Туту.ру это:
удивительный мир путешествий и открытий с обычными людьми, предоставляя удобные и полезные инструменты для планирования поездок
+
лет
топ
млн
iOS
Используем RxSwift, в обозримом будущем – переезд на Combine. Вот зря некоторые из-за него боятся приходить к нам в гости. Сначала вы три дня бьетесь головой об стену, а потом не понимаете, как можно было жить по-другому. Одна из самых важных библиотек – ComposableArchitecture, это реактивная стейт-машина уровня модуля. Нам нравится ее правильная архитектура, рассчитанная на очень быстрые доработки и развитие приложения. В стандартном мобильном приложении источник правды в районе базы данных или in-memory базы. А тут он выше, а база — бекап для состояния.

SwinjectStoryboard на холде, потому что всю новую верстку мы делаем в коде. Кстати, мы уже готовы к SwiftUI, так как довольно давно живем на Data Driven View. Ждем поднятия нижней версии до iOS 13, сейчас мы поддерживаем 12.

Moya — верхнеуровневый фреймворк для работы с сетью. Позволяет структурировать сетевой стек приложения.

Github Actions для CI/CD. Мы посчитали по деньгам и решили, что уйдем в облако, так выгоднее.

Серьезно относимся к качеству нашего кода, фичи без тестов не проходят ревью. Помимо unit-тестов мы используем UI и snapshot тесты, а с Data Driven подходом это делать особенно приятно.

Ещё из инструментов есть SwiftLint - для линта, SwiftGen - генерит ресурсы. Figma понятно, зачем. Закопали Sketch и Zeplin.
Android
Kotlin — все переезжают с Java на него, мы тоже. Кстати, недавно в нашем основном репозитории мы перевалили за 50% кода на Kotlin. Java не бежим выпиливать, но каждый раз, когда сильно меняем модуль, переписываем его на новом стеке. Граница такая: если задача занимает больше 1 часа на исправление, то лучше переписать на Kotlin.

В качестве основного подхода к архитектуре взяли Android Clean Architecture.

Data-driven View — подход отделения слоя view от всего остального. Идея простая, как дрова: единственный метод — render, и это позволяет распараллелиться разработчикам.

Dagger2 — абсолютный дефолт стека.

В легаси есть RxJava1, а используется RxJava2. В новых модулях вовсю пробуем корутины. Захолдировали Realm, Room – наш фаворит.

Пишем Unit и UI-тесты. SnaphotTesting — внедряем, думаем, пробуем.

Для CI/CD используем облачный Github Actions, облака дешевле людей.

Figma (переехали со Sketch, в одном месте редактируешь и смотришь макеты), а Zeplin закопали.

Из прикольных историй, что в самом дальнем углу у нас лежит нулевая версия библиотеки Cicerone — Костя Цховребов работал у нас в незапамятные времена и писал её прямо инлайном.
Команда ПТТ
Команда Mobile Core
Команда ПТТ
Mobile Core team
Tilda Publishing
Что крутого непосредственно по разработке?
Ещё немного о нашем продукте
Серёжа:
Мне понравился Composable. Пилить редьюсеры, системы, а потом покрывать это тестами. Все аккуратно и структурировано. Правда тесты не всегда спасают от каких-то крешей, но это уже другая история...
Макс:
Круто, что у нас есть эволюция технологий. Раньше был RxFeedback, сейчас переходим на Composable. Новый модуль будем писать уже на SwiftUI. Не застой, а реально берем то что нам подходит.

Нравится, что есть Core-тима и есть core-компоненты собственной разработки. Обычно на все используют опенсорсные решения, а у нас еще и свое есть.
Женя:
С точки зрения iOS разработки гильдия есть. Можно раз в неделю собраться, послушать выступления, обсудить какие-то вопросы. То же самое Ревизорро, где ты всем разработчикам показываешь свой PR и вы вместе делаете ревью.
Макс:
У нас прям разные вакансии. Команды и задачи между собой сильно отличаются. Нет такого, что есть 6 фича тим, и они пилят примерно одно и то же. Есть выбор и это здорово.
Tilda Publishing
Какими плюшками пользуетесь?
Серёжа:
Мне нравится, что в Туту идут постоянные изменения. Работаешь, работаешь, а потом тебе внезапно прилетает, что появились завтраки по утрам, или что у нас велосипедная парковка открылась. Каждый понедельник влетает приятная новость, что ты не просто винтик в системе, а что тут большая семья. В предыдущей компании разработчики всегда узнавали все последними, а тут система открытости. Можешь прийти на демо любой команды – задавай свои вопросы. То есть ты знаешь, что происходит в другой части компании.

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

И в целом приятные штуки: бонусы за чтение книг. Система self-review заставляет задумываться чем ты целый месяц занимался. Ретроспектива себя и своей работы, а в итоге это еще и на квартальную премию влияет.

Еще очень нравится открытость ко всевозможных переходам между командами. Кто захотел – в тимлиды пошел, кто захотел – из тестировщика в разработчика переходит. С точки зрения iOS разработки гильдия есть. Можно раз в неделю собраться, послушать выступления, обсудить какие-то вопросы. То же самое Ревизорро, где ты всем разработчикам показываешь свой PR и вы вместе делаете ревью.
Макс:
Очень нравится обратная связь от директоров на встречах на всю компанию - прикольная штука. Нравится, что задаешь любой вопрос и тебе отвечают.

Чем из плюшек пользуюсь: книгами точно пользуюсь. Вот раньше я не особо читал, а в Туту начал. Не знаю, может тут финансовая мотивация работает. По self-review согласен с Серегой, что помогает рефлексировать. А на 1-1 с тимлидов выравниваешь ожидания себя от себя и тимлида от тебя. Кстати, 1-1 тоже прикольные, нигде такого не видел.