Swiftpack.co - skedgo/GeoMonitor as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by skedgo.
skedgo/GeoMonitor 0.2.0
iOS library for background monitoring of a user's movement
⭐️ 2
🕓 46 weeks ago
iOS
.package(url: "https://github.com/skedgo/GeoMonitor.git", from: "0.2.0")

GeoMonitor

A battery-efficient and privacy-friendly mini framework for monitoring the user's location, triggering callbacks when the user starts moving and monitoring whether the user approaches specified regions.

Relies on a mixture of techniques, such as:

  • Region-monitoring for detecting when the user leaves their current location
  • Region-monitoring for detecting when the user approaches pre-defined locations
  • Visit-monitoring for detecting when the user has arrived somewhere

Setup

  1. Configure your Target:
  • Go to Signing & Capabilities, Background Modes and make sure Location updates is ticket.
  • Go to Info, and make sure you have usage descriptions for "Privacy - Location Always", "Privacy - Location Always and When in Use", and "Privacy - Location When In Use" set.

Usage

GeoMonitor requires iOS 14+

self.monitor = GeoMonitor {
  // Fetch the latest regions; also called when entering one.
  // Make sure `region.identifier` is stable.
  let regions = await ...
  return circles = regions.map { CLCircularRegion(...) }
} onEvent: { event, currentLocation in
  switch event {
  case .departed(visit):
    // Called when a previously-visited location was left
  case .entered(region):
    // Called when entering a defined region.
    let notification = MyNotification(for: region)
    notification.fire()
  case .arrived(visit):
    // Called when a visit was registered
  }
}
monitor.enableVisitMonitoring = true
monitor.start()

Considerations

Regular iOS restrictions apply, such as:

[...] When Background App Refresh is disabled, either for your app or for all apps, the user must explicitly launch your app to resume the delivery of all location-related events.

GitHub

link
Stars: 2
Last commit: 46 weeks ago
Advertisement: IndiePitcher.com - Cold Email Software for Startups

Release Notes

0.2.0
46 weeks ago

What's Changed

Full Changelog: https://github.com/skedgo/GeoMonitor/compare/0.1.3...0.2.0

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics