An Objective-C library for storing and querying geographic locations in realtime using Firebase.
GeoFire is an open-source library for iOS that allows developers to store and query data based on geographic location using Firebase Realtime Database. It solves the problem of performing realtime geospatial queries by enabling apps to efficiently retrieve keys within a specified area and receive updates as locations change. The library acts as a lightweight add-on to Firebase, making it easy to integrate location-based features without modifying existing data structures.
iOS developers building location-aware applications, such as ride-sharing apps, local business finders, or social apps with proximity-based features, who need realtime geospatial querying capabilities.
Developers choose GeoFire for its seamless integration with Firebase, realtime updates, and efficient querying that only loads relevant location data. Its lightweight design and compatibility with existing Firebase setups make it a practical choice for adding geospatial functionality without architectural overhauls.
GeoFire for Objective-C - Realtime location queries with Firebase
Seamlessly integrates with Firebase Realtime Database to provide live updates as locations change, enabling dynamic apps like ride-sharing or delivery services with event-driven key entered/exited events.
Selectively loads only data within queried geographic areas, ensuring app responsiveness even with large datasets, as emphasized in the README's focus on lightweight performance.
Stores data in a separate format and location within Firebase, allowing integration without modifying existing data structures or security rules, preserving current app architecture.
Fully compatible with Swift projects via CocoaPods with framework support, offering modern iOS development flexibility alongside Objective-C, as demonstrated in code examples.
Tightly coupled with Firebase Realtime Database, making migration to other databases or services like Firestore difficult and adding vendor dependency that may incur costs or limit control.
Only supports circular radius and basic regional queries, lacking advanced features such as polygon searches, distance matrices, or complex spatial operations that other geospatial libraries offer.
Requires Firebase project configuration, security rules with .indexOn optimizations, and careful handling of version upgrades, as noted in the README's migration guides for breaking changes.
iOS UI bindings for Firebase.
MLKit-ARKit is a Swift-based example project that integrates Firebase ML Kit's object detection with Apple's ARKit to create an augmented reality labeling experience. It processes live camera frames from ARKit to identify objects and renders corresponding 3D text labels in the AR scene using SceneKit. ## Key Features - **Real-time Object Detection** — Continuously analyzes ARKit camera frames via Firebase ML Kit on a background thread to maintain AR performance. - **3D AR Labeling** — Places detected object names as 3D text labels at ARKit feature points, anchored in the real-world view. - **Threaded Processing** — Uses a dedicated dispatch queue to run ML inference without blocking ARKit's 60 FPS rendering loop. - **Tap-to-Label Interaction** — Allows users to tap to place labels based on the most recent detection at the screen's center raycast point. ## Philosophy The project demonstrates a practical integration of on-device machine learning with augmented reality, prioritizing real-time performance by decoupling ML processing from AR rendering threads.
MLKit-ARCore is an augmented reality demo project that combines on-device object detection with shared 3D labeling. It enables real-time object recognition in AR using live camera frames and synchronizes the identified labels across multiple devices for a collaborative experience. ## Key Features - **Real-time Object Detection** — Uses Firebase ML Kit to analyze ARKit camera frames continuously on a background thread. - **3D AR Labeling** — Places 3D text labels at detected object positions in the AR scene using SceneKit. - **Multiplayer Synchronization** — Shares labels between phones in real-time via Firebase Realtime Database (RTDB). - **ARKit Integration** — Leverages ARCore (ARKit) for stable AR tracking and feature-point placement. ## Philosophy The project demonstrates how to efficiently combine machine learning with augmented reality by running ML inference asynchronously to maintain AR performance, while using cloud sync to create a shared AR experience.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.