Команда мобильной разработки в Туру.ру
Мы связываем удивительный мир путешествий и открытий с обычными людьми, предоставляя удобные и полезные инструменты для планирования поездок
Призы

1 место: фитнес-браслет

2 место: рюкзак

3 место: худи

4 место: павербанк + наушники

5 место: термос + подушка


Призы

1 место: колонка

2 место: рюкзак

3 место: худи

4 место: зонт + термос

5 место: плед + колонка маленькая

Квиз для iOS-разработчиков
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 — Костя Цховребов работал у нас в незапамятные времена и писал её прямо инлайном.
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 тоже прикольные, нигде такого не видел.