A fragmentação de dispositivos, traduzida pelo aumento de tipos de dispositivos onde as pessoas assistem a streaming de vídeo, representa um desafio para os desenvolvedores, que precisam dar conta desta variedade. Veja os insights que a Bitmovin traz para esta situação.
O relatório do desenvolvedor de vídeo da Bitmovin é uma pesquisa lançada pela empresa nos últimos 5 anos e, a cada edição, o estudo acompanhou a fragmentação de dispositivos se tornar um tópico importante à medida que o número de dispositivos de vídeo que os desenvolvedores estão construindo – e dando suporte – aumenta.
2021 não foi diferente. No relatório, os desenvolvedores destacaram mais de 23 dispositivos diferentes nos quais eles precisam implantar seus streams.
Um dos principais impulsionadores do cenário é o número de espectadores que usam essas plataformas e dispositivos. De um estudo recente feito por Parkssociates, do qual a Bitmovin participou, os dados mostram que as famílias dos EUA têm acesso e usam mais de 4 dispositivos diferentes para assistir a streaming de vídeo. A Bitmovin acredita que este seja um panorama representativo de boa parte do mundo.
Por que a fragmentação de dispositivos é um grande desafio para os desenvolvedores
Seria simples para os serviços de streaming e seus desenvolvedores se todos os lares usassem os mesmos dispositivos para reprodução de vídeos, mas isso nunca acontecerá, devido a atualizações de versões e à competitividade no mercado.
Em vez disso, o cenário é fragmentado com smart TVs (Samsung e LG, entre outras), dispositivos de TV conectada (Apple TV, Roku e Chromecast, entre outros), dispositivos móveis e consoles de jogos.
Isso também é afetado pelos espectadores em todo o mundo, pois, ao comprarem esses dispositivos, eles tendem a mantê-los por alguns anos, o que, por sua vez, expande as versões de dispositivos que estarão sob a responsabilidade dos desenvolvedores para continuar a oferecer suporte à medida que adicionam novos modelos à oferta.
Além disso, toda padronização entre os dispositivos beneficiaria as equipes de desenvolvimento, uma vez que elas precisam cuidar de vários players, sistemas operacionais e conjuntos de códigos.
As equipes de desenvolvimento têm algumas opções à sua disposição para resolver esse problema. Eis algumas delas:
- Implantar um player nativo em cada dispositivo
- Agrupar players por meio de uma opção de código aberto
- Implantação de um player comercial que pode ser usado em todos os dispositivos
A implantação de um player nativo como AVPlayer para iOS, ExoPlayer para Android ou AVPlay para TVs Samsung é uma garantia, pois você sabe que o player funcionará para esse formato específico. Porém, isso também gera problemas pelo fato de cada player ter uma estrutura diferente e não apresentarem uma experiência de uso unificada.
Além disso, os desenvolvedores precisarão criar suas integrações e recursos em cima dos players nativos, como integrações de anúncios e a interface do usuário, que levarão mais tempo para serem concluídas.
A segunda alternativa é agrupar jogadores por meio de uma opção de código aberto para plataformas específicas. O melhor exemplo disso é o ShakaPlayer, que dá aos desenvolvedores a capacidade de usar o mesmo player em várias áreas para seu serviço de streaming.
A terceira – e mais fácil – opção de suporte e monitoramento é implantar um player unificado que passe por todos os dispositivos usando uma estrutura semelhante para que as equipes possam cobrir a variedade de aparelhos.
💡As duas primeiras opções podem apresentar desafios porque tanto a experiência do desenvolvedor quanto os recursos de reprodução podem variar significativamente entre a tecnologia de cada player, enquanto a terceira opção é boa em todos os aspectos, mas tem um custo, pois não é de código aberto como as outras.
A fragmentação de dispositivos e o desenvolvimento para reprodução de qualidade e vários formatos
Para fornecer uma experiência de reprodução de alta qualidade em todos os principais dispositivos em que os espectadores estão assistindo hoje, você precisará ter e desenvolver experiência para cada player nativo e entender os diferentes recursos que cada SDK traz para a mesa.
Um bom exemplo disso é o streaming offline, um recurso premium que pode aumentar a receita como o Paramount + fez, mas que apresenta uma experiência de desenvolvimento diferente no iOS e no Android, uma vez que o ambiente de desenvolvimento e as APIs são diferentes.
Segundo a Bitmovin, essa complexidade se multiplica quando você considera os situações extremas, que no caso de um recurso como download offline pode incluir tokens expirando e download somente de wifi.
Embora este exemplo seja apenas sobre a reprodução em dispositivos móveis, ele pode ser facilmente expandido para casos de uso em todo o espectro de cada dispositivo e o efeito geral que ele tem na experiência do desenvolvedor.
Se você faz parte de uma equipe de 5 pessoas ou menos, isso pode ser desafiador, e talvez seja necessário fazer concessões no número de dispositivos que você pode oferecer suporte ou no conjunto de recursos que você pretende criar para cada plataforma.
Claro, existem algumas pequenas equipes extremamente habilidosas por aí dando suporte a muitos dispositivos, mas essa não é a norma no setor. Pelo que vimos ao longo dos anos, isso soa verdadeiro, pois grupos menores tendem a ter problemas para desenvolver e manter vários conjuntos de recursos e a qualidade da experiência em muitos dispositivos, pois são muito pequenos.
Equipes maiores tendem a ter problemas diferentes, mas de escopo semelhante, onde podem manter o suporte para muitos dispositivos, mas isso leva tempo de outros projetos, como o design e a experiência do usuário do seu aplicativo ou serviço.
A experiência de desenvolvedor unificada para contornar a fragmentação de dispositivos
Segundo o artigo da Bitmovin, há algo importante a ser salientado em relação à experiência do desenvolvedor (Developer Experience – DX), mais especificamente sobre as equipes de serviços de streaming.
No que diz respeito ao player especificamente, muitas das opções disponíveis são gratuitas ou têm um custo associado, mas sempre há uma limitação na documentação ou por ter uma pergunta que geralmente leva tempo para ser respondida pela comunidade de código aberto ou equipe comercial.
De acordo com a Bitmovin, estes são itens essenciais para equipes de desenvolvimento de pequeno a grande porte:
- Guias de primeiros passos
- Documentação da API
- Tutoriais
- Amostras de código
- Roteiro claro e notas de lançamento regulares
- Perguntas frequentes
- Assistentes de solução passo a passo
Desenvolvimento unificado multiplataforma
O principal elemento em todos esses itens é a consistência, pois ela tornará mais simples e rápida a implantação em todos os dispositivos ao reduzir o tempo de troca de contexto e garantir que cada dispositivo seja sustentável – o que capacita uma experiência unificada do desenvolvedor e diminui o problema da fragmentação de dispositivos.
Como o teste afeta a qualidade e a experiência do desenvolvedor
O teste também é uma peça importante para se concentrar ao definir a estrutura de suporte para cada reprodução de dispositivo oferecida. Isso pode ser feito pela equipe de desenvolvimento ou transferido para o controle de qualidade.
Este é um item que pode afetar diretamente os desenvolvedores no suporte e implantação em dispositivos, bem como a qualidade da experiência do usuário.
Obter acesso a todos os dispositivos que os espectadores estão assistindo hoje pode ser um verdadeiro desafio, principalmente se você seguir a maioria dos serviços de streaming e oferecer suporte a Smart TVs desde 2016/17.
Além de vasculhar sites de reforma ou leilão para obter dispositivos mais antigos, definir casos de uso e testá-los pode ser difícil. O teste manual é extremamente demorado e muitas equipes tentam evitar, mas ele é comumente usado para cobrir a vasta gama de Smart TVs.
As alternativas para o problema incluem “fazendas de dispositivos” onde você pode obter acesso limitado a um dispositivo, mas é recomendável que você crie seus próprios casos de teste e processe os resultados. É aqui que a Bitmovin aponta a abordagem mais eficiente: a automação de testes personalizada para vídeo, com casos de uso pré-preenchidos que podem ser testados em dispositivos físicos.
Conclusão
As expectativas dos usuários estão aumentando devido ao uso de uma variedade maior de dispositivos para assistir a vídeos. Para equipes de desenvolvimento, criar e manter suporte para tantos aparelhos diferentes pode ser um desafio porque as experiências do desenvolvedor são diferentes em cada tipo.
Ter acesso a uma experiência unificada de desenvolvedor pode economizar muito tempo e aumentar o número de dispositivos que podem ser suportados por equipes pequenas. Para equipes maiores, isso libera tempo para outros projetos, como melhorar a experiência do usuário ou do espectador.
Enfim, a fragmentação de dispositivos é uma realidade, e ela só vai aumentar. O que podemos fazer é facilitar a vida dos desenvolvedores que encarregados das novidades e atualizações.