WhereIsMyMac: usando Core Location para criar serviços de localização no Snow Leopard
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.







Sempre cadastro os wireless de confiança que sei que não irá mudar de lugar no skyhook
Muito bom o artigo… só nao entendi uma coisa… como assim triangulacao de redes wireless?.. no caso do iphone ele faz a triangulacao a partir do sinal de sua operadora… triangulacao de antenas.. no mac é atravez de triangulacao de roteadores wireless?.. desculpe a ignorancia.. mas nao intendi essa parte
O iPhone pode obter sua localização pelos hotspots Wi-Fi da mesma forma que faz com as antenas celulares, pois o Google e a Skyhook compartilham o mesmo banco de dados, Fabio. É assim que o iPod touch consegue localizar os usuários via Wi-Fi, e nós também já podemos pelo browser, através do Gears.
Agora, esse recurso aplicado no iPod touch e no Gears está no Snow Leopard.
Será que dá pra usar essa tecnologia para localizar um MacBook roubado com Snow Leopard instalado?
É possível.
Que tal um chipzinho GPS nos proximos MacBooks?
Aqui não funciona o "Set time automaticaly using curent location", depois de uns segundos aparece "Unabled to determine current location at this time"
o meu acontece a mesma coisa…. que coisa ñ
Silvio, Excelente artigo! Era tudo que estava procurando no momento. Sempre quis localizar o meu MacBook Pro com precisão, até pensava que poderia ter um GPS embutido como o iPhone. Espero que estes programas evoluam assim como nos celulares para os MacBooks só temos a ganhar. Muito obrigado!
Eu gostaria de ver o "Find My Macbook" para usuários do MobileMe… =)