“O aplicativo iOS do VKontakte tem um alto limiar de entrada”: entrevista com Alexei Savin



O aplicativo é diferente para o aplicativo: existem aqueles que são usados ​​de tempos em tempos e existem aqueles que milhões de pessoas passam muito tempo diariamente, instalando-os em um novo smartphone.

O aplicativo VKontakte é um dos segundos, por isso é interessante olhar para dentro e entender quem está trabalhando nele e como. Fizemos uma pequena entrevista com o desenvolvedor do iOS Alexei Savin, perguntando sobre os recursos do trabalho e da vida.

- O que exatamente você está fazendo?
- Nos últimos três anos, tenho trabalhado como desenvolvedor iOS no VKontakte. Envolvido em tarefas relacionadas à multimídia: vídeo e transmissões online.

"O que você fez antes de começar sua carreira em TI?"
- Como muitos, começou com o fato de que, no meu primeiro ano, tentei trabalhar como freelancer: estava criando páginas para lojas online. Então, meus amigos e eu tentamos criar nosso próprio aplicativo móvel. Foi chamado 9 de maio. Na verdade, era um mapa da cidade, em que pontos associados à Segunda Guerra Mundial estavam marcados, e você podia ler sobre cada um deles. Este foi o primeiro sucesso - o aplicativo foi percebido, apareceu em todos os tipos de coleções de assuntos.

Então, gradualmente, passei a trabalhar completamente terceirizando aplicativos móveis. E três anos atrás ele veio para VK.

- E como você veio especificamente para o desenvolvimento do iOS - com a compra de um iPhone?
- Então eu nem tinha um iPhone. Eu estava no meu segundo ano, era a época do iOS 6, comprei um Mac e queria experimentar. Estava na moda, havia boatos, eu me perguntava como seria escrever um aplicativo móvel e, desde que o Mac apareceu, a escolha da plataforma era óbvia. No entanto, também tentei o Android na mesma época (como parte de um curso universitário em Java). Mas na comparação do iOS, eu gostei mais.

- Recentemente, perguntamos aos desenvolvedores do iOS sobre a apresentação da Apple, e também perguntamos: qual é o telefone agora e você deseja alterá-lo após a apresentação?
- Agora, iPhone X, ainda não planejo mudar para um novo, normalmente faço isso a cada dois anos. No próximo ano, provavelmente vou levar o próximo.

- O que você acha do iOS 12?
- O fato de o lançamento ter sido sobre estabilidade é certamente agradável. Após a atualização, parece que um grande número de bugs menores e irritantes desapareceu. Ou seja, eles decidiram fazer uma pausa por um ano para melhorar a estabilidade, e parece ter sido ótimo.

- Voltando ao tópico do aplicativo VK: quanto trabalho você teve em relação ao lançamento do iOS 12?
- Curiosamente, nesta versão, havia apenas alguns bugs menores. Para oferecer suporte ao iOS 12, você não precisou alterar completamente nada. A última vez que havia muito mais trabalho, passamos mais de uma semana.

- Os aplicativos VK são bem conhecidos, mas quem os cria é muito menos conhecido. Diga-me, qual é a sua equipe móvel, quantas pessoas e como está organizado?
- Agora existem 18 pessoas nos desenvolvedores do iOS. Eles consistem em equipes de produtos diferentes: há uma equipe que lida com mídia, há uma equipe de mensageiros, há uma equipe de infraestrutura que implementa algumas soluções comuns usadas por outras equipes. As equipes têm desenvolvedores móveis para ambas as plataformas (2-3 pessoas cada), há desenvolvedores de back-end - em geral, temos uma pilha completa que cobre totalmente suas próprias tarefas. Sincronizamos regularmente dentro da estrutura da plataforma entre equipes para trocar notícias e conhecimentos.

- Você tem um grande número de usuários, como isso afeta o desenvolvimento?
- Qualquer situação que você considere improvável e que não leve em consideração certamente se manifestará e imediatamente a milhares de usuários. Bater em dezenas de milhares de pessoas é assustador e incomum, mas desenvolve um enorme nível de responsabilidade.

- De onde vêm as ideias para os recursos e o que acontece com a ideia desde o momento de sua aprovação até o lançamento na App Store? Como tudo isso é desenvolvido?
- Cada equipe de produto possui indicadores-chave nos quais se concentra. Por exemplo, se você faz transmissões ao vivo, esse é o número de transmissões criadas por mês e o número de visualizações. Ao discutir um recurso, determinamos como ele afetará as métricas relevantes para nós. Somente depois disso decidimos se faremos. Então o processo é bastante padrão. Colocamos isso em nosso plano para o próximo tempo livre. Se isso é algum tipo de idéia interessante e você deseja torná-lo mais rápido, pode mover alguma coisa. Em seguida, formamos a documentação: o que é necessário pelo design, o que é necessário pela API. Depois disso, começamos a fazer.

- Pelo que entendi, você tem um trem de liberação, pode nos contar mais?
- O aplicativo é lançado a cada duas semanas. Cada equipe deve dizer no início da semana o que planeja adicionar a este lançamento. Cinco dias antes do lançamento - recurso congelado, quando não for mais possível adicionar algo novo, e se alguém não conseguiu preencher suas alterações, ele não será incluído neste lançamento.

- E como esse processo parece tecnicamente, e a revisão de código e o IC?
- Temos um código de revisão, existe um IC. E para cada confirmação, recebemos uma assembléia e nos inscrevemos na equipe da Singer House - existem cerca de 200 no total. Todos os nossos funcionários já estão acostumados a usar versões de teste do aplicativo. A idéia é que nada testado e não verificado não entre em assembléias para os funcionários. Se algo for despejado no Dev, o desenvolvedor assume que o recurso está completamente pronto: foi testado e os funcionários podem usá-lo, esta é uma versão estável normal.

Graças a isso, obtemos feedback real dos usuários que usam esse conjunto quase o tempo todo por duas semanas entre os trens de liberação. Dessa forma, podemos formar um feedback.

- Você tem um aplicativo atípico (nem todo desenvolvedor está envolvido em uma grande rede social), e o existente está longe do primeiro ano. Você pode me dizer quantas linhas de código existem e como é difícil trabalhar com ele?
- Quantas linhas de código, eu não direi a você imediatamente. Mas o fato de o projeto ter muitos anos de existência tem seu efeito: muitos códigos herdados existem em outros lugares onde o MRC ainda permanece. E quase todas as soluções são auto-escritas: praticamente não há dependências externas. O aplicativo tem um limite de entrada bastante alto, inclusive por causa disso.

- Com esse limite, quanto tempo leva o processo de integração para novos desenvolvedores?
- Todos os novos desenvolvedores inicialmente se enquadram na equipe de infraestrutura antes de ingressar em uma das outras equipes. Você pode ficar aqui. Lá eles passam de um a meio mês - provavelmente este é o "período de adaptação", durante o qual eles se familiarizam com o aplicativo e realizam algumas pequenas tarefas que não afetam nada.

- Você conversará conosco no Mobius com um relatório sobre transmissões de vídeo no iOS. Conte-me sobre o projeto, graças ao qual surgiu o relatório: de onde surgiu a idéia, como isso aconteceu?
- O projeto foi o que se tornou um aplicativo separado do VK Live . A ideia surgiu quando eu ainda estava na universidade. Meus amigos e eu frequentemente tentamos criar algum tipo de aplicativo de demonstração, testar algumas idéias e escolher periodicamente temas modernos para isso. Um dia, em 1º de janeiro, depois do Ano Novo, pensamos que há muito tempo não fizemos nada e que deveríamos escolher um tópico. E então a VKontakte realizou um concurso de desenvolvimento móvel do VK Challenge . Como parte deste concurso, vários tópicos foram propostos e houve transmissões ao vivo. Nós pensamos que não sabíamos nada sobre eles, por isso será interessante tentar. Como resultado, eles criaram um protótipo em alguns meses, e o VK Live começou com isso.

- Uma história muito interessante: a participação dos estudantes na competição resultou no fato de você estar na VK há três anos. Este é um caso isolado ou as competições são realizadas sistematicamente? Aqueles que estão acabando de se tornar um desenvolvedor têm a oportunidade de repetir uma história de sucesso semelhante? Você tem, por exemplo, sua própria escola de desenvolvimento?

- Vários eventos são realizados regularmente conosco, incluindo hackathons e campeonatos de programação da VK Cup. Historicamente, houve muitas competições em design e desenvolvimento, e eu não sou a única pessoa que entrou no VK dessa maneira. Não há escola de desenvolvimento, mas, por exemplo, recentemente tivemos estágios em aprendizado de máquina. No futuro, planejamos realizar esses eventos com mais frequência.

- Voltando ao VK Live: qual a diferença com concorrentes como o Periscope? Por que o usuário deve usar seu aplicativo?
- A principal diferença no gráfico social. As pessoas que criam transmissões conosco terão certos espectadores: seus amigos VK, com quem se comunicam constantemente. Eles não têm esse gráfico em outros sites.

- E em que direção o projeto está se movendo agora?
- No sentido de aumentar a interatividade. Por exemplo, esta é uma oportunidade para adicionar uma pesquisa durante a transmissão. Ou seja, maneiras adicionais de interagir com o público.

- Quando você trabalha em um projeto de grande escala como o VK, a grande quantidade de trabalho não o pressiona?
- Não tem problema. As pessoas que trabalham para nós estão loucamente apaixonadas pelo que estão fazendo, sentem-se responsáveis ​​por isso e sentem uma certa emoção. Incluindo eu. Eu posso facilmente sentar no escritório a noite toda e simplesmente não perceber. Ao mesmo tempo, é bem possível manter um equilíbrio entre vida profissional e pessoal.

"O que você gosta de fazer além de escrever código?"
Viagem.

- Quais são os lugares mais memoráveis ​​visitados?
- Deste último - Peru. Machu Picchu é um lugar mágico e muito bonito. Invulgarmente. Eu também gostei do Grand Canyon.

- O que você faria se não fosse desenvolvedor de iOS?
R: Eu provavelmente me tentaria no aprendizado de máquina - isso é algo que parece interessante, promissor e que será relevante pelo enésimo número de anos.

A última pergunta. Pelo fato de você ver como o desenvolvedor do iOS deve se desenvolver nas realidades atuais?
- Agora, muitos desenvolvedores estão "presos" para qualquer estrutura específica. Ou seja, em seu trabalho, eles usavam apenas grandes bibliotecas do Facebook / Google, quase sempre não tocavam em estruturas nativas e nem sempre entendem como elas funcionam. E parece-me, entre outras coisas, que é importante tentar entender melhor como os principais componentes do sistema funcionam - por exemplo, o mesmo UIKit.

Se você estiver interessado nas questões técnicas das transmissões ao vivo no iOS, Alexey falará sobre elas em detalhes em Moscou no dia 8 de dezembro na conferência Mobius .

Source: https://habr.com/ru/post/pt424997/


All Articles