O iPhone OS foi bastante inovador ao oferecer serviços de localização para desenvolvedores de aplicativos usarem em seus aplicativos: foram criadas soluções capazes de tirar proveito destes recursos de diversas maneiras. Entretanto, assim como a vida das pessoas pode ser melhor quando seus celulares sabem dizer onde estão, o mesmo conceito pode aplicar-se aos computadores.
Para provar isso, o Mac OS X Snow Leopard trouxe consigo as mesmas capacidades do iPhone OS para localizar Macs no mundo. Se já está com o novo sistema, você pode conferir um exemplo claro disso ao abrir suas Preferências de Data & Hora e olhar a aba do fuso horário.
Isso já era sabido em alguns dos betas do sistema liberados pela Apple, portanto você já deve conhecer tal ferramenta: usando a posição geográfica do seu computador, ela pode ajustar o horário apropriadamente, o que é muito bom.
Uma das coisas que você não deve saber, entretanto, é que o Snow Leopard deixa os componentes essenciais da implementação desse recurso disponíveis para qualquer desenvolvedor. É isso mesmo: você pode usar Core Location assim como no iPhone OS para criar serviços de localização que podem simplificar, facilitar ou estender a funcionalidade de tarefas executadas no dia-a-dia.
Implementação
Se você já desenvolveu um app de localização para iPhone alguma vez, já deve conhecer os macetes para obter uma tag geográfica usando Cocoa. O fato é que a coisa não muda muito, e colocar um projeto na área para funcionar requer pouco trabalho.
Matt Gallagher, do Cocoa with Love, criou um projeto de exemplo no Xcode 3.2 para demonstrar isso, o WhereIsMyMac. Ele não só obtém sua latitude e longitude, mas também mostra a precisão de onde está em um mapa, com uma aplicação da Maps API, do Google.
Note que, ao iniciar o aplicativo, o Mac OS X exige que você autorize o uso da sua localização atual pelo aplicativo, ou seja, nada é executado nesse sentido sem que você queira. Até aqui, a coisa lembra um pouco da API de Geolocalização W3C, usada em serviços como Maps e Latitude, mas o código deles em relação ao da demonstração acima é muito diferente.
Para saber mais, leia o artigo completo de Gallagher.
Como a localização é obtida pelo Mac OS X?
O iPhone OS usa três meios para obter a localização de um usuário: o GPS talvez seja o mais preciso de todos, por ser dedicado a essa tarefa. Mas o que não é destacado por quem fala de iPhone é que há outros meios, mais acessíveis (por não precisarem do hardware extra) e, principalmente, mais eficientes em termos de velocidade, acredite ou não.
É o caso do uso das antenas de telefonia celular e hotspots Wi-Fi, atitude pioneira do Google e da Skyhook Wireless. Construindo bancos de dados que armazenam suas posições, foi possível determinar um meio de obter coordenadas geográficas aproximadas, triangulando a localização daquelas que mais se aproximam do usuário. O Snow Leopard usa Wi-Fi como forma principal para saber onde está.
Por isso, é importante que você sempre cadastre os endereços das bases Wi-Fi que usa, pois elas podem se combinar com milhares de outras para servir a milhões de pessoas. Além disso, Gallagher sugeriu outros meios, como o IP e o endereço cadastrado no seu cartão da Agenda (Address Book), mas esses não pude descobrir se são usados ou não — o primeiro exemplo seria bastante impreciso, caso fosse usado.
. . .
É interessante ver esse tipo de tecnologia evoluindo para os desktops a partir dos celulares. Agora, resta saber se aplicativos baseados em localização farão tanto sucesso no Snow Leopard quanto fizeram no iPhone OS.