Artigo do tipo Tutorial
Desvendando o Core Location do iOS
Neste artigo vamos desvendar todos os recursos que são oferecidos através do framework Core Location para captar a localização do usuário e outras funcionalidades que vão agregar a experiência do usuário para sua aplicação. Iremos abordar também como avaliar a questão de desempenho e economia de bateria.

Este artigo destina-se a usuários de nível intermediário, pois sugere que este já tenha prévio conhecimento de funcionalidades básicas, criação de métodos e criação de interfaces básicas. Este tutorial é feito usando o Xcode 4.4.1 e está baseado na versão iOS 6.

Em que situação é útil
O framework Core Location é um dos principais frameworks para o iOS que nos oferece os recursos para obter a localização geográfica do usuário e outras características de navegabilidade.

O desenvolvimento de aplicativos para dispositivos móveis avança rapidamente em termos de quantidade e complexidade. Se voltarmos no tempo alguns poucos anos, lembraremos-nos de uma época em que tínhamos acesso a celulares com recursos limitadíssimos onde o JavaME reinava absoluto. Os aparelhos que suportam JavaME trabalham basicamente com dois tipos de arquivos, os com extensão jad (Java Application Descriptor) e os de extensão jar (Java Archive). O arquivo .jad é um arquivo de descrição do aplicativo e dentro dele há algumas informações referentes ao fabricante, versão, link pra o .jar, entre outras. Já o arquivo .jar é o aplicativo propriamente dito, todas as classes compiladas estão lá dentro, bem como as imagens usadas nas aplicações. O arquivo .jad é necessário apenas para fazer download do aplicativo direto pelo celular via web.

Entretanto, este cenário mudou drasticamente e de forma muito rápida. Inclusive, o que era incontestável antes (o JavaME) caiu praticamente em desuso frente a novas plataformas como Android e iOS.

Criado pela Google em consórcio com mais de 40 empresas, o Android é uma plataforma para desenvolvimento e execução de programas para dispositivos móveis, robusta e de fácil utilização/aprendizagem. Esta plataforma é vista hoje como uma ótima alternativa para o desenvolvimento de aplicações. Aos programadores que conhecem outras linguagens de programação, como Java ME, Windows Mobile, Widgets, entre outras, aprender a programar com Android é uma tarefa simples, uma vez que esta tecnologia utiliza a linguagem de programação Java, com algumas semelhanças ao Java ME, e para o desenvolvimento da interface visual pode-se utilizar arquivos XML, o que simplifica consideravelmente o processo de desenvolvimento.

Já para desenvolver para a plataforma iOS é necessário dominar o Objective-C. Essa linguagem de programação foi criada no início dos anos 80 com o intuito de unir as linguagem C e Smalltalk, associando assim características simples que possibilitam uma programação orientada a objeto sofisticada. A Objective-C, por possuir características advindas da junção de outras linguagens, oferece algumas abordagens de elementos básicos da programação similar às encontradas no mercado. Porém, há algumas questões que devem ser esclarecidas para melhor compreensão do funcionamento da linguagem. Na estrutura de arquivos da Objective-C uma classe possui uma arquitetura diferente de algumas linguagens como, por exemplo, o Java. Ao invés de um arquivo único contendo declarações e implementações, pode-se observar que tal informação é dividida em dois arquivos, os headers e os implementations.

O que vemos no momento é o surgimento de smartphones cada vez mais poderosos e acessíveis criando infinitas possibilidades para o desenvolvimento de aplicações. O uso intensivo de sensores e informações de posicionamento é o que mais tem chamado a atenção dos desenvolvedores ultimamente. E não é a toa, uma vez que eles possibilitam o desenvolvimento de aplicações ricas aprimorando a experiência de uso dos usuários.

Neste artigo iremos focar no uso de GPS na plataforma iOS para possibilitar o desenvolvimento de aplicações inovadoras para dispositivos Apple.

A utilização de GPS em aparelhos celulares não é algo recente, desde sua primeira utilização, no início do ano 2000 até os dias de hoje muita coisa evoluiu. Naquela época, apenas aplicativos instalados em alguns aparelhos celulares com Location API e Java ME podiam utilizar tais recursos, muitas vezes limitados e que comprometiam a autonomia dos aparelhos. A Location API (JSR 179) é uma especificação genérica que permite aos desenvolvedores construírem aplicações que utilizem dados de localização. Ela dispõe de diversas classes que permitem obter dados como longitude, latitude, altura, velocidade, entre outras informações.

O dispositivo móvel precisa prover pelo menos uma forma de captura da localização. Existem basicamente três formas. Cada uma possui diferentes características no que diz respeito à precisão da localização, custo envolvido, consumo de bateria, tempo de resposta, entre outras. Cada uma dessas características podem ser previamente configuradas para se adequar às necessidades da aplicação como, por exemplo, definir que a captura da localização não pode envolver custos.

A primeira forma é utilizando a rede da operadora de telefonia. O dispositivo móvel pode usar essa rede para determinar uma posição aproximada a partir da célula onde ele se encontra. Quanto maior a célula, menor a precisão da posição.

Alguns dispositivos móveis já possuem um receptor GPS (Sistema de Posicionamento Global) integrado, permitindo obter a localização de forma mais precisa (com margem de erro de 4 a 40 metros) e sem custos por parte da operadora. A desvantagem nesse caso é o custo que o receptor GPS agrega ao dispositivo, além do maior consumo de bateria.

Existem ainda alguns receptores GPS avulsos, que funcionam a bateria e capturam periodicamente a localização, enviando-a via Bluetooth para um computador ou celular.

Hoje, é possível utilizar GPS nos mais diversos aparelhos e plataformas, os quais contam com recursos para otimizar seu uso e minimizar os gastos da bateria. O sistema de GPS conta com 24 satélites orbitando a Terra a 20.000 km de altitude. Sendo assim, a qualquer momento, pelo menos cinco satélites estarão sobre o céu do receptor de um usuário em qualquer ponto do planeta. Diz a geometria esférica que a interseção entre quatro esferas define um único ponto. O sistema GPS simplesmente transporta este conceito para o planeta Terra.

Os serviços baseados em localização têm se tornado umas das funcionalidades mais interessantes no contexto de serviços disponíveis para dispositivos móveis. Um exemplo bem prático são os receptores GPS (Global Positioning System) que exibem ao usuário a rota a ser percorrida de uma localidade para outra ou mostram um conjunto de serviços (farmácias, restaurantes, pizzarias, etc) disponíveis em uma determinada posição geográfica ou em uma localidade próxima, sendo que, na maioria das vezes, essas localizações são visualizadas por meio de mapas. O Google Maps é talvez um dos serviços de mapas mais utilizados no globo terrestre. Isso é facilmente explicado quando realizamos, por exemplo, uma simples busca de uma localidade ou caso desejemos saber qual a rota a ser seguida entre duas localidades. As facilidades que o serviço disponibiliza para nós usuários são enormes.

...
Quer ler esse conteúdo completo? Tenha acesso completo