O que é CoreLocation e para que serve?
\nCoreLocation é 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.
\nPrincipais 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
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\nInstalação do CoreLocation
\nComo 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.
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.
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
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\nInício rápido com exemplo de código
\nVamos considerar um exemplo mínimo de obtenção das coordenadas atuais do usuário.
\nimport 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\nEste 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\nPrincipais métodos/funções do CoreLocation
\nAbaixo estão os principais métodos e propriedades da classe CLLocationManager, bem como de classes auxiliares.
1. requestWhenInUseAuthorization()
\nDescrição: Solicita ao usuário permissão para acessar a geolocalização apenas durante o uso do aplicativo (aplicativo ativo na tela).
\nParâmetros: Nenhum.
\nExemplo:
\nlet manager = CLLocationManager()\nmanager.requestWhenInUseAuthorization()\n\n\n2.
Também na biblioteca
Agendador de Tarefas PHP: tarefas semelhantes ao cron sem crond
GraphQL em C++: biblioteca cppgraphqlgen para criação de APIs
Registro em Go: Visão geral da biblioteca padrão log e alternativas
Envio de email em Java: biblioteca Jakarta Mail (JavaMail)