grishka/NearDrop
44.5
Weak · 30 September 2026
2.2k
lines of production code
Swift
primary language
2
measurements over time
What this system is
NearDrop is a macOS application that enables file, link, and text sharing with nearby Android devices using the Google Nearby Share protocol. It leverages Apple's NearbyShare framework for connectivity and provides a Share Extension for initiating transfers from other apps. The system supports device discovery via Bluetooth Low Energy and QR code pairing, with robust handling of localizable strings and system permissions.
Features
Added Share Extension and migrated to xcstrings localization
The project now includes a Share Extension (ShareExtension.appex) that allows users to send files and links from other apps, along with a new QR code capability for sending. Additionally, localization files have been migrated from the legacy Localizable.strings format to the modern xcstrings format, and the build system has been updated to embed the libNearbyShare.dylib framework.
NearDrop.xcodeproj · high confidence
New Share Extension UI with QR code support
The Share Extension now includes a dedicated user interface for sending files, featuring a main view with file selection and a progress overlay for device discovery. A new 'Use QR code...' button has been added to the interface, allowing users to initiate transfers via QR code scanning as an alternative to the standard nearby sharing flow.
ShareExtension/Base.lproj · high confidence
New macOS Share Extension for sending files and links via Nearby Share
This change introduces a new Share Extension for macOS, enabling users to send files and URLs directly from the system share sheet to nearby devices using the Nearby Share protocol. The extension accepts file URLs and web links (http/https) while rejecting unsupported types like folders. Users can initiate transfers by selecting a discovered device from a list or by generating a QR code for device pairing. The UI includes a device list, progress indicators, and localized strings for multiple languages, with specific entitlements for sandboxed file access and network communication.
ShareExtension · high confidence
Behavioural changes
Migrate localization files to xcstrings format
The legacy .stringsdict files for pluralization rules in the base localization and Russian (ru.lproj) have been removed as part of the migration to the modern xcstrings format. This change updates the underlying localization infrastructure to use Apple's newer string catalog format, which should streamline how plural forms and localized strings are managed in the app.
NearDrop/Base.lproj · medium confidence
Migrate to NearbyShare framework and update notification handling
NearDrop now uses the Apple NearbyShare framework for file transfers, replacing the previous custom TCP/mDNS implementation. This change introduces a new Info.plist configuration for Bonjour services and updates the localizable strings to the xcstrings format. Additionally, the app now explicitly handles denied notification permissions by showing an alert to open System Settings, and the menu bar icon behavior has been adjusted to allow removal.
NearDrop · high confidence
NearbyShare: Support for sending/receiving links and text, plus protocol and connection refactoring
The NearbyShare module now supports sending and receiving URLs (links) and plain text, in addition to files. When receiving a link, the app opens it in the default browser; text is saved as a .txt file. The connection layer has been refactored to use a dedicated dispatch queue for network operations and to handle byte payloads, improving stability. Error reporting for missing protocol fields has been improved with specific messages. The module has also been renamed from NearDrop to NearbyShare, and the underlying protobuf schemas have been updated to match the latest Google Nearby Sharing specification, adding support for new frame types and metadata fields.
NearbyShare · high confidence
Updated protocol documentation and installation instructions
The project documentation has been significantly expanded and corrected. The protocol guide now details QR code-based pairing, BLE advertisement triggers for device visibility, the specific structure of endpoint info (including device type codes and salted metadata), and the underlying Nearby Connections mediums. The README has been updated to reflect the app's name change to NearDrop/Quick Share, provides detailed troubleshooting for macOS Gatekeeper warnings, and explains how to use QR codes to initiate transfers from Android devices that cannot send the required BLE broadcasts.
(repo-wide) · high confidence
Dependencies
Added QR code generation dependencies
The project now includes new Swift Package Manager dependencies to support QR code functionality. Specifically, the \Package.resolved\ file has been updated to version 3 and introduces pins for \qrcode\ (v26.10.0), \swift-qrcode-generator\ (v2.0.2), and \swiftimagereadwrite\ (v1.9.2). These additions enable the application to generate and handle QR codes, likely for sharing or sending data as indicated by the associated commit context.
(dependencies) · 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 47 → 45 (-2.3)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 95 → 95 (+0.3)
- Architecture 93 → 95 (+2.6)
- Maturity 47 → 48 (+0.6)
- Readiness 17 → 16 (-0.9)
- Security 100 → 100 (+0.0)
- Performance 79 (new)
Resolved (2)
- Off-boarding risk: anonymized user #1
- TodoComment (ShareExtension/ShareViewController.swift)
New (6)
- Documentation: no contributor guidance (README.md)
- Documentation: no licence statement (README.md)
- Outdated: asn1
- Outdated: bigint
- Outdated: swift-protobuf
- Outdated: swiftecc
Changes since last survey
- 4 commits — 3 feature/other, 1 fixes
By area
- NearDrop.xcodeproj/project.pbxproj — 2 commits
- (repo) — 1 commit
- ShareExtension/DeviceListCell.swift — 1 commit
Notable commits
- fix: Fix device not being clickable in some cases
- change: Apple permission bullshit
- change: Bump version
- change: Merge pull request #231 from paulora2405/master
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
grishka/NearDrop 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 add655c6c5a40b9ba03c0329b598f2817185f5a9 — 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.