O melhor pedaço da Maçã.

WhereIsMyMac: usando Core Location para criar serviços de localização no Snow Leopard

Core Location

Core LocationO 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.

Publicidade

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.

Time Zone nas Preferências do Sistema

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.

Publicidade

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.

Publicidade

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.

WhereIsMyMac

WhereIsMyMac

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.

Publicidade

Para saber mais, leia o artigo completo de Gallagher.

Como a localização é obtida pelo Mac OS X?

Maps no iPhone OSO 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.

Ver comentários do post

Compartilhe este artigo
URL compartilhável
Post Ant.

Hammacher Schlemmer lança projetor de vídeo compacto para iPods/iPhones

Próx. Post

Gravata criada por britânicos traz bolso escondido para iPods nano

Posts Relacionados