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.
...Confira outros conteúdos:
Programador Mobile
Desenvolvimento de aplicativos para...
Conceitos básicos para programar para...
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.