An iOS and macOS app for controlling Klipper-based 3d Printers using Moonraker

Overview

Plastic

An iOS and macOS app for controlling Klipper-based 3d Printers using Moonraker

GIT ALERT

The contents of the repository was recently squashed to comply with the new community guidelines. You should commit any changes you've made to an orphaned branch, fetch, delete your local main branch, and repull main at this time. Alternatively you can delete and reclone the repository.

This project is IN DEVELOPMENT

While the goal is to keep the main branch buildable at all times, this project is NOT done. Feel free to install it but don't even expect every button to work.

Eventually, main will turn into release with a connected bugfix branch and a separate develop branch will exist for pull requests to be merged into. For now since the entire project is in development, main will do.

All the help in the world is wanted: from human interface work for the ui to graphic design for the app's assets to serious coding to make the app stand up to Apple's App Store review process. Learn how to contribute changes or create an issue to propose an idea.

Preface

With the onset of moonraker-based interfaces for Klipper, the use of Octoprint and Octoprint api-based apps is dying. This project aims to be the a way to monitor and make adjustments to prints on your printer while being more elegant than loading a web-based ui in Safari.

Features and updates has moved!

Track progress with the project and find ways to contribute by checking the project board over on GitHub Projects

Comments
  • Websockets aug31

    Websockets aug31

    This is gross code, but it works. Next up:

    A state that always, always, always shows whether there is a real connection alive Status bar using that Connection checking when setting up new printer Kill repetitive websocket tasks when printer is disconnected

    opened by charlespick 1
  • Quick refactors

    Quick refactors

    shrink preview data fix sheet not closing when deleting a printer changing to ios15 specific ui styles

    Signed-off-by: Charles Pickering [email protected]

    opened by charlespick 0
  • refactor: bump sdk version

    refactor: bump sdk version

    I wanted to get feedback on this idea. iOS15 is only 1 year old, but iOS update adoption is usually pretty strong, especially in techie communities which I would consider 3D printing to be.

    Right now the app is running on SDK iOS14 which causes plenty of little naggs everywhere due to the fact that swiftui was far less mature last year.

    I think that the cons (decreased user base targeting) are far outweighted by the advantages of having cleaner code that adopts Apple's latest swiftui views and modifiers.

    Signed-off-by: Charles Pickering [email protected]

    opened by charlespick 0
  • docs: Features.md

    docs: Features.md

    Outlines the initial intent for the app. This can very well change but lays out a goal for initial feature releases.

    Signed-off-by: Charles Pickering [email protected]

    opened by charlespick 0
  • docs: Features.md

    docs: Features.md

    Outlines the initial intent for the app. This can very well change but lays out a goal for initial feature releases.

    Signed-off-by: Charles Pickering [email protected]

    opened by charlespick 0
  • refactor: to use environment variable

    refactor: to use environment variable

    Using an environment variable reduces the amount of boilerplate bindings that are passed down to views constantly. Printer is also a class now and combines the printerconnection and printerconfig structs.

    opened by charlespick 0
  • Prototype UI dashboard

    Prototype UI dashboard

    The dashboard will serve as the "homescreen". Logic is in place including a stateobject to manage the connection to the printer, the active printer, and such. a TODO remains to solve the problem of updating the pointer in the array for the purposes of rendering the selected printer when an item is deleted and destroying the connection if the printer config that is deleted was the one selected.

    Signed-off-by: Charles Pickering [email protected]

    opened by charlespick 0
  • fix: team and package identifier remain consistent

    fix: team and package identifier remain consistent

    I'm now a developer program member and was able to delete the old identifiers that were blocking com.charlespick.plastic from being used. You may still need to change the package and definitely add your own team to compile for testing.

    Signed-off-by: Charles Pickering [email protected]

    opened by charlespick 0
  • Tabbed view and full printer editing

    Tabbed view and full printer editing

    Also includes some refactoring. WARNING, the selection is still being handled by a render state value in the struct while the selected printer is actually handled by an index. I plan to migrate this to using enumerated() in an array soon

    opened by charlespick 0
  • feat: selection persists between restarts of the app

    feat: selection persists between restarts of the app

    and printers are also selectable now. the selectedPrinterIndex always keeps track of the selected printer and is a pointer to only 1 printer in the array of configured printers. next up: a printer struct will live in the app's kernel to hold the printer's data and coordinate connections. when the selected printer changes, this object will be destroyed and recreated

    Signed-off-by: Charles Pickering [email protected]

    opened by charlespick 0
  • feat: persistent storage and selection behavior

    feat: persistent storage and selection behavior

    persistent storage has been added to keep printer configuration between relaunches.

    the tracking of which printer is selected has been moved to the printer config struct which will persist the last selected printer through relaunches. Child views of PlasticApp will send commands to a single printer object at the root level that will manage delivery to the correct printer. the root level will also manage the selection of printers, keeping track of a direct reference for itself as well as killing existing connection and forming new ones when needed, and updating the renderSelected boolean value stored within the struct.

    Signed-off-by: Charles Pickering [email protected]

    opened by charlespick 0
Owner
null
Grid-based app for macOS Catalyst (Mac Idiom) with navigation stack

Catalyst Grid App Simple Catalyst example (Mac idiom) of a grid-based app with a push/pop navigation stack. Includes back button in toolbar that auto-

Steven Troughton-Smith 120 Nov 14, 2022
In this mini app covered the concepts like basics of SwiftUI and Navigations and Animations and List with CRUD functions and MVVM and App Launch and App icons adding and also applied persistence using UserDefaults Concept.

TodoList In this application used the concepts from the beginner level project of SwiftUI_Evolve_1 The following concepts covered in this mini app Swi

Sivaram Yadav 2 Dec 4, 2021
iOS app that detects LaTeX symbols from drawings. Built using PencilKit, SwiftUI, Combine and CoreML for iOS 14 and macOS 11.

DeTeXt Finding the symbol you want to use in LaTeX can be hard since you can't memorize all the possible commands and packages for every symbol you mi

Venkat 73 Dec 8, 2022
Stock is a MacOS menu bar app that helps you quickly save a web link, a file link, or a text by using drag and drop

Stock is a MacOS menu bar app that helps you quickly save a web link, a file link, or a text by using drag and drop

シュンジョーァ 19 Dec 4, 2022
macOS application written in SwiftUI that downloads installer pkgs for the Install macOS Big Sur application.

Download Full Installer This is a Swift UI implementation of my fetch-installer-pkg script. It will list the full macOS Big Sur (and later) installer

Armin Briegel 654 Dec 31, 2022
"Podman for macOS" is a macOS frontend for Podman.

Podman for macOS "Podman for macOS" is a macOS frontend for Podman. It can be used to start and stop both the Podman Machine and its running container

Victor Gama 573 Jan 5, 2023
A small SwiftUI based chat client for IRC, using swift-nio-irc

NeoIRC A simple Internet Relay Chat client implemented using SwiftNIO and SwiftUI. Inspired by: For maximum NIO someone (I’m tempted) should adopt NIO

The Noze Consortium 18 Jun 22, 2022
Window preview app for MacOS (on the dock) using AltTab.

DockAltTab The #1 Window manager/Task switcher & Companion for AltTab v1.1 download link https://github.com/steventheworker/DockAltTab/releases/downlo

Steven G. 40 Jan 2, 2023
VTuber Cam, macOS app that displays an avatar using a virtual camera.

日本語 VCam macOS app that displays an avatar using a virtual camera. You can display a virtual avatar on Zoom or Google Meet, or etc. This is useful for

VCam 59 Jan 2, 2023
Version of PopcornTime app for iOS based on libtorrent and MobileVLCKit.

PopcornTime for iOS Version of PopcornTime app for iOS based on libtorrent and MobileVLCKit. There is still a lot of work to do, but in most cases it

Danylo Kostyshyn 193 Nov 28, 2022
The app provides additional actions for the Shortcuts app on macOS and iOS.

Actions Supercharge your shortcuts The app provides additional actions for the Shortcuts app on macOS and iOS. Submit action idea (Submit an issue bef

Sindre Sorhus 1.2k Dec 29, 2022
A Full News App based on the latest SwiftUI 3/iOS 15 API that fetches latest news from newsapi.org

SwiftUI NewsAPI App A Full News App based on the latest SwiftUI 3/iOS 15 that fetches latest news from newsapi.org. Features The app has several main

Alfian Losari 139 Jan 2, 2023
WindowKit-based 'Files' app for iOS

'Files' In the months leading up to iOS 11, I was working on a file browser for iOS called 'Files'. It featured a resizable multi-window UI with snapp

Steven Troughton-Smith 18 Jun 23, 2022
Giphy is an open source iOS app based on MVVM (Model–view–viewmodel) software architectural pattern.

Giphy(Search and display gifs) - MVVM Description Giphy is an open source iOS app based on MVVM (Model–view–viewmodel) software architectural pattern.

Tirupati Balan 8 Jun 14, 2022
Mahmoud-Abdelwahab 5 Nov 23, 2022
Github repo search with using mvvm-c and clean architecture and using combine swift

GitSearchWithMVVM-C-CleanArchitecture Github repo search with using mvvm-c and clean architecture and using combine swift. Content Overview How To Run

Muhammad Qasim Majeed 1 Mar 16, 2022
A weather app based on OpenWeatherAPI

WeatherApp A weather app based on OpenWeatherAPI To make it work for yourself, register on OpenWeather, and get yourself your own API key. After that,

null 0 Apr 9, 2022
Weather forecast app that allows the user to either look for weather at their current location based on the GPS data or search for another city manually.

⛅️ Cloudy Weather forecast app that allows the user to either look for weather at their current location based on the GPS data or search for another c

Burhan 0 Nov 7, 2021
App that is used by coffee drinkers to advise appropriate bedtime based on wake up preference

BetterRest App that is used by coffee drinkers to advise appropriate bedtime bas

Bogdan Alex Ciobanu 1 Feb 10, 2022