
La aplicación es diferente para la aplicación: hay aquellos que se usan de vez en cuando, y hay aquellos en los que millones de personas pasan mucho tiempo diariamente, instalándolos en un nuevo teléfono inteligente.
La aplicación VKontakte es una de las segundas, por lo que es interesante mirar dentro y comprender quién está trabajando en ella y cómo. Tomamos una breve entrevista del desarrollador de iOS Alexei Savin, preguntando sobre las características del trabajo y la vida.
- ¿Qué estás haciendo exactamente?- Durante los últimos tres años he estado trabajando como desarrollador de iOS en VKontakte. Comprometido en tareas relacionadas con multimedia: video y transmisiones en línea.
"¿Qué hiciste antes de que comenzara tu carrera en TI?"- Como muchos, comenzó con el hecho de que en mi primer año intenté trabajar un poco de forma independiente: estaba creando páginas para tiendas en línea. Luego, mis amigos y yo intentamos crear nuestra propia aplicación móvil. Fue llamado el 9 de mayo. De hecho, era un mapa de la ciudad, en el que estaban marcados los puntos asociados con la Segunda Guerra Mundial, y se podía leer sobre cada uno de ellos. Este fue el primer éxito: se notó la aplicación, apareció en todo tipo de colecciones de temas.
Luego, gradualmente, pasé a trabajar completamente en outsourcing para aplicaciones móviles. Y hace tres años llegó a VK.
- ¿Y cómo llegaste específicamente al desarrollo de iOS con la compra de un iPhone?- Entonces ni siquiera tenía un iPhone. Estaba en mi segundo año, era la época de iOS 6, compré una Mac y quería probarlo. Estaba de moda, se rumoreaba, me preguntaba cómo sería escribir una aplicación móvil, y desde que apareció la Mac, la elección de la plataforma fue obvia. Sin embargo, también probé Android casi al mismo tiempo (como parte de un curso universitario en Java). Pero en comparación con iOS, me gustó más.
- Recientemente, le preguntamos a los desarrolladores de iOS sobre la presentación de Apple, también le preguntaremos: ¿qué teléfono es ahora y desea cambiarlo después de la presentación?- Ahora iPhone X, todavía no planeo mudarme a uno nuevo, generalmente lo hago cada dos años. El año que viene, probablemente tomaré el próximo.
- ¿Qué opinas sobre iOS 12?- El hecho de que el lanzamiento fue sobre la estabilidad es ciertamente agradable. Después de la actualización, parece que una gran cantidad de algunos errores menores molestos han desaparecido. Es decir, decidieron tomarse un descanso por un año para mejorar la estabilidad, y parece haber resultado excelente.
- Pasando al tema de la aplicación VK: ¿cuánto trabajo ha tenido en relación con el lanzamiento de iOS 12?- Curiosamente, en esta versión solo había unos pocos errores menores. Para admitir iOS 12, no necesitaba cambiar completamente nada. La última vez hubo mucho más trabajo, allí pasamos más de una semana.
- Las aplicaciones VK son bien conocidas, pero quién las hace es mucho menos conocido. Dime, ¿cuál es tu equipo móvil, cuántas personas y cómo está organizado?- Ahora hay 18 personas en desarrolladores de iOS. Se componen de diferentes equipos de productos: hay un equipo que se ocupa de los medios, hay un equipo de mensajería, hay un equipo de infraestructura que implementa algunas soluciones comunes utilizadas por otros equipos. Los equipos tienen desarrolladores móviles para ambas plataformas (2-3 personas cada uno), hay desarrolladores de backend; en general, obtenemos una pila completa que cubre completamente sus propias tareas. Sincronizamos regularmente en el marco de la plataforma entre equipos para intercambiar noticias y conocimientos.
- Tienes una gran cantidad de usuarios, ¿cómo afecta esto al desarrollo?- Cualquier situación que considere improbable y que no tenga en cuenta se manifestará de inmediato, e inmediatamente ante miles de usuarios. Chocar contra decenas de miles de personas es aterrador e inusual, pero desarrolla un gran nivel de responsabilidad.
- ¿De dónde provienen las ideas para las funciones y qué sucede con la idea desde el momento de su aprobación hasta el lanzamiento en la App Store? ¿Cómo se desarrolla todo esto?- Cada equipo de producto tiene indicadores clave en los que se enfoca. Por ejemplo, si toma transmisiones en vivo, esta es la cantidad de transmisiones creadas por mes y la cantidad de vistas. Al analizar una característica, determinamos cómo afectará las métricas que son relevantes para nosotros. Solo después de eso decidimos si lo haremos. Entonces el proceso es bastante estándar. Lo incluimos en nuestro plan para el próximo tiempo libre. Si esta es una idea genial, y quieres hacerlo más rápido, puedes mover algo. A continuación, formamos la documentación: lo que necesita el diseño, lo que necesita la API. Después de eso, comenzamos a hacer.
- Que yo entienda, tienes un tren de lanzamiento, ¿puedes contarnos más?- La aplicación se lanza cada dos semanas. Cada equipo debe decir al comienzo de la semana qué planea agregar a este lanzamiento. Cinco días antes del lanzamiento: congelación de funciones, cuando ya no es posible agregar nada nuevo y si alguien no ha logrado completar sus cambios, no se incluirán en este lanzamiento.
- Y cómo se ve técnicamente este proceso, ¿qué pasa con la revisión de código y CI?- Tenemos un código de revisión, hay un CI. Y por cada compromiso, obtenemos una asamblea y postulamos dentro del personal de Singer House: hay alrededor de 200 en total. Todos nuestros empleados ya están acostumbrados a usar compilaciones de prueba de la aplicación. La idea es que nada probado y no verificado no debe entrar en asambleas para los empleados. Si se vierte algo en Dev, el desarrollador asume que la característica está completamente lista: se ha probado y los empleados pueden usarla, esta es una versión estable normal.
Gracias a esto, recibimos comentarios reales de los usuarios que usan este ensamblaje casi todo el día durante dos semanas entre trenes de lanzamiento. De esta manera, podemos formar una retroalimentación.
- Tiene una aplicación atípica (no todos los desarrolladores participan en una gran red social), y la existente está lejos del primer año. ¿Me puede decir cuántas líneas de código hay y qué tan difícil es trabajar con él?- Cuántas líneas de código, no te diré de inmediato. Pero el hecho de que el proyecto tenga muchos años tiene su efecto: una gran cantidad de código heredado, hay lugares en los que aún queda MRC. Y casi todas las soluciones son autoescritas: prácticamente no hay dependencias externas. La aplicación tiene un umbral de entrada bastante alto, incluso debido a esto.
- Con tal umbral, ¿cuánto dura el proceso de incorporación para nuevos desarrolladores?- Todos los nuevos desarrolladores inicialmente entran en el equipo de infraestructura antes de unirse a uno de los otros equipos. Puedes quedarte aquí. Allí pasan uno y medio o dos meses, probablemente este es el "período de adaptación", dentro del cual se familiarizan con la aplicación y realizan algunas tareas pequeñas que no afectarán algo.
- Hablarás con nosotros en Mobius con un informe sobre transmisiones de video en iOS. Cuénteme sobre el proyecto, gracias al cual surgió el informe: ¿de dónde surgió la idea, cómo sucedió esto?- El proyecto es lo que se convirtió en una aplicación separada de
VK Live . La idea surgió cuando aún estaba en la universidad. Mis amigos y yo a menudo tratamos de hacer algún tipo de aplicaciones de demostración, probar algunas ideas y elegir periódicamente temas de moda para esto. Un día, el 1 de enero, después del Año Nuevo, pensamos que hace mucho tiempo no hicimos nada, y deberíamos elegir un tema. Y luego VKontakte realizó un concurso de desarrollo móvil
VK Challenge , como parte de este concurso se propusieron varios temas, y hubo transmisiones en vivo. Pensamos que no sabíamos nada sobre ellos, por lo que será interesante intentarlo. Como resultado, hicieron un prototipo en un par de meses, y VK Live comenzó con eso.
- Una historia muy interesante: la participación de los estudiantes en la competencia resultó en el hecho de que has estado en VK durante tres años. ¿Es este un caso aislado o se llevan a cabo concursos sistemáticamente? ¿Quienes se están convirtiendo en desarrolladores tienen la oportunidad de repetir una historia de éxito similar? ¿Tiene, por ejemplo, su propia escuela de desarrollo?- Varios eventos se llevan a cabo regularmente con nosotros, incluyendo hackathons y campeonatos de programación de la Copa VK. Históricamente, ha habido muchas competencias en diseño y desarrollo, y no soy la única persona que ingresó al VK de esta manera. No hay una escuela de desarrollo, pero, por ejemplo, recientemente tuvimos pasantías en aprendizaje automático. En el futuro, planeamos realizar tales eventos con mayor frecuencia.
- Volviendo a VK Live: ¿cuál es la diferencia con competidores como Periscope? ¿Por qué el usuario debe usar su aplicación?- La principal diferencia en el gráfico social. Las personas que crean transmisiones con nosotros tendrán ciertos espectadores: sus amigos VK, con quienes se comunican constantemente. No tienen este gráfico en otros sitios.
- ¿Y en qué dirección se mueve el proyecto ahora?- En la dirección de aumentar la interactividad. Por ejemplo, esta es una oportunidad para agregar una encuesta durante la transmisión. Es decir, formas adicionales de interactuar con la audiencia.
- Cuando trabajas en un proyecto a gran escala como VK, ¿no te empuja la gran cantidad de trabajo?- No hay problema Las personas que trabajan para nosotros están locamente enamoradas de lo que están haciendo, se sienten responsables de ello y sienten cierta emoción. Incluyéndome a mí. Me puedo sentar fácilmente en la oficina toda la noche y simplemente no notarlo. Al mismo tiempo, es bastante posible para nosotros mantener un equilibrio entre el trabajo y la vida.
"¿Qué te gusta hacer además de escribir código?"- Viajes
- ¿Cuáles son los lugares más memorables visitados?- De este último - Perú. Machu Picchu es un lugar mágico, muy hermoso. Inusualmente También me gustó el Gran Cañón.
- ¿Qué harías si no fueras un desarrollador de iOS?R: Probablemente me probaría en el aprendizaje automático; esto es algo que parece interesante, prometedor y que será relevante por enésima cantidad de años.
- La última pregunta. ¿Por el hecho de que ve cómo debe desarrollarse el desarrollador de iOS en las realidades actuales?- Ahora, muchos desarrolladores están "encarcelados" por cualquier marco específico. Es decir, en su trabajo utilizaron solo grandes bibliotecas de Facebook / Google, a menudo casi no tocan los marcos nativos y no siempre entienden cómo funcionan. Y me parece, entre otras cosas, que es importante tratar de comprender mejor cómo funcionan los componentes principales del sistema, por ejemplo, el mismo UIKit.
Si está interesado en los problemas técnicos de las transmisiones en vivo en iOS, Alexey hablará sobre ellos en detalle en Moscú el 8 de diciembre en la conferencia de Mobius .