Hello! Today in our blog we are already holding the traditional question and answer section Ask Me Anything. (Before that, there were AMA on backend and on android-development ). We continue a good tradition. This time it will be about developing for iOS in general and about the features of the Avito application in particular.

How to work with the application of the most popular site ads in Russia? Ask us! We will respond to all comments of the first level, which will appear here before noon on June 6, Moscow time. Under the cut, I present seven of my colleagues who will be in touch with you, talk a little about iOS development in Avito and about possible topics of dialogue.
UPD: Officially, we close the AMA, but if possible we promise to respond to comments. Thank you all for participating!
AMA members
Evgeny Suvorov kokax

“The head of the mobile architecture team, which is responsible for the technical quality of the product, developer satisfaction with the development and development / support of internal developer tools. In development for iOS since 2011, Avito became the first mobile developer in 2014. "

“The head of the team engaged in accelerating the release of mobile applications, building CI / CD in mobile applications, developing tools for UI tests. In Avito since 2014. You can learn more about what I am doing by looking at my report for Mobius 2018 here . ”

“The head of the mobile application development team, working on iOS development since 2012, joined the Avito team 2.5 years ago. I combine the roles of an iOS developer, a scrum master and a leader of a small cross-functional team. In addition to iOS, I am writing a little backend, helping other teams. ”

“The iOS developer, on iOS since 2011, has been in Avito for just over three years. I did everything, lately I am 100% immersed in UI self-testing - tools, CI / CD and all that. My hobbies are auto-testing, deeplinking, flexible APIs, code generation, khaki, tricks and cheats. ”
Alexey Kudryavtsev WEStor

“IOS developer unit Messenger, maintainer of the SwiftyVK project, soundman of Podlodka podcast. In Avito since January 2017. During this time, I managed to work on different parts of the iOS application in several units. Before Avito, he worked in small startups, did pet-projects for iOS and MacOS. In addition to development, I like to run, ride a bike or read something in my free time. ”

“IOS developer of Mobile Architecture unit. I develop under iOS since 2012. In Avito almost 3 years. During this time I did a lot of things, went from feature to platform development.
Recently doing:
- modolization of the monolith (broken target with 2000 + files on 40+ modules),
- assembly optimization by simplifying the dependency graph between modules,
- creating and maintaining reusable utilities by developers: wrappers over UICollectionView, navigation tool, diplinking tool, Swiftlint rules, Xcode templates for fast writing new code and other infrastructure,
- automation of measurements of various technical characteristics (startup speed, clean assembly speed, CPU utilization on a clean assembly, module sizes, number of module contributors, ...).
I take a great interest in football, skates and rollers, beach volleyball, bicycle, tent trips ”.

“IOS developer of Mobile Architecture unit. I am developing under MacOS / iOS since 2012. Avito is already 1.5 years old. I am engaged in developing solutions for increasing the speed of developing and maintaining the quality of an application: toggle, DI, system for sending analytics, automated metering of metrics, various checks of the project status and so on.
I am interested in learning new technologies, such as Machine learning and blockchain. I study new platforms, approaches and languages, for example, microservices on Go. ”
Some facts about Avito's iOS development
- We at Avito pay a lot of attention to mobile applications. And we plan to maintain this trend.
- The team of iOS developers uses Swift. He replaced Objective-C in our products.
- We invest in the development and promotion of engineering practices - CI, CD, Code Review, test automation.
- An important feature of Avito's iOS development is a modular architecture that allows several groups of developers to develop a large project without collisions and respond quickly to the needs of users.
Possible questions and topics for discussion
- How our application works.
- How we are developing our iOS application with a large team.
- Monorepository for code: “pains” and profits
- Workflows: code review, pull requests, run tests, checks.
- CI / CD.
- Automated testing.
- Legacy: how do we fight it?
- Internal development solutions: navigation, code generation, feature-toggle, networking, list solution, DI, analytics, deep links.
- Measurements and optimization of metrics: build / run time, application size, number of dependencies, CPU utilization on the build.
- Product development, cross-functionality, A / B testing.
IOS development materials with Avito employees
We are waiting for your questions in the comments!