;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Em briga com TikTok, Instagram quer achar seus próprios famosinhos

Reels é o novo formato do Instagram, uma evolução do Cenas, que estava sendo testado no Brasil desde novembro de 2019 - Divulgação/Instagram
Reels é o novo formato do Instagram, uma evolução do Cenas, que estava sendo testado no Brasil desde novembro de 2019 Imagem: Divulgação/Instagram

Helton Simões Gomes

De Tilt

23/06/2020 05h00

O Instagram dobrou sua aposta no embate com o TikTok. Diante da enxurrada de criadores surgindo no app chinês, a rede social quer incentivar que outros famosinhos surjam em sua plataforma. Para isso, aposta mais fichas no Cenas, aqueles vídeos com efeitos criativos que lembram o formato do rival.

A partir desta terça-feira (23), o Cenas não será apenas repaginado, mas levado a dois novos países, França e Alemanha, e também rebatizado. ará a se chamar Reels. As novidades serão liberadas aos poucos para os usuários.

Conteúdos feitos com esta ferramenta não serão exclusividade do Stories e aparecerão em um novo espaço dentro do aplicativo. Também serão exibidos de forma permanente no perfil dos criadores. A ideia é incentivar o surgimento de novos criadores, inclusive em outros lugares do mundo.

"Não é só para os criadores profissionais, mas para os aspirantes a criadores, a nova geração daqueles que querem ser descobertos e achar um lugar no mundo", diz Vishal Shah, líder de produtos do Instagram.

O Reels, ex-Cenas, permite criar vídeos com:

  • Áudios: são músicas de artistas famosos ou trechos sonoros do próprio criador;
  • Velocidade alterada: é possível acelerar ou retardar a exibição das imagens;
  • Efeitos: são os artifícios gráficos para alterar traços faciais, rosto e até o entorno do usuário;
  • Temporizador: é a contagem reversiva, para que as filmagens possam ser feitas sem que o usuário segure o aparelho.

Até agora, estes vídeos eram publicados apenas como Stories. Para Shah, isso trazia dois desafios para se tornarem populares. O primeiro é que este espaço abriga apenas conteúdos efêmeros, afinal mantém uma publicação por apenas 24 horas no ar. O outro é que, quando um perfil não é aberto, apenas seguidores podem acompanhar as atualizações.

A partir de agora, os Reels serão exibidos em dois novos campos no app. O primeiro deles é a aba Explorar, visitada por metade dos usuários do Instagram. Novos vídeos feitos com este formato aparecerão no topo dessa aba. Segundo Shah, os conteúdos mostrados ali serão um apanhado feito por algoritmos de recomendação e uma equipe de curadores.

O segundo novo lar dos Reels será o perfil dos criadores, que ganhará uma nova aba apenas para abrigá-los.

Os usuários poderão publicar os Reels diretamente nesse campo, também incluí-los em seus Stories ou mandá-los por meio de mensagens a seus contatos.

O Instagram também quer facilitar a "memeficação" de um vídeo legal. Tanto é que, ao ver um Reels, os usuários poderão clicar nele e salvar alguns dos elementos usados, como a música, para aproveitá-los em suas próprias criações.

Histórico de larápio

Os Reels não são a primeira função ou formato de conteúdo que o Instagram pegou emprestado da concorrência. Antes disso, os Stories foram surrupiados do Snapchat. Shah comenta que até conteúdo criado em outra plataforma pode ser trazido para o Instagram.

"Eu estou bem com conteúdo sendo criado em outros lugares, não porque eu acredite que tudo tem de ser criado no Instagram. Mas porque quanto mais criatividade existir no Instagram, melhor será para a comunidade. E o que temos visto é que a criatividade está surgindo aos montes em diferentes lugares e diferentes apps", diz.