Widget: o que é e para que serve¶
Um widget é um componente HTML5 que processa e exibe informação de forma dinâmica, podendo ser utilizado para praticamente qualquer propósito.
A título de exemplo, as aplicações mais comuns para o uso de widgets são:
- Previsão meteorológica;
- Cotação de moedas e bolsas de valores;
- Resultados de loterias;
- Tabelas de campeonatos esportivos;
- Dentre muitas outras.
E por conta da arquitetura flexível que a DSME disponibiliza, cada widget pode ter sua própria configuração, permitindo uma personalização profunda na forma como a informação é apresentada.
Como os widgets são componentes baseados em padrões e tecnologias bem estabelecidas, é fácil criar novas experiências para entreter e informar seus usuários. A seguir você acompanha o que é necessário para criar seu primeiro widget.
Pré-requisitos¶
Bom, criar um novo widget é muito fácil. Como dito antes, widgets são componentes HTML, basicamente uma página HTML bem simples. Portanto para desenvolver um novo widget é necessário apenas ter conhecimento em:
- HTML5
- CSS3
- Javascript
Seja excelente!
Um pré-requisito adicional seria se preocupar com a apresentação do seu widget. Construa um layout que seja bonito, que cause impacto e que impressione seus usuários!
Restrições¶
Um dos objetivos da DSME é entregar uma plataforma rica em recursos, dinâmica e ao mesmo tempo com valor atrativo. Para isto nós alinhamos alta tecnologia com hardware acessível, que pode ser adiquirido em larga escala sem sacrificar o bolso dos nossos clientes.
Por conta disto, existem algumas limitações que devem ser levadas em consideração. Para que a execução do widget seja a mais fluida possível é necessário seguir algumas regras:
- Todas as animações devem ser feitas com CSS;
- Não é possível utilizar vídeo;
- O widget não deve consultar nenhuma URI externa durante sua execução;
- Todos os arquivos devem estar em UTF-8.
Animações em Javascript
As animações em Javascript são muito mais "pesadas" do que as animações
feitas com CSS, isto porque o Javascript não utiliza a aceleração de
hardware disponível em nossos players. Por mais cômodo que possa ser
utilizar bibliotecas como jQuery para fazer suas animações, prefira usar
as propriedades transition
, keyframes
/animation
e
will-change
do CSS.
Vídeos
O uso de vídeos em uma página HTML tem se mostrado bastante onerosa em termos de processamento, fazendo com que a execução do widget engasgue constantemente, o que resulta em uma experiência ruim para o usuário final.
Contudo, nós estamos trabalhando continuamente para adicionar suporte a novos recuros, e pretendemos permitir a execução de vídeo de forma satisfatória em widgets em um futuro próximo.
Estrutura básica¶
Um widget deve ter no mínimo os seguintes arquivos:
index.html
— arquivo de entrada;widget.json
— arquivo com as definições do seu widget;preview.png
— imagem de pré-visualização.
Nota
Seu widget pode ter uma estrutura muito mais complexa do que esta. Só tome cuidado para não ser pesado demais, para que o player consiga carregá-lo e exibi-lo sem problemas.
index.html
¶
É o arquivo que será carregado pelo nosso player para executar seu widget, portanto é chamado arquivo de entrada. Ele deve ser um HTML5 válido, e todos os demais arquivos devem ser relativos a ele.
Exemplo
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="generator" content="DSME">
<title>Meu Widget</title>
<link href="css/widget.css" type="text/css" rel="stylesheet">
</head>
<body>
<section class="widget">
conteúdo do widget
</section>
<script src="js/widget.js"></script>
</body>
</html>
widget.json
¶
Este é o arquivo onde são definidos todos os aspectos do widget. Ele funciona
como o package.json
do Node.js, mas tem uma estrutura
específica.
Exemplo
{
"title" : "My widget",
"name" : "mywidget",
"description" : "Meu primeiro widget",
"author" : "DSME <https://dsme.tv>",
"version" : "1.0.0"
}
Você pode aprender mais sobre este arquivo na sua documentação.
preview.png
¶
Esta é uma imagem que serve como ícone do widget. Sempre que o seu widget for apresentado em nossa plataforma, esta imagem será usada.
Nota
A imagem pode ser um .png
ou .jpg
.
Próximo passo¶
Agora que você já conhece o básico sobre os widgets, está na hora de criar o seu primeiro. Na próxima página você acompanhará um passo-a-passo completo para a criação de um widget que exibe a previsão meteorológica utilizando o módulo weather.