- PVSM.RU - https://www.pvsm.ru -

Avito. iOS. Ask Me Anything

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

Avito. iOS. Ask Me Anything - 1

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

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

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

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

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

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

Иван Бондарь ivanbondar [6]

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

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

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

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

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

Тимур Юсипов fizmatchel [11]

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

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

Вадим Смаль vadimsmal [12]

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

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

Автор: Антонина Татчук

Источник [25]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/razrabotka/281992

Ссылки в тексте:

[1] по бэкенду: https://habrahabr.ru/company/avito/blog/339996/

[2] по android-разработке: https://habr.com/company/avito/blog/348622/

[3] kokax: https://habr.com/users/kokax/

[4] truealex: https://habr.com/users/truealex/

[5] по ссылке: https://www.youtube.com/watch?amp=&v=r3rUedCbe7Q&app=desktop

[6] ivanbondar: https://habr.com/users/ivanbondar/

[7] artyom-razinov: https://habr.com/users/artyom-razinov/

[8] WEStor: https://habr.com/users/westor/

[9] SwiftyVK: https://github.com/SwiftyVK/SwiftyVK

[10] Podlodka: https://soundcloud.com/podlodka

[11] fizmatchel: https://habr.com/users/fizmatchel/

[12] vadimsmal: https://habr.com/users/vadimsmal/

[13] Работа с дизайном в Avito — Артём Разинов и Инесса Воронина : https://www.youtube.com/watch?v=Dozi46_dfKw&list=PLknJ4Vr6efQGw9-0Jyh6siKakBOXAD259&index=1

[14] Back-end driven UI — Алексей Шпирко: https://www.youtube.com/watch?v=JGBxXxV1APs&list=PLknJ4Vr6efQGw9-0Jyh6siKakBOXAD259&index=2

[15] Егор Толстой — May the Code Review be with you: https://www.youtube.com/watch?v=RFGiRuLERmc&list=PLknJ4Vr6efQGw9-0Jyh6siKakBOXAD259&index=3

[16] Marshroute: удобный и расширяемый роутинг в iOS-приложении — Тимур Юсипов: https://www.youtube.com/watch?v=kyOm_dC038s&list=PLknJ4Vr6efQGw9-0Jyh6siKakBOXAD259&index=4

[17] Media Picker — to infinity and beyond — Андрей Юткин: https://www.youtube.com/watch?v=4x6O0hepp2g&list=PLknJ4Vr6efQGw9-0Jyh6siKakBOXAD259&index=5

[18] DeepLink’и в Avito — Артём Разинов: https://www.youtube.com/watch?v=060ERE8ZMGI&list=PLknJ4Vr6efQGw9-0Jyh6siKakBOXAD259&index=6

[19] Mach-O, lldb, dSYM на практике — Владислав Алексеев: https://www.youtube.com/watch?v=P7Voxj1IIFM&list=PLknJ4Vr6efQGw9-0Jyh6siKakBOXAD259&index=12

[20] Метрики всему голова — Вадим Смаль: https://www.youtube.com/watch?v=WMe2xeUpNDQ&list=PLknJ4Vr6efQGw9-0Jyh6siKakBOXAD259&index=13

[21] Мессенджер наизнанку, или Как сегодня сделать мессенджер в мобильном iOS-приложении — Максим Соколов: https://www.youtube.com/watch?v=AEGHefuY4Q0&list=PLknJ4Vr6efQGw9-0Jyh6siKakBOXAD259&index=15

[22] Paparazzo. Мощный, стильный, свой. Часть I: https://habr.com/company/avito/blog/326774/

[23] Paparazzo. Мощный, стильный, свой. Часть II: https://habr.com/company/avito/blog/327486/

[24] Куда пойти, что читать, с кем общаться на профессиональные темы: дорожная карта для iOS-разработчика: https://habr.com/company/avito/blog/333348/

[25] Источник: https://habr.com/post/413211/?utm_source=habrahabr&utm_medium=rss&utm_campaign=413211