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

iPhone 13 pode ganhar tela que nunca apaga; iPhone SE deve chegar em 2022

Arte imaginando como será o iPhone 13 de 2021 - EverythingApplePro
Arte imaginando como será o iPhone 13 de 2021 Imagem: EverythingApplePro

Letícia Naísa

De Tilt, em São Paulo

19/07/2021 17h53

Previsto para ser lançado em setembro deste ano, o iPhone 13 está gerando altas expectativas. O rumor mais recente sobre o futuro celular da Apple aposta que o modelo terá uma tela "always-on", que nunca se apaga totalmente. A tecnologia seria a mesma usada no Apple Watch a partir da Series 5.

A novidade pode significar que o aparelho consumirá menos bateria, uma das principais reclamações dos usuários de iPhone. Esse tipo de recurso permite consultar a hora e as notificações sem precisar acender todo o do celular, e é possível graças à adoção da tecnologia OLED LTPO nos últimos lançamentos da marca.

Ela é usada em smartwatches para ajustar a taxa de atualização nesses órios (quando o display está sempre ligado, por exemplo, a taxa de atualização fica baixa).

O iPhone 13 também promete vir com uma taxa atualização de 120 Hz, que exige bem mais energia (em comparação com os atuais 60 Hz), e faria a bateria drenar mais rapidamente. Basicamente, quanto maior essa taxa de atualização, mais fluída é a transição de imagens na tela do celular.

Se a Apple conseguir unir essa tecnologia com a economia de bateria, será muito bem visto pelos fãs mais críticos.

O rumor sobre a novidade da tela sempre ativa do iPhone 13 saiu na newsletter Power On, da "Bloomberg", feita pelo jornalista Mark Gurman. A notícia confirma a informação trazida há alguns meses pelo leaker (vazador) Max Weinbach, que já havia divulgado informações sobre essa característica.

O que mais esperar

Da parte de câmera, o foco da Apple deve ser em implementar recursos avançados de gravação, além de um zoom óptico aprimorado, segundo a "Bloomberg".

O processador deve ser uma evolução do A14, usado no iPhone 12, mantendo os seis núcleos.

Fontes da "Bloomberg" dizem que a Apple pediu para os fornecedores a fabricação de 90 milhões de celulares da marca — no ano ado, foram 75 milhões. A razão para o pedido maior tem relação com a tecnologia 5G, que está se espalhando por mais países pelo mundo, e a vacinação pelo mundo, que fará mais pessoas circularem.

iPhone SE

Informações sobre uma nova versão do iPhone SE também estão circulando. Ele pode ser lançado no primeiro trimestre de 2022, segundo o site especializado em tecnologia "Digitimes".

O processador deve ser chip A14 (o mesmo da linha do iPhone 12). E ele terá 5G.

O modelo será a terceira geração do SE. É possível, no entanto, que o design da linha continue o mesmo, para que o preço possa se mantenha na faixa atual dos US$ 400 (R$ 2.090).

A cara do iPhone SE só deve mudar em 2023, segundo o analista Ross Young. A nova versão deve ganhar uma câmera frontal hole-punch (que fica em um furinho na tela) e display de 6,1 polegadas.

*Com textos de Guilherme Tagiaroli e Marcella Duarte