AsyncLocationKit alternatives and similar libraries
Based on the "Location" category.
Alternatively, view AsyncLocationKit alternatives based on common mentions on social networks and blogs.
-
SwiftLocation
🛰 CoreLocation Made Easy - Efficient & Easy Location Tracker, IP Location, Gecoder, Geofence, Autocomplete, Beacon Ranging, Broadcaster and Visits Monitoring -
STLocationRequest
Request the Location Services via a 3D 360° flyover MKMapView 🗺
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of AsyncLocationKit or a related project?
README
AsyncLocationKit
Wrapper for Apple CoreLocation
framework with new Concurency Model. No more delegate
pattern or completion blocks
.
Install
SPM
dependencies: [
.package(url: "https://github.com/AsyncSwift/AsyncLocationKit.git", .upToNextMinor(from: "1.5.5"))
]
Cocoapods
pod 'AsyncLocationKit', :git => 'https://github.com/AsyncSwift/AsyncLocationKit.git', :tag => '1.5.5'
:warning: Initialize AsyncLocationManager only synchronously on MainThread
import AsyncLocationKit
let asyncLocationManager = AsyncLocationManager(desiredAccuracy: .bestAccuracy)
Task {
let permission = await self.asyncLocationManager.requestAuthorizationWhenInUse() //returns CLAuthorizationStatus
}
You can use all methods from Apple CLLocationManager
.
Task {
let coordinate = try await asyncLocationManager.requestLocation() //Request user location once
}
Start monitoring update of user location with AsyncStream
.
Task {
for await locationUpdateEvent in await asyncLocationManager.startUpdatingLocation() {
switch locationUpdateEvent {
case .didUpdateLocations(let locations):
// do something
case .didFailWith(let error):
// do something
case .didPaused, .didResume:
break
}
}
}
If Task
was canceled, Stream finished automaticaly.