AndrewHartAR/ARKit-CoreLocation
52.0
Adequate · 30 September 2026
3.1k
lines of production code
Swift
primary language
2
measurements over time
What this system is
This system is an iOS framework and accompanying demo application that integrates ARKit with Core Location to render GPS-based nodes and polylines within augmented reality scenes. It provides utilities for fusing AR scene positioning with location data, managing coordinate math, and visualizing points of interest with adjustable scaling and annotation features. The project also includes a comprehensive demo app for testing these behaviors, along with CI infrastructure and support for both CocoaPods and Swift Package Manager.
How it got here
2017 — Initial project scaffolding and demo app setup
9 changes.
This period established the foundational repository structure, including configuration files, documentation, and CI setup, while releasing the initial version of the ARKit+CoreLocation library with Swift 5 and SPM support. It also introduced the first demo application, configuring the Xcode workspace and migrating the UI to storyboards to provide a functional interface for testing AR location features.
2018–2019 — Initial framework release and testing infrastructure
7 changes.
This period marks the initial release of the ARKit+CoreLocation framework, introducing core components for fusing AR scene positions with GPS data and visualizing location-based nodes. Concurrently, the project established essential development tooling, including fastlane for CI integration and comprehensive unit, functional, and UI test suites to validate the new library and its demo application.
Features
Added fastlane configuration for iOS testing
Introduced fastlane setup files (Appfile, Fastfile, README.md) to enable CI integration for iOS. The Fastfile defines an 'ios test' lane that runs CocoaPods and Scan to execute unit tests, addressing the lack of CI support for the ARCL project.
fastlane · high confidence
Initial demo app release with AR scene view and location-based UI
The ARKit+CoreLocation demo application is now available, providing a complete user interface for testing AR location features. The app initializes a SceneLocationView to render 3D anchors and points of interest in an AR session, while a SettingsViewController allows users to toggle between map and AR views, search for locations, and request directions. The UI includes a table view for displaying search results with distance calculations and a dedicated view controller for unsupported iOS versions, ensuring the app gracefully handles devices without ARKit support.
ARKit+CoreLocation · high confidence
Initial project structure and demo app setup
The Xcode project is established with a new file structure, introducing a 'Node Demos' application target that includes an ARCLViewController, PickerViewController, and associated storyboards. The project is configured to integrate the ARKit+CoreLocation library via CocoaPods and includes dedicated test targets for both the library (ARCLTests) and the demo app (Node DemosTests/UITests).
ARKit+CoreLocation.xcodeproj · high confidence
Initial release of ARKit+CoreLocation framework
This change introduces the ARKit+CoreLocation (ARCL) library, enabling the placement of Core Location-based nodes and polylines into ARKit scenes. It provides a \SceneLocationView\ to manage the AR session and location updates, a \SceneLocationManager\ to fuse AR scene position with GPS data, and various node types like \LocationNode\ and \LocationAnnotationNode\ for visualizing points of interest. The framework includes extensions for coordinate math, scaling schemes for distance-based node sizing, and utilities to handle rendering order and flicker reduction in SceneKit.
Sources · high confidence
New Node Demos app for ARCL configuration and visualization
Added a new iOS demo application that provides a user interface for testing and visualizing ARCL node behaviors. The app includes a main menu to select specific demonstration scenarios, such as placing a single node, stacking nodes at various altitudes, creating fields of nodes or labels, and dynamically updating node content. It also exposes configuration controls for adjusting annotation height factors, location estimate methods (Core Location only vs. most relevant estimate), AR tracking types, and scaling schemes, allowing users to observe how these settings affect the augmented reality experience.
Node Demos · high confidence
Behavioural changes
Added Xcode workspace configuration
The project now includes an Xcode workspace configuration that references the main project file and enables the standard IDE workspace check to prevent build warnings. This change establishes the necessary workspace structure for the project, aligning with the removal of the Cocoa Lumberjack dependency mentioned in the commit history.
ARKit+CoreLocation.xcodeproj/project.xcworkspace · medium confidence
Demo app UI migrated to Storyboards
The ARKit+CoreLocation demo app now uses LaunchScreen.storyboard and Main.storyboard for its user interface instead of hardcoded UI. This introduces a main view controller with an AR scene view, an overlaid map, and info labels, along with a settings screen that allows toggling map visibility, points of interest, and route directions, and includes a search interface for entering addresses.
ARKit+CoreLocation/Base.lproj · high confidence
Updated ARCL pod support files to version 1.3.1
The CocoaPods support files for the ARCL framework have been regenerated and updated to version 1.3.1. This change ensures that the build configurations, module maps, and framework installation scripts for the ARCL pod and its dependent projects (including ARKit+CoreLocation and Node Demos) are synchronized with the latest podspec, allowing the demo projects to build correctly out of the box.
Pods/Target Support Files · high confidence
Updated Pods project to Xcode 11.2 settings
The \Pods/Pods.xcodeproj\ project file has been regenerated to reflect Xcode 11.2 recommended settings, including an update to the \LastUpgradeVersion\ from 10.2 to 11.2. This ensures the CocoaPods workspace configuration aligns with the newer Xcode version, resolving potential build scheme or compatibility issues for developers using the updated toolchain.
Pods/Pods.xcodeproj · high confidence
Updated Xcode scheme configuration for version 11.2
The project's shared Xcode scheme has been updated to target Xcode 11.2 (LastUpgradeVersion 1120). This change ensures that build, test, launch, profile, analyze, and archive actions are correctly configured for the newer Xcode version, resolving issues with workspace schemes and enabling the previously failing unit tests to run.
ARKit+CoreLocation.xcodeproj/xcshareddata · high confidence
Workspace now uses CocoaPods for dependency management
The project has been refactored to manage dependencies via CocoaPods. A new workspace file has been created to include both the main project and the generated Pods project, ensuring that dependencies are resolved through the pod system rather than being directly referenced in the project settings.
ARKit+CoreLocation.xcworkspace · high confidence
Test coverage
Added UI test suite for Node Demos app; Added initial test suite for Node Demos; Added unit tests for CLLocation extensions.
Dependencies
Initial release of ARCL 1.3.1 with Swift 5 and SPM support
The ARCL library is now available as version 1.3.1, supporting iOS 9.0 and Swift 5. This release introduces official Swift Package Manager support via a new Package.swift manifest and establishes a CocoaPods structure with a dedicated ARCL.podspec. The project also includes a Gemfile and Gemfile.lock to manage development dependencies, specifically bundler, cocoapods (1.7.2), and fastlane (2.126.0).
(dependencies) · high confidence
Housekeeping
Initial project scaffolding and documentation
This change establishes the foundational repository structure by adding essential configuration and documentation files. It includes a comprehensive .gitignore for Xcode, Swift Package Manager, and CocoaPods artifacts; a .swiftlint.yml configuration file to enforce code style rules; a .travis.yml file to enable continuous integration via pod lib linting; and a LICENSE file adopting the MIT license. Additionally, it provides a detailed changelog.md tracking versions from 1.1.0 to 1.3.1, a Japanese translation of the readme (readme.jp.md), and an expanded English readme.md that includes build badges, installation instructions for various package managers, and usage examples for the ARKit-CoreLocation library.
(repo-wide) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 58 → 52 (-6.4)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 97 → 97 (+0.0)
- Architecture 81 → 92 (+10.8)
- Maturity 49 → 49 (+0.0)
- Readiness 47 → 32 (-15.2)
- Security 84 → 89 (+5.1)
Resolved (2)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
New (5)
- Coverage not measured — Swift suite
- High CVE: [GHSA redacted] (Gemfile.lock)
- Low cohesion: CLLocation (LCOM4 4) (Sources/ARKit-CoreLocation/Extensions/CLLocation+Extensions.swift)
- Proliferation of delegates: SceneLocationView exposes four distinct delegate properties. While they cover different concerns (touch, tracking, location, estimate), the naming convention is inconsistent (some are specific to the view's internal components like 'Estimate', others are generic). More critically, 'SceneLocationViewDelegate' is a generic name that likely overlaps with standard ARSCNViewDelegate responsibilities or general scene updates, creating confusion about which delegate handles which lifecycle event.
- Redundant data access: SceneLocationView provides a method to retrieve the CLLocation from a LocationNode, but LocationNode already exposes the location directly as a public property. The method adds no value and duplicates the property access.
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
AndrewHartAR/ARKit-CoreLocation was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 30 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit c74634de4313183e281b323941a5d51fcd165533 — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-cb25ca4feafa.