Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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.

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.