Evolução da localização central

http://wrkstrm.postach.io/post/core-location-evolution

TL; DR: a Apple tem refinado suas APIs de localização oportunamente para melhorar a vida útil da bateria.

Parece haver muito interesse nas novas APIs de localização do iOS 7 – CoreLocation. Aqui está uma grande discussão de notícias de hackers sobre isso. Quero fornecer um pouco mais de “contexto” para essa discussão.

Como uma verificação à parte:

My Background:
Aqui está uma demonstração rápida de 1,5 minuto de wrkstrm que fiz para as finais de verão de 2012 do AngelHack.

iOS 2: a
Apple apresenta o CoreLocation com uma quantidade mínima de recursos. Os programadores podem pedir para serem atualizados sobre as coordenadas de GPS apenas quando seus aplicativos estão em primeiro plano.

iOS 5: a
Apple adiciona duas grandes adições que introduziram monitoramento de localização significativo e geo-fencing. Essa informação já estava sendo registrada pelo iPhone houve um grande susto sobre isso em 2011 . Tudo que a Apple fez foi dar aos desenvolvedores acesso a esses dados sem ter que hackear (confira a demonstração de William Edward e os OpenPaths de Jer Thorp).

Outro lado: essas duas APIs são o que me levou a aprender como codificar. Fiquei seriamente desapontado quando descobri que a Apple estava “trapaceando” a implementação dessas APIs. A resolução para essas APIs é horrível – algo como campos de futebol com disparidades em cidades do interior. Isso é o que iniciou minha jornada para encontrar uma maneira mais precisa de geo cerca e rastrear localizações.

iOS 6:
para este lançamento, a Apple trabalhou em estreita colaboração com a equipe MapKit para melhorar a precisão do GPS. O melhor exemplo disso é como a equipe do CoreLocation usou os novos gráficos vetoriais MapKit para juntar as coordenadas GPS às ruas. Mais uma vez, a Apple não inventou uma nova tecnologia para melhorar a precisão do GPS, ela alavancou uma nova inovação na interface do usuário. Para implementar isso, a Apple lançou um tipo de atividade (dirigir, caminhar, etc) API que alertou o CoreLocation sobre quando seria apropriado cortar as coordenadas.

iOS 7:
essas capturas de tela usam uma abordagem diferente para gerar.Essas informações são NOVAS e sua coleta foi possibilitada por duas inovações na interface do usuário acionadas por sensores que parecem totalmente irrelevantes. Primeiro, no iOS 6, a Apple começou a rodar o acelerômetro o dia todo com o recurso “aumentar para falar com o Siri” (basta colocar o telefone no ouvido para ativar o Siri). Agora com o iOS 7, a Apple introduziu um giroscópio “constante”, com a introdução do efeito Parallax. Agora, com algum processamento de sinal inteligente, a Apple pode medir eventos de “permanência” quando o iPhone não está se movendo, sem recorrer a uma barreira geográfica cara / imprecisa. Por que tenho tanta certeza de que é isso que a Apple está fazendo? A Apple estava originalmente planejando ir ainda mais longe, fornecendo dados de contagem de passos (semelhantes aos dados S Health do Galaxy S4) aos desenvolvedores. Isso só é possível executando os sensores mencionados e usando processamento de sinal. Isso foi mostrado nas novas tecnologias do iOS 7 durante a apresentação e até mesmo na documentação do iOS 7 beta 1, mas todas as menções foram removidas abruptamente com o beta 2 e além. Procure isso no iOS 7.1 ou iOS 8.

Finalmente, com o iOS 7, a Apple deu um passo além. Com o iOS 6, a Apple costumava fornecer aplicativos de GPS com atualizações em tempo real. Agora há uma nova API que permite notificações de GPS adiadas para que a Apple possa fechar seu aplicativo e fornecer notificações “oportunamente” (ou seja, quando um usuário liga a tela de bloqueio). A Apple afirma fornecer uma melhoria de 40% na duração da bateria usando este novo método. Em caso afirmativo, esta tecnologia é uma virada de jogo para rastreadores de localização sempre presentes.