Skip to content

Comments

0.1.3#121

Merged
oleksiikolomiietssnapp merged 51 commits intomainfrom
next
Nov 11, 2025
Merged

0.1.3#121
oleksiikolomiietssnapp merged 51 commits intomainfrom
next

Conversation

@oleksiikolomiietssnapp
Copy link
Collaborator

@oleksiikolomiietssnapp oleksiikolomiietssnapp commented Sep 11, 2025

Summary

Release version 0.1.3 with Swift 6 migration, improved shape support, enhanced image processing
capabilities, and refinements to example applications.

What

Version bump to 0.1.3 combining multiple improvements across the framework:

Core Features

  • URL Context for Image Processing (Support url context for image processing #135): Extended
    SnappThemingExternalImageProcessorProtocol to provide URL context alongside data to image
    processors, critical for formats like SVG that need resource context
  • InsettableShape Support (Add support of InsettableShape for SnappThemingShapeType #130): Upgraded SnappThemingShapeType to support
    InsettableShape builder pattern for better SwiftUI integration
  • Swift 6 Migration (Migrate the example apps to Swift 6 #129): Migrated example apps to Swift 6 with related compatibility fixes
  • Caching Improvements: Ensured images are cached before extraction to prevent rendering
    issues when switching themes
  • Image Manager Testing & Registry Enhancements (Image manager tests #136)
    • Full unit test suite for SnappThemingImageManager
      functionality
    • Added unregister() method for dynamic processor lifecycle management
    • Ensured thread-safe access to SnappThemingImageProcessorsRegistry
    • Refreshed and clarified registry API documentation

Example App Refinements

Why

These changes:

  • Modernize codebase: Align with Swift 6 standards and best practices
  • Enhance flexibility: Better support for external image processors with context information
  • Improve SwiftUI compatibility: InsettableShape support enables use in more SwiftUI APIs
    (e.g., clipShape, strokeBorder)
  • Streamline CI/CD: Reusable workflows reduce maintenance burden

Changes

API Enhancements

  • SnappThemingExternalImageProcessorProtocol now receives image URLs for context
  • SnappThemingShapeType shape property changed to @InsettableShapeBuilder
  • SnappThemingImageProcessorsRegistry adds unregister() method
  • Image processing now includes pre-caching step

Testing

  • New SnappThemingImageManagerTests.swift with comprehensive test coverage
  • Mock implementations for external image processors
  • Thread-safety verification for concurrent registry access

Code Quality

  • Fixed Swift 6 compiler warnings and deprecated API usage
  • Removed test code warnings
  • Removed redundant ShapeBuilder abstraction
  • Formatting standardization across codebase

Dependencies & Infrastructure

  • Example apps updated to Swift 6
  • CI/CD pipeline updated with reusable workflow actions
  • Removed cross-dependency (SVG support) from core example

Related Issues Resolved

  • Fixes for SVG initialization in image processors
  • Theme switching image caching issues
  • SwiftUI shape modifier compatibility
  • Dynamic processor registration/unregistration

@oleksiikolomiietssnapp oleksiikolomiietssnapp changed the title [WIP] - 0.04 [WIP] - 0.1.3 Sep 11, 2025
Migrate the example apps to Swift 6
…leshape-for-snappthemingshapetype

Add support of `InsettableShape` for `SnappThemingShapeType`
* initial extending of SnappThemingExternalImageProcessorProtocol

* provide a proper way to handle image object and add documentation
@Snapp-Mobile Snapp-Mobile deleted a comment from github-actions bot Nov 8, 2025
@oleksiikolomiietssnapp oleksiikolomiietssnapp changed the title [WIP] - 0.1.3 0.1.3 Nov 10, 2025
- `SnappThemingImageProcessorsRegistry` changes:
  - add unregister method
  - make sure it's thread safe
  - refresh documentation
 - add tests for `SnappThemingImageManager`
- fix warnings in tests code
@oleksiikolomiietssnapp oleksiikolomiietssnapp marked this pull request as ready for review November 11, 2025 10:48
@github-actions
Copy link

🛡️ Code Coverage Report

Target Lines Coverage
1 SnappTheming 2463 82.34%

Generated by Swift Coverage Action.

@oleksiikolomiietssnapp oleksiikolomiietssnapp merged commit deb6b70 into main Nov 11, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants