👨‍💼Reduce daily routine with sasha

Overview

sasha Swift 4.2 Make Swift Package Manager Marathon

Sasha is an easy-to-use CLI app for routine designer tasks.

FeaturesUsingInstallingAuthorLicense

Features

  • Icon slicing for different platforms:
    • iOS
    • watchOS including 40 and 44 mm versions
    • watchOS Complications
    • macOS
    • Carplay
    • Android
    • Android Wear
  • Project folder tree generation

Using

Icons

Sasha has two main commands - icons and project.

$ sasha icons --platform iOS --name icon.png

Sasha generates icons in needed resolutions as well. For Apple platforms Sasha generates AppIcon.appiconset, which iOS developer can drag and drop right into Images.xcassets without manual icon sorting 👨🏻‍💻 👍 .

There is a service for Sasha. Right click on an original icon, select Services > Sasha, make me iOS icons.

Project generation

$ sasha project --name ProjectName

Sasha generates folder tree with name passed via --name option. By default Sasha uses this project structure:

iOS
-UI
--old
--png
-UX
--old
--png
Android
-UI
--old
--png
-UX
--old
--png
references
-main_screens
-menu
-cards
-another_case
stuff
-logos
-icons
-patterns
-stocks
-source

To change it, open ~/.sasha/project.sasha file in your favourite text editor and make custom project structure.

Installing

Homebrew (recommended):

$ brew install artemnovichkov/projects/sasha

Make:

$ git clone https://github.com/artemnovichkov/sasha.git
$ cd sasha
$ make

Swift Package Manager:

$ git clone https://github.com/artemnovichkov/sasha.git
$ cd sasha
$ make build
$ cp -f .build/release/sasha /usr/local/bin/sasha
$ cp -r .sasha ~

Marathon:

  • Install Marathon.
  • Add Files using $ marathon add https://github.com/artemnovichkov/sasha.git.
  • Run your script using $ marathon run <path-to-your-script>.

Author

Artem Novichkov, [email protected]

Get help on Codementor

License

Sasha is available under the MIT license. See the LICENSE file for more info.

Comments
  • Use Sketch template names for watchOS icons

    Use Sketch template names for watchOS icons

    Closes #13.

    Hi @artemnovichkov, I’ve updated the Apple Watch icon names. Now Sasha generates the following icons:

    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    

    Most of these icons now match the filenames mentioned in #13:

    Sketch template icon names

    though there are a few icons that Sasha generates, but the image in #13 doesn’t show:

    [email protected]
    [email protected]
    

    and there’s a few icons that the image in #13 shows, but Sasha still doesn’t generate:

    [email protected]
    [email protected]
    

    How should I resolve these discrepancies? It looks like [email protected] and [email protected] are both for the new 44 mm watch, so the Sketch template might just be out of date.

    What about [email protected] and [email protected]? What role and subtype should those be set as in IconFactory.swift?

    opened by u2606 4
  • Fixes #9: Add different sizes for different platforms

    Fixes #9: Add different sizes for different platforms

    These changes calculate the maximum pixel size for each platform and use that to determine the Keys.defaultSize property. So far the only difference is that if the user wants to use a smaller image to generate say a set of complication images, he can. It would be nice to also add a query where the user could check the max sizes per platform without having to necessarily generate images.

    opened by imvm 2
  • Automator Service for sasha

    Automator Service for sasha

    Designers afraid of terminals so for convenience I'm going to write Automator Service for main sasha actions:

    • Create a new project: right-click action in any folder, select New project and enter a name (or use default if it's not possible)
    • Icon creation: right-click action on any .jpg file and select Create icon
    opened by artemnovichkov 1
  • Improve error message for images with wrong size

    Improve error message for images with wrong size

    While I was testing my changes for the watchOS icon PR, I noticed the error message isn’t very helpful when you try to use a source icon of the wrong size. This PR adds the actual and expected image sizes to the error message.

    Before:

    Image has wrong size.
    

    After (for example):

    Image has wrong size (actual 512x512, expected 1024x1024).
    
    opened by u2606 0
  • Add check of alpha channel for app icons

    Add check of alpha channel for app icons

    I have an error during upload to AppStore Connect:

    [iTMSTransporter] ERROR ITMS-90396: "Invalid Icon. The watch application 'Waterbalance.app/Watch/WatchKit.app' contains an icon file 'Icon [email protected]' with an alpha channel. Icons should not have an alpha channel."

    I want to add check of alpha channel.

    enhancement hacktoberfest 
    opened by artemnovichkov 0
  • Add support of WatchOS icons

    Add support of WatchOS icons

    sasha's public API provides only iOS and Android platforms. But Watch apps use separate Assets.xcassets. I want to add an option for selecting WatchOS platform via --platform flag. Here is Context.json from AppIcon:

    {
      "images" : [
        {
          "size" : "24x24",
          "idiom" : "watch",
          "scale" : "2x",
          "role" : "notificationCenter",
          "subtype" : "38mm"
        },
        {
          "size" : "27.5x27.5",
          "idiom" : "watch",
          "scale" : "2x",
          "role" : "notificationCenter",
          "subtype" : "42mm"
        },
        {
          "size" : "29x29",
          "idiom" : "watch",
          "role" : "companionSettings",
          "scale" : "2x"
        },
        {
          "size" : "29x29",
          "idiom" : "watch",
          "role" : "companionSettings",
          "scale" : "3x"
        },
        {
          "size" : "40x40",
          "idiom" : "watch",
          "scale" : "2x",
          "role" : "appLauncher",
          "subtype" : "38mm"
        },
        {
          "size" : "44x44",
          "idiom" : "watch",
          "scale" : "2x",
          "role" : "longLook",
          "subtype" : "42mm"
        },
        {
          "size" : "86x86",
          "idiom" : "watch",
          "scale" : "2x",
          "role" : "quickLook",
          "subtype" : "38mm"
        },
        {
          "size" : "98x98",
          "idiom" : "watch",
          "scale" : "2x",
          "role" : "quickLook",
          "subtype" : "42mm"
        },
        {
          "idiom" : "watch-marketing",
          "size" : "1024x1024",
          "scale" : "1x"
        }
      ],
      "info" : {
        "version" : 1,
        "author" : "xcode"
      }
    }
    
    enhancement hacktoberfest 
    opened by artemnovichkov 0
  • Different sizes for different platform

    Different sizes for different platform

    Sasha supports only 1024x1024 original image. But some platforms require small sizes. For example, max size for watchOS complication icons is 203x203. It would be great to check max size for selected platform.

    hacktoberfest 
    opened by artemnovichkov 0
  • Remove hardcoded paths for .sketch files

    Remove hardcoded paths for .sketch files

    project command creates a folder structure and copies .sketch files. Paths for the files are hardcoded: https://github.com/artemnovichkov/sasha/blob/e58db8f8d14c65dfbc466cf34810328df4680743/Sources/SashaCore/Tasks/ProjectTask.swift#L52-L62 I want to update project.sasha configuration file format and add possibility to add these paths, for example:

    Main
    -folder
    --{ sketch_ios.sketch }
    

    Also, I want to improve parsing of configuration files: https://github.com/artemnovichkov/sasha/blob/e58db8f8d14c65dfbc466cf34810328df4680743/Sources/SashaCore/Services/FolderService.swift#L36-L68

    enhancement hacktoberfest 
    opened by artemnovichkov 5
  • sandbox_apply_container: Operation not permitted

    sandbox_apply_container: Operation not permitted

    Hi @artemnovichkov, I was trying to install your CLIs on a Mac running macOS High Sierra but was unable to. I believe the sandbox is not required when building on macOS High Sierra, see similar issue here. This issue affects Carting, FastFood and Sasha. See output below.

    Updating Homebrew...
    ==> Installing fastfood from artemnovichkov/projects
    ==> Downloading https://github.com/artemnovichkov/fastfood/archive/1.3.tar.gz
    ==> Downloading from https://codeload.github.com/artemnovichkov/fastfood/tar.gz/1.3
    ######################################################################## 100.0%
    ==> make install PREFIX=/usr/local/Cellar/fastfood/1.3
    Last 15 lines from /Users/hq/Library/Logs/Homebrew/fastfood/01.make:
    2017-10-15 23:48:56 +0200
    
    make
    install
    PREFIX=/usr/local/Cellar/fastfood/1.3
    
    swift build -c release -Xswiftc -static-stdlib
    error: manifest parse error(s):
    sandbox-exec: sandbox_apply_container: Operation not permitted
    make: *** [build] Error 1
    
    If reporting this issue please do so at (not Homebrew/brew or Homebrew/core):
    https://github.com/artemnovichkov/homebrew-projects/issues
    
    bug help wanted hacktoberfest 
    opened by stalinkay 11
Releases(2.4)
Owner
Artem Novichkov
Bearded iOS developer from Siberia 👨🏻‍💻
Artem Novichkov
🕳 A simple command line tool to punch hole to reduce disk usage on APFS volume for such as a raw disk image.

HolePunch NAME holepunch -- A simple command line tool to punch hole to reduce disk usage on APFS volume for such as a raw disk image. SYNOPSIS holepu

Yoshimasa Niwa 15 Nov 24, 2022
A static source code analysis tool to improve quality and reduce defects for C, C++ and Objective-C

OCLint - https://oclint.org OCLint is a static code analysis tool for improving quality and reducing defects by inspecting C, C++ and Objective-C code

The OCLint Static Code Analysis Tool 3.6k Dec 29, 2022
MovieAppSwiftUI - The Application is using TMDB API and Server API to reduce user searching movies resources time with search engine

MovieAppSwiftUI The Application is using TMDB API and Server API to reduce user searching movies resources time with search engine.This Application is

JackSon_tm.m 5 Oct 29, 2022
SwiftUI Todo app example using a React/Redux monolithic state store with flux like dispatch/reduce actions

SwiftUI-Todo-Redux SwiftUI Todo Redux app example using a React/Redux monolithic state store with flux like dispatch/reduce actions Background SwiftUI

moflo 12 Nov 29, 2022
NV_MVVM-C is a template file generator. This can reduce the time taken to write the boilerplate code and create the files.

NV_MVVM-C Template, is an MVVM-C Boilerplate generator which will help you generate all the necessary files for your project architected in MVVM-C.

Nikhil Vinod 9 Sep 6, 2022
Daily News is a news app with good looking user interface ! Apps architecture is MVVM and used RxSwift for binding.

Daily News Hey ! Daily News is a news app with good looking user interface ! Apps architecture is MVVM and used RxSwift for binding. Architecture I pr

Latif Atci 39 Dec 13, 2022
Are you sure the chemical compounds of your daily use are 100% safe? Use Chem-Aware, identify them right now!

View Project On Devpost: Built With: PubChem's REST API How To Install Chem Aware: Prerequiste: Latest Version of Xcode and Simulators installed The a

Jerry Zhang 5 Aug 23, 2022
🎸🎸🎸 Common categories for daily development. Such as UIKit, Foundation, QuartzCore, Accelerate, OpenCV and more.

?????? Common categories for daily development. Such as UIKit, Foundation, QuartzCore, Accelerate, OpenCV and more.

77。 423 Jan 4, 2023
News app to see daily news from new York Times

News This project is demo project for newyork time apis news feed. Generally thi

kamalesh 0 Dec 18, 2021
An open-source task management app for daily general operations

Taskaholic An open-source task management app for daily general operations, sepa

Aiden 1 Sep 19, 2022
SwiftUI iOS app for tracking daily hydration, logs to HealthKit!

HydrationCompanion SwiftUI iOS app for tracking daily hydration, logs to HealthKit! Screenshots: Home view: see all intake logs and progress Settings

Jesse Liu 7 Dec 31, 2022
Apple's SwiftUI Essentials Series. An iOS app that helps users manage their daily scrums.

Scrumdinger (Work in progress) Apple's SwiftUI Essentials Series An iOS app that helps users manage their daily scrums. To help keep scrums short and

Vinícius Moreira 1 Feb 14, 2022
WordleAverage - Adds an Average Guesses statistic to the viral daily word game Wordle

WordleAverage Adds an "Average Guesses" statistic to the viral daily word game W

null 0 Jan 26, 2022
A simple to use yet very powerful tool for the tech heads looking for daily dose of tech news

A simple to use yet very powerful tool for the tech heads looking for daily dose of tech news. This app is built using SwiftUI and also uses catalyst to run on MacOs as well.

Dishant Nagpal 1 Feb 27, 2022
Skredvarsel app - an iOS, iPadOS, and macOS application that provides daily avalanche warnings from the Norwegian Avalanche Warning Service API

Skredvarsel (Avalanche warning) app is an iOS, iPadOS, and macOS application that provides daily avalanche warnings from the Norwegian Avalanche Warning Service API

Jonas Follesø 8 Dec 15, 2022
☀️ SeSAC Daily Reporting

SeSAC ☀️ SeSAC Daily Reporting iOS 번들 아이디, Bundle Identifier IBOutlet Collection 연결 시 weak 수식어를 사용하지 않는 이유 Alpha vs Opacity Image Rendering Mode, Orig

Taehyeon Kim 24 Nov 1, 2022
iScheduleYourDay is a watchOS 8.5 app that can help order your daily tasks

Currently developing an App for watchOS 8.5 to help order your tasks daily. The app is a simple approach to the actual Apple App Remainders to become an improved version of it

Marta Granero I Martí 2 Aug 11, 2022