Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/devcodepurge/devcodepurgedeveloperdatakit
provides tools for managing and purging Xcode developer data, including archives, derived data, documentation caches, and device support files.
https://github.com/devcodepurge/devcodepurgedeveloperdatakit
cleanup developer-tools macos swift swiftui xcode
Last synced: 4 days ago
JSON representation
provides tools for managing and purging Xcode developer data, including archives, derived data, documentation caches, and device support files.
- Host: GitHub
- URL: https://github.com/devcodepurge/devcodepurgedeveloperdatakit
- Owner: DevCodePurge
- License: mit
- Created: 2025-01-31T01:58:04.000Z (11 days ago)
- Default Branch: main
- Last Pushed: 2025-02-03T23:21:18.000Z (7 days ago)
- Last Synced: 2025-02-04T00:19:15.851Z (7 days ago)
- Topics: cleanup, developer-tools, macos, swift, swiftui, xcode
- Language: Swift
- Homepage:
- Size: 42 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DevCodePurgeDeveloperDataKit
![Swift](https://img.shields.io/badge/Swift-5.7-blue)
![Platform](https://img.shields.io/badge/Platform-macOS%2013.0-lightgrey)
![License](https://img.shields.io/badge/License-MIT-green)**DevCodePurgeDeveloperDataKit** is a module within the [DevCodePurge](https://github.com/DevCodePurge) project. This package introduces specialized components and tools for managing developer-related data such as archives, derived data, documentation caches, and device support files. It provides essential utilities and views for efficiently scanning, selecting, and purging Xcode-generated developer files.
## Features
- **Category Management**:
- Handles specific developer data categories (`archives`, `derived data`, `documentation cache`, `device support`).
- Includes tools to scan, display, and manage these categories.- **Powerful ViewModels**:
- Manage archives, derived data, documentation caches, and device support with built-in Combine integration and live data updates.
- Support for observing changes in item states, selecting old files, and purging data.- **Custom Views**:
- Pre-built views for listing, scanning, and selecting developer data.
- Integration with DevCodePurgeKit’s reusable UI components.- **Device Support Management**:
- Scans and lists used and unused device support files.
- Provides the ability to select and purge outdated device support files.
- Integrates with Xcode to detect recently used device support files automatically.- **Delegation**:
- Conforms to a `DeveloperDataDelegate` protocol to enable customization and handle platform-specific actions such as purging items or showing files in Finder.## Installation
### Swift Package Manager
Add the package to your `Package.swift` file:
```swift
dependencies: [
.package(url: "https://github.com/DevCodePurge/DevCodePurgeDeveloperDataKit", branch: "main")
]
```Then import it into your project:
```swift
import DevCodePurgeDeveloperDataKit
```## Components Overview
### Key Models
- **`DeveloperDataCategory`**: Enum representing the data categories (`archives`, `derived data`, `documentation cache`, `device support`).
- **`ArchivePurgeFolder`**: Represents archive files generated by Xcode, including metadata like size, creation date, and version.
- **`DerivedDataFolder`**: Represents derived data folders, useful for optimizing build times or debugging.
- **`DocumentationFolder`**: Represents API documentation cache files for offline access.
- **`DeviceSupportFolder`**: Represents device support files used for debugging on physical devices.### Core Protocols
- **`DeveloperDataDelegate`**: A protocol that enables interaction with platform-specific features such as showing files in Finder or retrieving the current Xcode version.
- **`DeviceSupportDelegate`**: A protocol that provides methods to load and manage device support files.### ViewModels
- **`SharedDeveloperDataENV`**: Shared environment object for managing scan state, categories, and purging actions.
- **`ArchiveListViewModel`**: Manages archive-related data, including observing changes and selecting old archives.
- **`DerivedDataListViewModel`**: Manages derived data files, with utilities for selecting files older than a specified date.
- **`DocumentationCacheListViewModel`**: Handles documentation cache files and determines outdated versions.
- **`DeviceSupportViewModel`**: Manages used and unused device support files, detecting recently used ones and allowing for selective purging.### Pre-Built Views
- **`DeveloperDataMainView`**: Entry point for managing developer data. Provides scanning, viewing, and purging capabilities for all categories.
- **`ArchiveListView`**: Lists archives with checkboxes for selection and options for showing files in Finder.
- **`DerivedDataListView`**: Displays derived data folders with tools for selecting old files.
- **`DocumentationCacheListView`**: Displays the documentation cache, differentiating between the current version and older ones.
- **`DeviceSupportView`**: Lists used and unused device support files, allowing for selection and removal of outdated entries.## Documentation
For detailed information, usage examples, and customization options, refer to the [comprehensive documentation](docs/DevCodePurgeDeveloperDataKit_Documentation.md).
## Contributing
Feedback and contributions are welcome! If you have suggestions or encounter issues, please open an [issue](https://github.com/DevCodePurge/DevCodePurgeDeveloperDataKit/issues/new?template=Blank+issue) or submit a pull request.
## License
This project is licensed under the MIT License.
## About
**DevCodePurgeDeveloperDataKit** is a part of the [DevCodePurge](https://github.com/DevCodePurge) ecosystem.