Salut Aujourd'hui, dans notre blog, nous organisons déjà la section traditionnelle de questions-réponses Ask Me Anything. (Avant cela, il y avait des AMA pour le backend et pour le développement Android ). Nous continuons une bonne tradition. Cette fois, nous nous concentrerons sur le développement d'iOS en général et sur les fonctionnalités de l'application Avito en particulier.

Comment ça marche avec l'application du site de petites annonces le plus populaire en Russie? Demandez nous! Nous répondrons à tous les commentaires du premier niveau, qui apparaîtront ici avant midi le 6 juin, heure de Moscou. Sous la coupe, je représente sept de mes collègues qui seront en contact avec vous, parlent un peu du développement iOS dans Avito et des sujets de dialogue possibles.
UPD: Nous fermons officiellement AMA, mais nous nous engageons à répondre aux commentaires dans la mesure du possible. Merci à tous pour votre participation!
Membres de l'AMA
Evgeny Suvorov kokax

«Le chef de l'équipe d'architecture mobile, qui est responsable de la qualité technique du produit, de la satisfaction des développeurs avec le développement et le développement / support des outils de développement internes. En développement pour iOS depuis 2011, Avito est devenu le premier développeur mobile en 2014. "

«Le chef de l'équipe participe à l'accélération des versions des applications mobiles, à la création de CI / CD dans les applications mobiles, au développement d'outils pour les tests d'interface utilisateur. À Avito depuis 2014. Vous pouvez en savoir plus sur ce que je fais en consultant mon rapport pour Mobius 2018 ici . »

«Le chef de l'équipe de développement d'applications mobiles, que je développe pour iOS depuis 2012, a rejoint l'équipe Avito il y a 2,5 ans. Je combine les rôles d'un développeur iOS, d'un Scrum Master et du chef d'une petite équipe interfonctionnelle. En plus d'iOS, j'écris un petit backend pour aider les autres équipes. "

«Un développeur iOS, dans iOS depuis 2011, chez Avito un peu plus de trois ans. Il était engagé dans tout, récemment, il est 100% immergé dans l'auto-test UI - outils, CI / CD et tout ça. Mes hobbies et hobbies: autotest, diplinking, API flexible, génération de code, hacks, trucs et astuces. "
Alexey Kudryavtsev WEStor

«Développeur IOS de l'unité Messenger, mainteneur du projet SwiftyVK, ingénieur du son podcast Podlodka. À Avito depuis janvier 2017. Pendant ce temps, j'ai réussi à travailler sur différentes parties de l'application iOS en plusieurs unités. Avant Avito, il a travaillé dans de petites startups, a fait des projets pour animaux de compagnie pour iOS et MacOS. En plus du développement, j'aime courir, faire du vélo ou lire quelque chose pendant mon temps libre. »

«Le développeur iOS de l'unité Mobile Architecture. Je développe pour iOS depuis 2012. Avito a presque 3 ans. J'étais engagé dans beaucoup de choses pendant ce temps, je suis passé d'un développement de fonctionnalités à un développement de plateforme.
Récemment engagé dans:
- modularisation monolithique (a cassé la cible avec plus de 2000 fichiers en plus de 40 modules),
- optimiser l'assemblage en simplifiant le graphe de dépendances entre modules,
- création et maintenance d'utilitaires réutilisés par les développeurs: wrappers sur UICollectionView, un outil de navigation, un outil de diplinking, ses propres règles Swiftlint, des modèles Xcode pour accélérer l'écriture de nouveau code et d'autres infrastructures,
- automatisation des mesures de différentes caractéristiques techniques (vitesse de démarrage, vitesse d'assemblage propre, utilisation du CPU sur un assemblage propre, tailles de module, nombre de contributeurs de module, ...).
J'aime le football, le patin à glace et le patin à roulettes, le beach-volley, le vélo, le camping. »

«Le développeur iOS de l'unité Mobile Architecture. Développé pour MacOS / iOS depuis 2012. À Avito depuis 1,5 ans. Je développe des solutions pour augmenter la vitesse de développement et maintenir la qualité de l'application: bascule, DI, système d'envoi d'analyses, mesures de métriques automatisées, vérifications de statut de divers projets et plus encore.
Je suis intéressé à apprendre de nouvelles technologies, telles que l'apprentissage automatique et la blockchain. J'apprends de nouvelles plateformes, approches et langages, par exemple les microservices sur Go. "
Quelques faits sur le développement iOS dans Avito
- Chez Avito, nous accordons beaucoup d'attention aux applications mobiles. Et nous prévoyons de maintenir cette tendance.
- L'équipe de développement iOS utilise Swift. Il a remplacé Objective-C dans nos produits.
- Nous investissons dans le développement et la promotion de pratiques d'ingénierie - CI, CD, révision de code, automatisation des tests.
- Une caractéristique importante du développement iOS dans Avito est son architecture modulaire, qui permet à plusieurs groupes de développeurs de développer un grand projet sans collision et de répondre rapidement aux besoins des utilisateurs.
Questions et sujets de discussion possibles
- Comment fonctionne notre application.
- Comment nous développons notre application iOS avec une grande équipe.
- Monoréposition du code: «douleurs» et profits
- Workflows: révision de code, pull demandes, exécution de tests, vérifications.
- CI / CD.
- Test automatisé.
- Héritage: comment nous gérons cela.
- Solutions de développement interne: navigation, génération de code, bascule de fonctionnalités, mise en réseau, solution de création de listes, DI, analytique, liens profonds.
- Mesures et optimisation des métriques: temps de construction / lancement, taille de l'application, nombre de dépendances, utilisation du CPU dans l'assemblage.
- Développement de produits, fonctionnalité croisée, tests A / B.
Contenu de développement IOS avec Avito
Nous attendons vos questions dans les commentaires!