A simple GUI for starting/stopping our various local development environments

Overview

EnvironmentLauncher

A simple GUI for starting/stopping SchoolMint's various local development environments Screen Shot 2022-05-24 at 3 42 43 PM

Before you begin, some notes

This is a WIP and you might encounter some bugs. If so, please leave a thread here on the GitHub repo or message me directly on slack at @Francis Scheuermann

  • This app will only work if your 3 environments are already set up, prior to use (NextGen, Smartchoice, Schoolmint Legacy).

Known Bugs

  • Sometimes (even after supposedly fixing it) the CPU utlization will be high, but I'm looking into this. After starting OR stopping an environment, it will spike for a minute or so as it's doing tasks in the background, but SHOULD settle back to around 0% once it's done. Sometimes it doesn't settle, for a currently unknown reason.

Setup / Installation

Since Apple is annoying about signing apps, I reccomend you clone the repo yourself and open the project in Xcode to build, compile, and export it yourself for personal use. Below are the instructions for doing so:

1. Cloning the repo

This one is pretty self explanatory. I suggest using GitKraken or some other Git tool to clone the repo. It doesn't make a difference where, just make a note of where.

2. Opening the project

Here, you want to have Xcode installed to be able to open the project. This app is built with Swift 5.6 and SwiftUI and was built for MacOS 12.3 and above. You can get Xcode from the Mac App Store, it's a big app, so it might take some time.

Once you have Xcode installed, open it, and you should be greeted with a screen to either create, clone, or open a project. Select 'Open a project or file' and open the EnvironmentLauncher folder you cloned earlier.

3. Building and testing

Now that the project is open you have access to all the files. I suggest testing the project here first before exporting it to a '.app'. The app NEEDS to be built here but testing is optional, but reccomended. It is built automatically upon running!

  • Clean the build folder with Shift + Command + K OR by selecting 'Clean Build Folder' in the taskbar in Product > Clean Build Folder

    • This is NOT necessary but can help if the project is failing to build
  • Run the app with Command + R OR by selecting 'Run' in the taskbar in Product > Run OR by just pressing the Run button (looks like a play button)

    • First build might take a few seconds
  • The app should (hopefully) be running now. Point the text fields to the location of your repos and press enter once you've filled it in, just to make sure the app saves the new location

  • Now, press 'Start ' for the environment you want to run. You can monitor the output while testing in the bottom right output section.

  • If it works, great! You can continue to the next section to export the project to a '.app'

    • If it didn't work.. sorry I'm new to Mac App development. Skip to the Common Problems / Solutions section.

4. Exporting the app

If you made it here, awesome. That means its working.

  • To export the app for usage outside of Xcode, simply drag the app from the 'products' folder to desired location.

Screen Shot 2022-05-24 at 3 17 59 PM

Enjoy using the app!

5. Common Problems & Solutions

In this section, you'll find some common problems I found when trying to get the app to work. Check here for possible solutions. If none of these fix your problem, reach out to me via Slack at @Francis Scheuermann

  • Make sure to use FULL path to the repo folders. For example, my environment repos are in my user directory inside of a folder called GitHub so my paths are /Users/francisscheuermann/GitHub/, the ~/ shortcut does not work.

  • This app currently assumes the yarn and docker directories are in /usr/local/bin because this is the default location for these, if for whatever reason it's different, you can edit the environment variable in the code to point to the correct location as shown here:

Screen Shot 2022-05-24 at 3 21 45 PM

  • This line needs to be changed in 3 different places, each of the 3 functions has it! (Currently, lines 46, 94, and 139)
You might also like...
🏞 A simple iOS photo and video browser with optional grid view, captions and selections written in Swift5.0
🏞 A simple iOS photo and video browser with optional grid view, captions and selections written in Swift5.0

Introduction 🏞 MediaBrowser can display one or more images or videos by providing either UIImage objects, PHAsset objects, or URLs to library assets,

Simple parallax header for UIScrollView
Simple parallax header for UIScrollView

MXParallaxHeader ⚠️ This project is no longer maintained, see #124 ⚠️ MXParallaxHeader is a simple header class for UIScrollView. In addition, MXScrol

Simple selection dialog
Simple selection dialog

SelectionDialog Simple selection dialog inspired from ios-custom-alertview Preview Requirements iOS 8.0+ Swift 3 Xcode 8.0 Installation CocoaPods use_

Simple PhotoBrowser/Viewer inspired by facebook, twitter photo browsers written by swift
Simple PhotoBrowser/Viewer inspired by facebook, twitter photo browsers written by swift

SKPhotoBrowser Simple PhotoBrowser/Viewer inspired by facebook, twitter photo browsers written by swift features Display one or more images by providi

Simple and highly customizable iOS tag list view, in Swift.
Simple and highly customizable iOS tag list view, in Swift.

TagListView Simple and highly customizable iOS tag list view, in Swift. Supports Storyboard, Auto Layout, and @IBDesignable. Usage The most convenient

🍞 Toast for Swift - Toaster Android-like toast with very simple interface
🍞 Toast for Swift - Toaster Android-like toast with very simple interface

Toaster Android-like toast with very simple interface. (formerly JLToast) Screenshots Features Queueing: Centralized toast center manages the toast qu

Stencil is a simple and powerful template language for Swift.

Stencil Stencil is a simple and powerful template language for Swift. It provides a syntax similar to Django and Mustache. If you're familiar with the

Peanut is an orginizational application focusing on user customization whithin a simple interface.
Peanut is an orginizational application focusing on user customization whithin a simple interface.

Peanut Peanut is an organizational application focusing on user customization within a simple interface. Table of Contents User Features Architecture

A Simple Camera App With Programmatic UI
A Simple Camera App With Programmatic UI

CameraApp-ProgrammaticUI Hey there! This is a simple Camera Application that I and Sahab Alharbi worked on as part of Tuwaiq's iOS bootcamp projects.

Comments
  • Add console output

    Add console output

    • Fixed $PATH environment variable when running outside of Xcode
    • Fixed yarn start command not working for reason above
    • Added text window at bottom of screen that displays terminal output
    • Fixed background CPU utilization (utilization should be 0% before and after running commands now!)
    opened by ScheuermannF 0
Owner
Francis Scheuermann
Technical Service Engineer at SchoolMint
Francis Scheuermann
macOS GUI Library for the Nim Programming Language

NimCocoa NimCocoa is an experimental implementation of a Native GUI for the Nim programming language running on macOS. Rather than rely on low level c

null 32 Dec 8, 2022
Various usages of the Macaw library

Macaw-Examples Macaw Examples is a place where you can find various usages of the Macaw library. We are a development agency building phenomenal apps.

Exyte 347 Dec 29, 2022
Dump local MacOS user hashes to a hashcat-compatible string.

mimic Dumps local MacOS user hashes to a hashcat-compatible string. Simply uses Objective-C instead of dscl/defaults read or other noisy binaries, to

null 0 Dec 29, 2021
Declarative, configurable & highly reusable UI development as making Lego bricks.

LeeGo is a lightweight Swift framework that helps you decouple & modularise your UI component into small pieces of LEGO style's bricks, to make UI dev

WANG Shengjia 969 Dec 29, 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
A set of frameworks making iOS development more fun

A set of frameworks making iOS development more fun, developed by N8ive Apps Frameworks InterfaceKit AuthKit CoreKit (in progress) NetworkKit (in prog

N8ive apps 18 Oct 12, 2018
Creating a simple selectable tag view in SwiftUI is quite a challenge. here is a simple & elegant example of it.

SwiftUI TagView Creating a simple selectable tag view in SwiftUI is quite a challenge. here is a simple & elegant example of it. Usage: Just copy the

Ahmadreza 16 Dec 28, 2022
Simple battery shaped UIView

BatteryView Simple battery shaped UIView. Usage let batteryView = BatteryView(frame: smallRect) batteryView.level = 42 // anywhere in 0...100 batteryV

Yonat Sharon 50 Sep 19, 2022
A simple, customizable view for efficiently collecting country information in iOS apps.

CountryPickerView CountryPickerView is a simple, customizable view for selecting countries in iOS apps. You can clone/download the repository and run

Kizito Nwose 459 Dec 27, 2022
Swift based simple information view with pointed arrow.

InfoView View to show small text information blocks with arrow pointed to another view.In most cases it will be a button that was pressed. Example To

Anatoliy Voropay 60 Feb 4, 2022