Hola Hoy en nuestro blog ya tenemos la tradicional sección de preguntas y respuestas de Ask Me Anything. (Antes de eso, había AMA para el backend y para el desarrollo de Android ). Seguimos una buena tradición. Esta vez nos centraremos en el desarrollo para iOS en general y las características de la aplicación Avito en particular.

¿Cómo funciona con la aplicación del sitio de clasificados más popular en Rusia? Pregúntanos! Responderemos a todos los comentarios del primer nivel, que aparecerán aquí antes del mediodía del 6 de junio, hora de Moscú. Debajo del corte, represento a siete de mis colegas que se pondrán en contacto con usted, le contarán un poco sobre el desarrollo de iOS en Avito y sobre posibles temas para el diálogo.
UPD: Cerramos oficialmente AMA, pero prometemos responder a los comentarios siempre que sea posible. ¡Gracias a todos por participar!
Miembros de AMA
Evgeny Suvorov kokax

“El jefe del equipo de arquitectura móvil, que es responsable de la calidad técnica del producto, la satisfacción de los desarrolladores con el desarrollo y el desarrollo / soporte de herramientas internas para desarrolladores. En desarrollo para iOS desde 2011, Avito se convirtió en el primer desarrollador móvil en 2014 ".

“El jefe del equipo participó en acelerar los lanzamientos de aplicaciones móviles, crear CI / CD en aplicaciones móviles, desarrollar herramientas para pruebas de IU. En Avito desde 2014. Puede encontrar más información sobre lo que estoy haciendo mirando mi informe para Mobius 2018 aquí ”.

“El jefe del equipo de desarrollo de aplicaciones móviles, que he estado desarrollando para iOS desde 2012, se unió al equipo de Avito hace 2.5 años. Combino los roles de un desarrollador de iOS, un scrum master y el jefe de un pequeño equipo multifuncional. Además de iOS, estoy escribiendo un pequeño backend, ayudando a otros equipos ".

“Un desarrollador de iOS, en iOS desde 2011, en Avito hace poco más de tres años. Estaba involucrado en todo, recientemente, está 100% inmerso en pruebas automáticas de UI: herramientas, CI / CD y todo eso. Mis aficiones y aficiones: autotesting, diplinking, API flexible, generación de código, hacks, trucos y trucos ".
Alexey Kudryavtsev WEStor

“IOS-desarrollador de la unidad Messenger, mantenedor del proyecto SwiftyVK, ingeniero de sonido de podcast Podlodka. En Avito desde enero de 2017. Durante este tiempo, logré trabajar en diferentes partes de la aplicación iOS en varias unidades. Antes de Avito, trabajó en pequeñas startups, realizó proyectos de mascotas para iOS y MacOS. Además del desarrollo, me gusta correr, andar en bicicleta o leer algo en mi tiempo libre ".

“El desarrollador de iOS de la unidad Mobile Architecture. He estado desarrollando para iOS desde 2012. Avito tiene casi 3 años. Estuve involucrado en muchas cosas durante este tiempo, pasé de un desarrollo de características a un desarrollo de plataforma.
Recientemente comprometido en:
- modularización de monolitos (rompió el objetivo con más de 2000 archivos en más de 40 módulos),
- optimizando el ensamblaje simplificando el gráfico de dependencia entre módulos,
- creación y mantenimiento de utilidades reutilizadas por los desarrolladores: envoltorios sobre UICollectionView, una herramienta de navegación, una herramienta de enlace, sus propias reglas Swiftlint, plantillas Xcode para la velocidad de escribir código nuevo y otra infraestructura,
- Automatización de mediciones de diversas características técnicas (velocidad de arranque, velocidad de ensamblaje limpia, utilización de CPU en un ensamblaje limpio, tamaños de módulos, número de contribuyentes de módulos, ...).
Soy aficionado al fútbol, el patinaje sobre hielo y el patinaje sobre ruedas, el voleibol de playa, el ciclismo y el campamento ".

“El desarrollador de iOS de la unidad Mobile Architecture. Desarrollado para MacOS / iOS desde 2012. En Avito por 1.5 años. Estoy desarrollando soluciones para aumentar la velocidad de desarrollo y mantener la calidad de la aplicación: alternar, DI, sistema de envío de análisis, mediciones de métricas automatizadas, varias comprobaciones de estado del proyecto y más.
Estoy interesado en aprender nuevas tecnologías, como el aprendizaje automático y blockchain. Estoy aprendiendo nuevas plataformas, enfoques e idiomas, por ejemplo, microservicios en Go ".
Algunos datos sobre el desarrollo de iOS en Avito
- En Avito, prestamos mucha atención a las aplicaciones móviles. Y planeamos mantener esta tendencia.
- El equipo de desarrollo de iOS usa Swift. Él ha reemplazado Objective-C en nuestros productos.
- Invertimos en el desarrollo y promoción de prácticas de ingeniería: CI, CD, revisión de código, automatización de pruebas.
- Una característica importante del desarrollo de iOS en Avito es su arquitectura modular, que permite a varios grupos de desarrolladores desarrollar un gran proyecto sin colisiones y responder rápidamente a las necesidades del usuario.
Posibles preguntas y temas para discusión
- Cómo funciona nuestra aplicación
- Cómo estamos desarrollando nuestra aplicación para iOS con un gran equipo.
- Monorepository para el código: "dolores" y ganancias
- Flujos de trabajo: revisión de código, solicitudes de extracción, ejecución de pruebas, verificaciones.
- CI / CD.
- Pruebas automatizadas.
- Legado: cómo lidiamos con esto.
- Soluciones de desarrollo interno: navegación, generación de código, alternancia de funciones, redes, solución para crear listas, DI, análisis, enlaces profundos.
- Mediciones y optimización de métricas: tiempo de compilación / lanzamiento, tamaño de la aplicación, número de dependencias, utilización de la CPU en el ensamblaje.
- Desarrollo de productos, funcionalidad cruzada, pruebas A / B.
Contenido de desarrollo de iOS con Avito
¡Estamos esperando tus preguntas en los comentarios!