EFPrefix/EFQRCode
60.1
Adequate · 30 September 2026
22.6k
lines of production code
Swift
primary language
2
measurements over time
What this system is
EFQRCode is a Swift-based library for generating and recognizing QR codes across Apple platforms, including visionOS. It provides a modern API for creating QR codes with diverse visual styles, such as 2.5D, bubble, and image-based themes, and supports exporting to various formats including SVG, GIF, APNG, and video. The system also includes comprehensive example applications for iOS, macOS, tvOS, and watchOS to demonstrate these capabilities.
How it got here
2017 — Swift migration and multi-platform expansion
26 changes.
The project underwent a major migration to Swift 5, dropping legacy Objective-C support and raising minimum platform requirements to iOS 13 and macOS 10.15. This release introduced visionOS support, SVG rendering via SwiftDraw, and new QR code generation and recognition APIs. The example applications were completely rewritten in Swift and expanded to include native demos for iOS, macOS, tvOS, and watchOS.
2019–2025 — QR styling and export expansion
6 changes.
The project introduced a comprehensive new styling architecture supporting 2.5D, bubble, and image-based themes, alongside expanded export formats for animated images and video. This period also added utility extensions for type conversions and localized the example applications for Simplified Chinese.
Features
Add iOS and watchOS example app resource files
The iOS and watchOS example applications now include their configuration and UI resource files. This adds an Info.plist for the main iOS app defining bundle identifiers, versioning, and privacy usage descriptions for photo library access, a LaunchScreen.xib for the iOS splash screen, and an Info.plist for the watchOS companion app linking it to the iOS bundle.
Examples/iOS/Resources · high confidence
Add macOS example app with SnapKit and EFQRCode integration
The macOS example project is now available, providing a demo application that integrates the EFQRCode framework. The app utilizes SnapKit for layout management and includes source files for view controllers, image handling extensions, and UI components to demonstrate QR code generation and recognition capabilities on macOS.
Examples/macOS/macOS Example.xcodeproj · high confidence
Add tvOS example application
The tvOS example project has been added, providing a demonstration of the EFQRCode library on Apple TV. This includes the necessary Xcode project configuration, source files (such as ViewControllers and extensions), and resources to build and run the app on tvOS devices.
Examples/tvOS/tvOS Example.xcodeproj · high confidence
Add watchOS example extension with QR code generation and unit testing
The watchOS example extension now includes a complete set of interface controllers and assets to demonstrate QR code generation on Apple Watch. Users can generate QR codes with customizable parameters such as content, size, colors, and icons via the ParametersInterfaceController, which also features a custom number pad for input. The extension includes a dedicated unit test interface (UnitTestInterfaceController) that runs and displays the status of various EFQRCode generator tests directly on the watch, alongside sample assets for complications and icons.
Examples/iOS/watchOS Example Extension · high confidence
Added PointStyle enum for QR code point shapes
The Examples/Shared area now includes a new PointStyle.swift file that defines an enum with cases for square, circle, diamond, and star point styles. This provides a centralized, type-safe way to select the visual shape of QR code points within the example application, although the underlying implementation logic for rendering these specific styles is currently commented out in this file.
Examples/Shared · high confidence
Added Simplified Chinese (zh-Hans) localization for example apps
The example applications for iOS, watchOS, macOS, and tvOS now include localization resources for Simplified Chinese (zh-Hans). Users with their device language set to this locale will see the example app interfaces translated, covering UI elements such as buttons, labels, and menu items across all supported platforms.
(repo-wide) · high confidence
Added Xcode schemes for iOS and watchOS example apps
The iOS Example project now includes shared Xcode schemes for both the iOS and watchOS example targets. This allows developers to directly build, run, test, profile, and archive the iOS Example app (EFQRCode.iOS.app) and the watchOS Example app (watchOS Example.app) from the Xcode IDE without needing to manually configure these run schemes.
Examples/iOS/iOS Example.xcodeproj/xcshareddata · high confidence
Added iOS example workspace configuration
The iOS example project now includes a dedicated workspace configuration. This adds the \contents.xcworkspacedata\ file to define the workspace structure and the \IDEWorkspaceChecks.plist\ file to suppress the 32-bit warning in Xcode, ensuring the example project opens correctly without warnings.
Examples/iOS/iOS Example.xcodeproj/project.xcworkspace · high confidence
Added macOS example app scheme for Xcode 12
The macOS example application now includes a dedicated Xcode scheme file configured for Xcode 12 (LastUpgradeVersion 1230). This scheme defines the build, test, launch, profile, analyze, and archive actions for the EFQRCode.app target, enabling users to run and debug the macOS demo directly within the IDE.
Examples/macOS/macOS Example.xcodeproj/xcshareddata, Examples/tvOS/tvOS Example.xcodeproj/xcshareddata · high confidence
Added workspace configuration for iOS, macOS, and tvOS examples
The project now includes an Xcode workspace that groups the core library with example projects for iOS, macOS, and tvOS. This allows developers to open and build the example applications alongside the main library in a single workspace environment.
EFQRCode.xcworkspace · high confidence
EFQRCode version 7.0.3 release with new generator and recognizer APIs
This release introduces version 7.0.3 of the EFQRCode library, adding new Swift source files that define the core \Generator\ and \Recognizer\ classes. The \Generator\ class provides a modern entry point for creating QR codes with various styles and output formats (including PNG, JPEG, SVG, GIF, APNG, PDF, and video), while the \Recognizer\ class enables detection and decoding of QR codes from images using Core Image. The update also includes platform-specific Info.plist files for iOS and tvOS, and adds a PrivacyInfo.xcprivacy file declaring no privacy tracking or data collection.
Source · high confidence
New QR code styling system with 2.5D, bubble, and image-based themes
The Source/Styles directory now introduces a comprehensive, new styling architecture for QR codes, replacing previous implementations with a modular set of style parameters and renderers. This change adds support for several distinct visual themes: a 2.5D style that simulates depth using multi-color shading (top, left, and right faces) and customizable module heights; a bubble style featuring rounded, bubble-like data modules with customizable center colors; a DSJ style with distinctive position and data module patterns; a function-based style that uses mathematical algorithms (like fade or circle effects) to generate dynamic data module patterns; and image-based styles (Image and ImageFill) that allow QR code modules to be filled with or masked by actual images. All styles share a common foundation via \EFStyleParams\, supporting consistent configuration for central icons, backdrops, and position detection patterns, while allowing specific customization for alignment, timing, and data modules depending on the chosen theme.
Source/Styles · high confidence
New macOS example app for EFQRCode
The macOS Example project has been added, providing a native macOS application that demonstrates the EFQRCode library's capabilities. The app features a sidebar for switching between QR code generation and recognition modes, supports drag-and-drop image handling, and includes UI controls for customizing generation parameters such as correction level, colors, and icons.
Examples/macOS/macOS Example · high confidence
New tvOS example application for QR code generation
The repository now includes a dedicated tvOS example project (Examples/tvOS/tvOS Example) that demonstrates the EFQRCode library on Apple TV. This new app features a user interface for generating QR codes with customizable parameters such as correction level, colors, and icons, utilizing the library's Swift API. The project is configured for the arm64 architecture and includes a Main.storyboard and GeneratorController.swift to handle the generation logic and UI interactions specific to the tvOS environment.
Examples/tvOS/tvOS Example · high confidence
New type definitions for QR code generation options and export formats
This change introduces a set of new type definitions in the Source/Type directory that expand the library's capabilities. EFAnimatedImageFormat and EFVideoFormat define the supported output formats, adding APNG and video (MOV, MP4, M4V) exports alongside existing GIF support. EFCorrectionLevel provides the standard QR error correction levels (L, M, Q, H) with mapping to the underlying QRCodeSwift library. EFEdgeInsets offers a cross-platform abstraction for padding, mapping to NSEdgeInsets on macOS and UIEdgeInsets on iOS/tvOS/watchOS. EFImageMode defines scaling behaviors (scaleToFill, scaleAspectFit, scaleAspectFill) for positioning watermarks or icons within the QR code. Finally, EFQRCodeError enumerates all possible failure states, including specific errors for data capacity, encoding, and image/video creation.
Source/Type · high confidence
New utility extensions for numeric, string, and image type conversions
The Source/Extension directory now includes a suite of new Swift extension files that provide helper methods for QR code processing. BinaryFloatingPoint and BinaryInteger extensions add convenient type conversions (e.g., to CGFloat, Int, Bool). String extensions add suffix replacement and enhanced search/replace capabilities. Image extensions (CGColor, CGImage, CIImage, NSImage, UIImage) provide utilities for color manipulation (RGB/hex/alpha), image format conversion (PNG/base64/grayscale), QR code recognition via Core Image, and cross-platform image type interoperability between UIKit and AppKit.
Source/Extension · high confidence
WatchOS example app interface layout
The watchOS example application now includes a complete Interface.storyboard defining the user interface for the demo. This layout features a main screen displaying the EFQRCode library version and navigation options, a numeric keypad scene for inputting data, a scene to display generated QR codes, and a dedicated unit test interface that lists test cases and their status.
Examples/iOS/watchOS Example/Base.lproj · high confidence
Removals
Removal of legacy iOS storyboard and launch screen files
The example application's \LaunchScreen.xib\ and \Main.storyboard\ files have been deleted. This removes the legacy Interface Builder definitions for the app's launch screen and main view controller, indicating a shift away from using these specific storyboard-based UI configurations in the demo project.
Example/EFQRCode/Base.lproj · high confidence
Removal of placeholder files in EFQRCode
The placeholder files \.gitkeep\ in the \Assets\ and \Classes\ directories, along with the \ReplaceMe.swift\ file, have been removed from the EFQRCode module. This cleanup eliminates empty scaffolding files that were previously present in the project structure.
EFQRCode · high confidence
Removal of the iOS example project workspace
The \EFQRCode.xcodeproj\ file, which defined the build configuration for the EFQRCode example application and its associated test suite, has been deleted. This change removes the local Xcode project structure used to demonstrate and test the library on iOS, including the app target, test target, and CocoaPods integration files.
Example/EFQRCode.xcodeproj · high confidence
Removed legacy Swift example project files
The example project's AppDelegate and ViewController source files have been deleted. This removes the default Swift application entry point and main view controller that were previously included in the EFQRCode example directory.
Example/EFQRCode · high confidence
Behavioural changes
Added IDE workspace checks and relocated workspace data
The project now includes an IDEWorkspaceChecks.plist file to manage Xcode workspace settings, specifically enabling the 32-bit warning computation. Additionally, the workspace data file (contents.xcworkspacedata) has been moved from the Example project directory to the main project directory and its file permissions were updated.
EFQRCode.xcodeproj/project.xcworkspace · high confidence
EFQRCode project structure updated for modern Swift and platform support
The Xcode project file has been regenerated to include the full set of Swift source files for the EFQRCode library, such as EFQRCode.swift, EFQRCode+Generator.swift, and various style modules (e.g., EFQRCodeStyle25D, EFQRCodeStyleBubble). It also integrates the SwiftDraw framework dependency, adds support for animated image formats (EFAnimatedImageFormat) and video exports (EFVideoFormat), and includes test targets and platform-specific extensions (NSImage, UIImage, CIImage).
EFQRCode.xcodeproj · medium confidence
EFQRCode v7.0.3 release with visionOS support and SVG rendering engine
This release updates the library to version 7.0.3, introducing support for the visionOS platform and migrating the rendering engine to SVG-based generation via SwiftDraw. The update also removes legacy Objective-C support, requiring users to adopt the Swift API, and updates the minimum platform requirements to iOS 13, macOS 10.15, tvOS 13, and watchOS 6.
(repo-wide) · high confidence
Initialize macOS Example workspace configuration
The macOS Example project now includes a properly configured Xcode workspace. This adds the \contents.xcworkspacedata\ file to link the workspace to the \macOS Example.xcodeproj\ and an \IDEWorkspaceChecks.plist\ file to suppress the 32-bit warning, ensuring the example project opens correctly in Xcode without manual workspace setup.
Examples/macOS/macOS Example.xcodeproj/project.xcworkspace · high confidence
Updated Xcode project schemes for Xcode 12 and added watchOS support
The Xcode project schemes have been updated to version 1.3 with a LastUpgradeVersion of 1230 (Xcode 12). New schemes were added for iOS, tvOS, and watchOS targets, enabling building, testing, and launching for these platforms. The macOS scheme was migrated from the example project to the main library project, renaming the target from 'EFQRCode\_Example' to 'EFQRCode macOS' and updating build entries to reference the framework and its tests. Additionally, code coverage was enabled for the macOS test action, and the launch/profile actions were standardized to use MacroExpansion references.
EFQRCode.xcodeproj/xcshareddata · high confidence
iOS Example project updated to support watchOS and modern Xcode
The iOS Example project has been updated to include a watchOS target, allowing users to run the demonstration on Apple Watch devices in addition to iOS. The project configuration has also been upgraded to support Xcode 12 and includes the SnapKit layout library, ensuring compatibility with current development environments and providing a more robust UI layout system for the example app.
Examples/iOS/iOS Example.xcodeproj · high confidence
iOS Generator demo app receives UI and styling updates
The iOS Generator example application has been updated with several user-facing changes. The interface now supports a backdrop feature, allowing users to apply a background image or color with configurable corner radius, alpha, and image scaling modes to the generated QR codes. Additionally, the Bubble generator style now includes a dedicated 'data center color' parameter, enabling distinct coloring for the center of the data modules. The demo also includes fixes for icon rendering, specifically correcting alpha handling and offset positioning to ensure icons display correctly within the generated codes.
Examples/iOS/Generator · high confidence
iOS example app rewritten in Swift with modern UI and localization
The iOS example application has been completely rewritten in Swift, replacing the previous Objective-C implementation. The new app features a modern UI built with SnapKit constraints and auto-layout, supporting safe area insets for iOS 11+. It includes a comprehensive localization system via the Localized helper, a new QR code recognition controller, and a style list view demonstrating various QR code generation options. The app also adds support for displaying animated GIFs and APNGs, with specific handling for frame delays and image formats.
Examples/iOS · high confidence
Test coverage
Added unit tests for QR code generation and recognition; Removed Example/Tests/Tests.swift.
Dependencies
EFQRCode v7.0.3: Swift Package Manager support and dependency updates
This release adds Swift Package Manager support via a new Package.swift and updates the library to version 7.0.3. It introduces SwiftDraw (v0.22.0) as a dependency for SVG handling and updates the QR code generation dependency to ef\_swift\_qrcodejs (v2.3.1). The minimum deployment targets are raised to iOS 13, macOS 10.15, tvOS 13, and watchOS 6, with visionOS 1.0 support added. The podspec is updated to reflect these changes, and the Example/Podfile is removed.
(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 62 → 60 (-1.5)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 76 → 75 (-1.0)
- Architecture 83 → 93 (+9.9)
- Maturity 53 → 53 (+0.0)
- Readiness 64 → 60 (-3.7)
- Security 65 → 65 (+0.0)
Resolved (4)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Near-duplicate member pair (40 shared lines) (Source/Styles/EFQRCodeStyle25D.swift)
- Off-boarding risk: anonymized user #1
New (23)
- Coverage not measured — Swift suite
- Duplicated block (11 lines × 2) (Examples/iOS/StyleViewController.swift)
- Duplicated block (12 lines × 2) (Source/Styles/EFQRCodeStyleResampleImage.swift)
- Duplicated block (13 lines × 2) (Source/Extension/CGImage+EFQRCode.swift)
- Duplicated block (15 lines × 2) (Source/EFQRCode+Generator.swift)
- Duplicated block (17–18 lines × 3) (Source/EFQRCode+Generator.swift)
- Duplicated block (55 lines × 2) (Source/Extension/BinaryFloatingPoint+EFQRCode.swift)
- FileTooLong: Source/EFQRCode+Generator.swift (Source/EFQRCode+Generator.swift)
- Generator.checkIfNeedResize (cognitive 18) (Source/EFQRCode+Generator.swift)
- Generator.checkIfNeedResize (cyclomatic 18) (Source/EFQRCode+Generator.swift)
- Generator.createVideoDataWith (cognitive 21) (Source/EFQRCode+Generator.swift)
- Generator.reconcileFrameImages (cognitive 68) (Source/EFQRCode+Generator.swift)
- Generator.reconcileFrameImages (cyclomatic 19) (Source/EFQRCode+Generator.swift)
- Generator.reconcileQRImages (cognitive 16) (Source/EFQRCode+Generator.swift)
- Inconsistent Image Parameter Wrapping: EFStyleImageParamsImage and EFStyleResampleImageParamsImage wrap EFStyleParamImage but add specific properties (like allowTransparent or contrast/exposure). However, EFStyleImageFillParamsImage also wraps EFStyleParamImage but lacks these specific modifiers, yet has a different constructor signature structure compared to the others. More critically, EFStyleParamImage is used directly in EFStyleParamIcon and these image params, but the wrapping types (EFStyleImageParamsImage etc.) are redundant if they just pass through to EFStyleParamImage with minor tweaks, creating confusion about whether to use the wrapper or the base type.
- Inconsistent Style Type Naming: EFStyleBasicParamsData uses a specific style type EFStyleBasicParamsDataStyle, whereas EFStyleImageParams and EFStyleResampleImageParams reuse the generic EFStyleParamsDataStyle. This creates an inconsistency in how data styling is abstracted across different style families.
- Inconsistent Style Type Naming: EFStyleBasicParams uses the generic EFStyleParamAlignStyle, while EFStyleImageParams and EFStyleResampleImageParams define their own specific style types (EFStyleImageParamAlignStyle, etc.). This breaks the pattern established by the 'Basic' style.
- Inconsistent Style Type Naming: EFStyleBasicParams uses the generic EFStyleParamTimingStyle, while EFStyleImageParams and EFStyleResampleImageParams define their own specific style types (EFStyleImageParamTimingStyle, etc.).
- MethodTooLong: Generator.reconcileFrameImages (Source/EFQRCode+Generator.swift)
- Near-duplicate member pair (40 shared lines) (Source/Styles/EFQRCodeStyleResampleImage.swift)
- …and 3 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
EFPrefix/EFQRCode 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 3897298e0aac08f8e3d38378afdb419ab66efee8 — 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.