Pull to refresh
202.8
AvitoTech
У нас живут ваши объявления

Разбираем iOS-приложение Avito: Ask Me Anything

Reading time4 min
Views8.7K

Привет! Сегодня в нашем блоге мы проводим уже традиционную секцию вопросов и ответов Ask Me Anything. (До этого были АМА по бэкенду и по android-разработке). Продолжаем хорошую традицию. На этот раз речь пойдёт о разработке под iOS в целом и об особенностях приложения Авито в частности.



Как работается с приложением самого популярного сайта объявлений в России? Спросите у нас! Мы ответим на все комментарии первого уровня, которые появятся здесь до полудня 6 июня по московскому времени. Под катом я представляю семь моих коллег, которые будут с вами на связи, рассказываю немного об iOS-разработке в Авито и о возможных темах диалога.


UPD: Официально мы закрываем АМА, но по возможности обещаем отвечать на комментарии. Спасибо всем за участие!


Участники АМА


Евгений Суворов kokax


image
«Руководитель команды мобильной архитектуры, которая отвечает за техническое качество продукта, удовлетворенность разработчиков разработкой и развитием/поддержкой внутренних инструментов разработчиков. В разработке под iOS с 2011 года, в Авито стал первым мобильным разработчиком в 2014».


Алексей Шпирко truealex


image
«Руководитель команды, занимающейся ускорением релизов мобильных приложений, построением CI/CD в мобильных приложениях, разработкой инструментов для UI-тестов. В Авито с 2014 года. Про то, чем я занимаюсь, можно подробнее узнать, посмотрев мой доклад для Mobius 2018 по ссылке».


Иван Бондарь ivanbondar


image
«Руководитель группы разработки мобильных приложений, занимаюсь разработкой под iOS с 2012 года, присоединился к команде Авито 2,5 года назад. Совмещаю роли iOS-разработчика, скрам-мастера и руководителя небольшой кросс-функциональной команды. Помимо iOS немного пишу backend, помогаю другим командам».


Артем Разинов artyom-razinov


image
«iOS-разработчик, в iOS с 2011 года, в Авито чуть более трёх лет. Занимался всем, в последнее время на 100% погружен в UI-автотестирование — инструменты, CI/CD и все такое. Мои хобби и увлечения: автотестирование, диплинкинг, гибкое API, кодогенерация, хаки, трюки и обманы».


Алексей Кудрявцев WEStor


image
«iOS-разработчик юнита Мессенджер, мейнтейнер проекта SwiftyVK, звукарь подкаста Podlodka. В Авито с января 2017 года. За это время успел поработать над разными частями iOS-приложения в нескольких юнитах. До Авито работал в небольших стартапах, делал pet-project’ы под iOS и MacOS. Помимо разработки люблю в свободное время побегать, покатать на велосипеде или что-нибудь почитать».


Тимур Юсипов fizmatchel


image
«iOS-разработчик юнита Mobile Architecture. Разрабатываю под iOS с 2012 года. В Avito почти 3 года. Занимался за это время много чем, прошел путь от фичовой разработки до платформенной.
В последнее время занимаюсь:


  • модуляризацией монолита (разбили таргет с 2000+файлами на 40+ модулей),
  • оптимизацией сборки путем упрощения графа зависимостей между модулями,
  • созданием и сопровождением переиспользуемых разработчиками утилит: обертки над UICollectionView, инструмента для навигации, инструмента для диплинкинга, своих правил Swiftlint, Xcode-шаблонами для быстроты написания нового кода и прочей инфраструктурой,
  • автоматизацией замеров различных технических характеристик (скорость запуска, скорость чистой сборки, утилизация CPU на чистой сборке, размеры модулей, количество контрибьюторов модулей, …).
    Увлекаюсь футболом, коньками и роликами, пляжным волейболом, велосипедом, палаточными походами».

Вадим Смаль vadimsmal


image
«iOS-разработчик юнита Mobile Architecture. Разрабатываю под MacOS / iOS с 2012 года. В Авито уже 1.5 года. Занимаюсь разработкой решений для увеличения скорости разработки и поддержания качества приложения: toggle, DI, система отправки аналитики, автоматизированные замеры метрик, различные проверки состояния проекта и прочее.
Интересуюсь изучением новых технологий, таких, как Machine learning и blockchain. Изучаю новые платформы, подходы и языки, например, микросервисы на Go».


Немного фактов про iOS-разработку в Avito


  • Мы в Avito уделяем много внимания мобильным приложениям. И планируем сохранять этот тренд.
  • Команда iOS-разработчиков использует Swift. Он заменил Objective-C в наших продуктах.
  • Мы инвестируем в развитие и продвижение инженерных практик — CI, CD, Code Review, автоматизация тестирования.
  • Важная особенность iOS-разработки в Avito — модульная архитектура, позволяющая нескольким группам разработчиков развивать крупный проект без коллизий и оперативно реагировать на нужды пользователей.

Возможные вопросы и темы для обсуждения


  • Как устроено наше приложение.
  • Как мы ведём разработку нашего iOS-приложения большой командой.
  • Монорепозиторий для кода: «боли» и профиты
  • Рабочие процессы: код-ревью, пулл реквесты, запуск тестов, проверки.
  • CI/CD.
  • Автоматизированное тестирование.
  • Легаси: как мы с этим боремся.
  • Внутренние решения для разработки: навигация, кодогенерация, feature-toggle, networking, решение для построения списков, DI, аналитика, deep links.
  • Замеры и оптимизация метрик: время сборки/запуска, размер приложения, количество зависимостей, утилизация CPU на сборке.
  • Продуктовая разработка, кросс-функциональность, A/B тестирование.

Материалы о разработке под iOS с участием сотрудников Avito



Ждём ваших вопросов в комментариях!

Tags:
Hubs:
Total votes 17: ↑17 and ↓0+17
Comments23

Articles

Information

Website
avito.tech
Registered
Founded
2007
Employees
5,001–10,000 employees
Location
Россия