Coder Social home page Coder Social logo

open-jellycuts's Introduction

Open Jellycuts

Promotional Jellycuts Image

Jellycuts is an iOS app that allows anyone to write Siri Shortcuts in an easy to use scripting language. The language, Jelly, is based of of Swift, Python and Javascript and focused on being easy to learn and use.

Packages

This version of Jellycuts aims to use more modern Open Source packages for everything, improving upon the previous version of Jellycuts. Specifically this version includes Runestone and Tree-Sitter as the backend for the text editor and language parsing.

  • Open Jellycore
    • This package handels the actual compilation of Jellycuts into Shortcuts
  • Tree-Sitter Jelly Grammar
    • This package is a SPM distribution of a Tree-Sitter grammar for the Jelly language. This handles all of the parsing of Jelly done by both Jellycore and Runestone.

Features (Compared to closed Jellycuts)

Feature Open Jellycuts Private Jellycuts
Open Jelly Files
Edit Jelly Files
Create Jelly Files
Compile Jell Files
Error Reporting
Project Settings
Documentation
Icon Creator
Dictionary Builder ✅ (No support for nested arrays)
Jellycuts Bridge
Third-Party Object Storage ❌ (Needs support in Jellycore)
Learning Center
Changelogs
Editor Customization
App Icons
App Tint
Haptic Feedback
External Safari
Project Sort
Privacy Page
Credits Page
About Page
Contact & Bug Report
Version 1 Projects
Version 2 Projects
Add Jellycut File
Import From iCloud ❌ (New Helper & Core Support)
Import from Shortcuts ❌ (New Helper & Core Support)

Current Limitations

The following sections talk about all of the limitations that are currently holding back the Jellycuts app from having feature parity with the closed source Jellycuts version.

No support for nested arrays

The dictionaries that are created by Open Jellycuts need to be reworked so they support adding Arrays within Arrays. The datatype DictionaryHandler.JellycutsDictionary should be fully capable of supporting this however the UI fails when adding arrays as children of arrays.

New Helper & Core Support

These two features, Import from iCloud and Import from Shortcuts, need a new Jellycuts Helper shortcut to be built. They also require a shortcuts parser -> Jelly language. This is a feature that should be added into Open Jellycore and then interfaced within Open Jellycuts.

Needs support in Jellycore

Features with this flag need support to be built into Open Jellycore. The most prominent issue is that the current Open Jellycore does not support Objects. This means that any features that used objects are no longer available as there is no way to use them during compilation.

Building the App Yourself

See the Contribution Guidelines for more information on building the app.

The Gist

Cloning

To clone the repository it is critical that you use the --recursive flag. This will ensure you properly clone all of the submodules.

git clone --recursive https://github.com/ActuallyTaylor/Open-Jellycuts.git

Adding a Key Provider

After you have cloned the repository and set up signing, you will see a build error. This error is caused by the PurchaseHandler not having a provided publicKey. This code is initially commented out because the file is a secondary file to an internal file that provides the App Store validation with a public key for verifying results from the server.

All you need to do is uncomment the following line in Open-PublicKey.swift:

extension PurchaseHandler: PublicKeyProvider {
    static var publicKey: String {
        "INSERT_PUBLIC_SIGNING_KEY"
    }
}

open-jellycuts's People

Contributors

actuallytaylor avatar chrisjmendez avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.