Instapaper Creator propõe solução elegante para atualização de aplicativos em segundo plano

A Apple fez um trabalho habilidoso atenuando as desvantagens da verdadeira multitarefa com iOS 4, dando aos desenvolvedores acesso a algumas APIs escolhidas de forma inteligente (como áudio de fundo) e salvamento universal de estado.

Isso será bom o suficiente para a maioria das pessoas e aplicativos sem causar um grande consumo de bateria ou capacidade de processamento, mas, infelizmente, as novas APIs do iOS 4 não faça nada para lidar com uma das maiores vantagens da multitarefa: aplicativos em segundo plano que podem atualizar ou sincronizar informações quando não têm foco. Em outras palavras, quando o iOS 4 chegar, aplicativos como leitores de feed, clientes do Twitter e programas de mensagens instantâneas ainda precisarão estar abertos o tempo todo para sugar novas informações da Internet.

Em seu blog pessoal, Marco Arment - desenvolvedor do Instapaper favorito da App Store - postou uma ótima sugestão à Apple sobre como permitir que os aplicativos se atualizem em segundo plano de forma eficiente: dê ao iOS a capacidade de priorizar solicitações periódicas de rede de aplicativos de terceiros.

A adição de mais um serviço multitarefa resolveria esse problema para muitos tipos de aplicativos: uma solicitação de rede periódica. É assim que eu faria:

• O aplicativo fornece ao sistema um NSURLRequest e um intervalo de atualização ideal, como a cada 30 minutos, a cada poucas horas ou todos os dias.

• O iOS executa essa solicitação, sempre que julgar necessário, e salva a resposta em um arquivo local.

• Na próxima vez que o aplicativo for iniciado, o iOS entregará a ele um NSData da resposta mais recente.

Executar a solicitação “sempre que julgar necessário” é importante. O iOS pode decidir, por exemplo:

• Não atualizar quando a bateria está fraca, a conectividade é fraca, outras solicitações estão em execução, a memória livre é baixa, o uso da CPU é alto ou o usuário está previsto para exceder seu limite mensal de dados.

• Não atualizar com a frequência que o aplicativo solicita, ou aumentar o intervalo ao longo do tempo, ou ajustar dinamicamente o intervalo com base na frequência com que recebe uma resposta 304 (não modificado).

• Não atualizar se o aplicativo solicitante não tiver sido iniciado por um longo tempo.

Isso permitiria que o Instapaper baixasse atualizações em segundo plano e também beneficiaria enormemente os leitores RSS, clientes do Twitter, bate-papo programas, widgets de clima e notícias, e um grande número de outros aplicativos que atualmente não podem se beneficiar muito com o iOS ' multitarefa.

Certamente não sou um arquiteto de sistema, mas parece uma solução eficaz para mim. Na verdade, é uma solução tão compreensível e óbvia que pensar em esperar até a atualização do iOS 5 por tal funcionalidade me dá um pequeno caso de tremores... embora possa ser o Talisker de ontem à noite falando.

Última postagem do blog

Fotógrafo usa painel traseiro do iPhone como placa de foto de colódio úmido
September 10, 2021

Quando se trata de iPhoneografia, “retro” geralmente se refere à adição de alguns vazamentos de luz, dessaturação de algumas cores ou adição de grã...

A Apple já está fazendo unidades do iPhone 6s com Force Touch
September 10, 2021

A Apple já está fazendo unidades do iPhone 6s com Force TouchVocê não vai acreditar no que o Apple Watch pode fazer agora.Foto: AppleOs fãs da Appl...

A montagem da tela do iPhone 6s aparece para confirmar o Force Touch
September 10, 2021

A montagem da tela do iPhone 6s aparece para confirmar o Force TouchA tela do iPhone 6s tem algumas diferenças notáveis.Foto: MacManiackUm novo víd...