Skip to content

Latest commit

 

History

History
132 lines (112 loc) · 4.7 KB

README.md

File metadata and controls

132 lines (112 loc) · 4.7 KB

ViewToAppIconSet

ViewToAppIconSet a Swift Library to generate an Xcode AppIcon.appiconset from a SwiftUI view.

Supported Platforms

macos macos macos macos macos

Getting Started

This is how you get started using ViewToAppIconSet in your project.

Installation

ViewToAppIconSet is distributed using the Swift Package Manager. Install it in a project by adding it as a dependency in your Package.swift manifest or through "Package Dependencies" in project settings.

git@github.com:StefKors/ViewToAppIconSet.git
let package = Package(
    dependencies: [
        .package(url: "git@github.com:StefKors/ViewToAppIconSet.git", from: "0.1.0")
    ]
)

If you find this package useful, please star the repo ⭐️

Usage

Create a view with your App Icon and use SwiftUI Previews to design.

import ViewToAppIconSet
import SwiftUI

struct AppIcon: View {
    @IconRelativeMetric var padding = 10 /// 10% padding
    let color: Color
    var body: some View {
        ContainerRelativeShape()
            .fill(Color.accentColor)
            .overlay(content: {
                Image(systemName: "circle.hexagongrid.fill")
                    .resizable()
                    .scaledToFit()
                    .padding(padding)
            })
    }
}

struct AppIcon_Previews: PreviewProvider {
    static var previews: some View {
        AppIcon()
            .iconStyle(.macOS)
            .frame(width: 100, height: 100, alignment: .center)
            .scenePadding()
    }
}

Call generateAppIconSet to generate the AppIconSet images

import ViewToAppIconSet

let path = try generateAppIconSet(from: AppIcon())

The output has the following structure:

AppIcon.appiconset
    ├── Contents.json
    ├── appstore1024.png
    ├── ipad152.png
    ├── ipad76.png
    ├── ipadNotification20.png
    ├── ipadNotification40.png
    ├── ipadPro167.png
    ├── ipadSettings29.png
    ├── ipadSettings58.png
    ├── ipadSpotlight40.png
    ├── ipadSpotlight80.png
    ├── iphone120.png
    ├── iphone180.png
    ├── mac1024.png
    ├── mac128.png
    ├── mac16.png
    ├── mac256.png
    ├── mac32.png
    ├── mac512.png
    ├── mac64.png
    ├── notification40.png
    ├── notification60.png
    ├── settings58.png
    ├── settings87.png
    ├── spotlight120.png
    └── spotlight80.png

Built by Stef Kors