CoreLocation para Swift: guia completo com exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é CoreLocation e para que serve?

\n

CoreLocation é um framework nativo da Apple para as plataformas iOS, macOS, watchOS e tvOS. Ele fornece aos desenvolvedores acesso aos recursos de hardware e software para determinar a localização do dispositivo. Ao contrário de bibliotecas de terceiros, o CoreLocation não requer instalação através de gerenciadores de pacotes (CocoaPods, SPM) — ele faz parte do SDK padrão.

\n

Principais recursos do framework:

\n
    \n
  • Determinação das coordenadas geográficas atuais (latitude e longitude).
  • \n
  • Monitoramento de mudanças de localização em tempo real.
  • \n
  • Geofencing — recebimento de notificações ao entrar/sair de uma área definida.
  • \n
  • Determinação de direção (bússola) e velocidade de movimento.
  • \n
  • Geocodificação reversa (conversão de coordenadas em endereço) e geocodificação direta (endereço em coordenadas).
  • \n
\n

A biblioteca é indispensável para aplicativos de navegação, serviços de entrega, rastreadores de fitness, redes sociais com geotags e qualquer outro aplicativo que precise saber a localização do usuário.

\n\n

Instalação do CoreLocation

\n

Como o CoreLocation faz parte do sistema operacional, ele não precisa ser instalado via pip ou npm. Para usá-lo, basta importar o módulo no código.

\n

Importante: Para trabalhar com geolocalização, é necessário adicionar uma descrição de uso no arquivo Info.plist do seu projeto. Sem isso, o aplicativo será encerrado abruptamente ao tentar solicitar permissão.

\n

Adicione uma das seguintes chaves (dependendo de quando você precisa da localização):

\n
    \n
  • NSLocationWhenInUseUsageDescription — para acesso apenas durante o uso ativo do aplicativo.
  • \n
  • NSLocationAlwaysAndWhenInUseUsageDescription — para acesso constante (mesmo em segundo plano).
  • \n
\n

Como valor, insira uma string que será exibida ao usuário na caixa de diálogo de solicitação de permissão (por exemplo, "O aplicativo precisa de acesso à geolocalização para exibir cafés próximos").

\n\n

Início rápido com exemplo de código

\n

Vamos considerar um exemplo mínimo de obtenção das coordenadas atuais do usuário.

\n
import CoreLocation\n\nclass ViewController: UIViewController, CLLocationManagerDelegate {\n\n    let locationManager = CLLocationManager()\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n        locationManager.delegate = self\n        locationManager.requestWhenInUseAuthorization()\n        locationManager.startUpdatingLocation()\n    }\n\n    // MARK: - CLLocationManagerDelegate\n    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {\n        guard let location = locations.last else { return }\n        print("Latitude: \\(location.coordinate.latitude)")\n        print("Longitude: \\(location.coordinate.longitude)")\n        // Para a atualização para não consumir bateria\n        locationManager.stopUpdatingLocation()\n    }\n\n    func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {\n        print("Erro ao obter localização: \\(error.localizedDescription)")\n    }\n}\n
\n

Este código cria um gerenciador, solicita permissão ao usuário e inicia o monitoramento. Assim que as coordenadas são obtidas, elas são exibidas no console.

\n\n

Principais métodos/funções do CoreLocation

\n

Abaixo estão os principais métodos e propriedades da classe CLLocationManager, bem como de classes auxiliares.

\n\n

1. requestWhenInUseAuthorization()

\n

Descrição: Solicita ao usuário permissão para acessar a geolocalização apenas durante o uso do aplicativo (aplicativo ativo na tela).

\n

Parâmetros: Nenhum.

\n

Exemplo:

\n
let manager = CLLocationManager()\nmanager.requestWhenInUseAuthorization()\n
\n\n

2.

Recommendations