;(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

App


Instagram Lite chega ao Brasil; conheça outros apps com versões mais leves

Instagram Lite - Divulgação/Facebook
Instagram Lite Imagem: Divulgação/Facebook

Marcos Bonfim

Colaboração para Tilt

13/04/2021 19h08

O Instagram anunciou nesta terça-feira (13) o lançamento no Brasil da versão Lite do app, que ocupa apenas 2 MB da memória no celular. A solução foi desenvolvida para melhorar o o de pessoas que contam com aparelhos mais simples e que vivem em regiões onde a cobertura da internet móvel não é tão forte.

A nova opção apresenta a maioria dos recursos da rede social, o que inclui o envio de mensagens diretas, mais conhecidas como "DMs", e também gravação e publicação de vídeos. Ficam de fora neste primeiro momento, no entanto, funções como transmissões ao vivo, criação de Reels, compras, alguns filtros para os Stories, e, no caso de conteúdos do IGTV, apenas a pré-visualização do vídeo poderá ser feita.

Por enquanto, o Instagram Lite só está disponível para Android. Mas o movimento de oferecer uma versão mais leve do seu aplicativo é semelhante ao já desenvolvido por outras plataformas como Facebook, Uber, Spotify, Twitter, TikTok e Google. Usando a versão "lite" desses apps, você pode ficar com mais espaço livre na memória e gastar menos do 3G ou 4G.

Conheça outros apps com versões Lite a seguir.

Facebook Lite

Facebook Lite - Reprodução - Reprodução
Imagem: Reprodução

Projetado para redes 2G e áreas com internet lenta ou instável, o app disponibiliza os mesmos recursos que a versão mais avançada, como linha do tempo dos contatos, fotos, vídeos, notificações de curtidas e comentários, status. Com instalação de 1,6 MB, tem um visual mais limpo, com menos animações e sem tantos detalhes coloridos em comparação com o app original. Disponível para Android e iOS.

Messenger Lite

Messenger Lite - Reprodução - Reprodução
Imagem: Reprodução

Com 11 MB de , o app permite o envio de mensagens, a realização de ligações, chamadas de vídeo, bate-papos em grupos, o uso de figurinhas e até dá para saber quando alguém está online. As desvantagens ficam pelo menor número de jogos e também por não contar com o modo escuro da versão original. Disponível para Android e iOS.

Uber Lite

Uber Lite - Reprodução - Reprodução
Imagem: Reprodução

Com apenas 11 MB, o app ocupa pouco espaço no celular e foi desenvolvido para funcionar também em regiões onde o sinal de internet é fraco. No momento, o pagamento por meio eletrônico não é possível para usuários dessa versão. Só dá para pagar corridas pelo Uber Lite com dinheiro. Disponível só para Android.

Spotify Lite

Spotify Lite - Reprodução - Reprodução
Imagem: Reprodução

A versão mais leve do app (7,9 MB) funciona basicamente igual à versão tradicional, mas só permite ouvir músicas e podcasts com a qualidade mais baixa possível. Ele foi criado com foco em usuários com planos de dados mais limitados. Disponível só para Android.

Twitter Lite

Twitter Lite - Reprodução - Reprodução
Imagem: Reprodução

Com apenas 1,1 MB, o app se propõe a entregar uma experiência semelhante à da versão padrão sem consumir muito do seu plano de internet móvel. Um recurso interessante é a função "economia de dados", que permite baixar somente as imagens, vídeos e GIFs que você quiser, no lugar do automático de mídias que o Twitter "normal" possui. Disponível só para Android.

TikTok Lite

TikTok Lite - Reprodução - Reprodução
Imagem: Reprodução

Sucesso do momento, o TikTok também conta com uma versão mais leve, com 21 MB de instalação (a original tem 77 MB). O app permite assistir aos vídeos do feed e também gravar e editar os próprios posts, com o a efeitos especiais, filtros e stickers. O que muda é que, na versão Lite, o app só mostra uma imagem congelada como prévia dos vídeos, em vez de dar play automaticamente em todos. Disponível só para Android.

Google Go

Google Go - Reprodução - Reprodução
Imagem: Reprodução

O aplicativo de buscas do Google também tem sua versão mais leve, com 8,1 MB, que permite fazer pesquisas de textos, traduzir palavras e encontrar imagens e GIFs divertidos. De acordo com a empresa, os resultados de pesquisa da versão Go conseguem poupar até 40% dos dados do usuário através de uma série de mecanismos de compressão. Disponível só para Android.

A companhia também conta com versões "Lite" para outros aplicativos para Android: