Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/pawello2222/AppIconGenerator

A library for creating App Icons from SwiftUI views.
https://github.com/pawello2222/AppIconGenerator

appicon appicons appstore icons ios ios16 ios17 macos swift swift-package swift-package-manager swiftui

Last synced: 3 months ago
JSON representation

A library for creating App Icons from SwiftUI views.

Awesome Lists containing this project

README

        


App Icon Generator logo



Build
Language
Supported platforms
Swift Package Manager
Release version
License

# App Icon Generator

A library for creating App Icons from SwiftUI views.


Table of Contents

1. [Installation](#installation)
2. [Highlights](#highlights)
3. [Icon sets](#iconsets)
4. [Demo](#demo)
5. [License](#license)

## Installation

### Requirements
* iOS 16.0+
* macOS 13.0+

### Swift Package Manager

App Icon Generator is available as a Swift Package.

```swift
.package(url: "https://github.com/pawello2222/AppIconGenerator.git", .upToNextMajor(from: "1.0.0"))
```

## Highlights

Generate icons using `AppIconGenerator`

```swift
AppIconGenerator {
IconView()
}
.generateIcons(for: .iOS)
```

or directly from within a SwiftUI block

```swift
IconView()
.generateIcons(for: .iOS)
```

### Output

Generated icons will be saved in the documents directory (the full path will be logged to the console):

- iOS

> Icon saved to: /Users/.../Library/Developer/CoreSimulator/.../Documents/AppIconGenerator/Icon/Icon-1024.png

- macOS

> Icon saved to: /Users/.../Documents/AppIconGenerator/Icon/Icon-1024.png

## Icon sets

```swift
extension IconSet {
public var sizes: [CGFloat] {
switch self {
case .iOS:
return [40, 58, 60, 76, 80, 87, 114, 120, 128, 136, 152, 167, 180, 192, 1024]
case .macOS:
return [16, 32, 64, 128, 256, 512, 1024]
case .watchOS:
return [44, 48, 55, 58, 60, 64, 66, 80, 87, 88, 92, 100, 102, 108, 172, 196, 216, 234, 258, 1024]
case .single:
return [1024]
case .custom(let sizes):
return sizes
}
}
}
```

## Demo

```swift
import AppIconGenerator
import SwiftUI

struct ContentView: View {
var body: some View {
IconView()
.generateIcons(for: .iOS, name: "MyIcon")
}
}

struct IconView: View {
var body: some View {
GeometryReader { geometry in
ZStack {
Color.blue
Circle()
.fill(Color.red)
.frame(
width: geometry.size.width / 2,
height: geometry.size.height / 2
)
}
}
}
}
```

## License

App Icon Generator is available under the MIT license. See the [LICENSE](./LICENSE.md) file for more info.