A way to build TUI apps with a layout system and API that's similar to SwiftUI.

Overview

terminal-ui

A way to build TUI apps with a layout system and API that's similar to SwiftUI.

We reimplemented parts of the SwiftUI layout system in the Swift Talk series SwiftUI Layout Explained. This tries to stay as close to that as possible.

A specific goal is to keep the layout behavior as close to SwiftUI as possible. So most SwiftUI programs should "just work" here as well.

Implementation Status

  • Views (in random order)
    • Alignment
    • GeometryReader
    • Border
    • Color (so far we only support 16 colors)
    • FixedFrame
    • FlexibleFrame
    • HStack
    • Overlay
    • Background
    • ZStack
    • Text
    • Padding (In progress)
      • Add tests
    • VStack
    • Progress
    • ScrollView
    • List
    • Button
    • Switch
    • Custom Alignment Guides
    • Layout Priorities
    • More ideas (lower priority)
      • Tree View (similar to outlines)
      • Menus
      • Navigation? (Not sure if this is a good idea, but could be fun to try)
  • State/Lifecycle/Interactivity
    • Custom View structures (I think we can build this on top of BuiltinView)
    • Environment (should be easy)
    • Preferences
    • State/Binding/ObservedObject
    • Focus (we should have some way for a control to be in focus, and )
    • Interaction (nothing is interactive yet)
    • Animations
    • ...

Similar Projects:

Inspiration:

You might also like...
iOS command-line tool that allows searching and downloading ipa files from the iOS App Store

ipatool for iOS This is a port of Majd Alfhaily's ipatool adapted to run on iOS Build / Installation To build this, make sure you have AppSync install

The best command-line tool to install and switch between multiple versions of Xcode.
The best command-line tool to install and switch between multiple versions of Xcode.

The best command-line tool to install and switch between multiple versions of Xcode.

A powerful command line tool for performing stoichiometry calculations on checmicals and chemical equations.

Stoichiometry Stoichiometry is a powerful command line tool for preforming stoichiometry chemicals and chemical equations. Its subcommands are listed

A command line tool to easily install and browse Xcode templates

🥾 XTrail A command line tool to easily install and browse Xcode templates. Usage The general invocation syntax for xtrail is as follows: xtrail subc

A library and CLI Utility to manage NVRAM Stuff, written in Swift.

NVRAMKit A Library and CLI Utility to manage NVRAM Stuff, written in Swift. Library Adding Library to Project Simply add this line to the dependencies

A command line tool to parse pricing from a pdf and generate an updated csv file for House Call Pro

A command line tool to parse pricing from a pdf and generate an updated csv file for House Call Pro

A command line profiling tool with stopwatch, cpu and memory usage
A command line profiling tool with stopwatch, cpu and memory usage

timeui A command line profiling tool with stopwatch, cpu and memory usage. Usage ./timeui path/to/app-to-profile runs the stopwatch and signpost regio

📋A hand-curated collection of useful and informative Swift Scripting materials.
📋A hand-curated collection of useful and informative Swift Scripting materials.

Articles • Videos Articles Creating iOS Application Icons with SwiftUI by Eneko Alonso An interesting way to use SwiftUI with CLI for icon generation.

RsyncOSX and RsyncUI are GUI´s on the Apple macOS plattform for the command line tool rsync
RsyncOSX and RsyncUI are GUI´s on the Apple macOS plattform for the command line tool rsync

Hi there 👋 RsyncOSX and RsyncUI are GUI´s on the Apple macOS plattform for the command line tool rsync. It is rsync which executes the synchronize ta

Comments
  • Target platforms

    Target platforms

    Hello! This project looks like a lot of fun. :)

    I tried to check out and build this project but get the following error:

    : error: 'some' return types are only available in macOS 10.15.0 or newer

    The fix for me the solution was to add the following after the name property in Package.swift

    platforms: [
        .macOS("10.15"),
    ],
    

    Let me know if you'd like a PR for that, though I'm also curious how you're set up such that you don't get this error?

    Thanks in advance.

    opened by brindy 3
Owner
Chris Eidhof
Chris Eidhof
ipatool is a command line tool that allows you to search for iOS apps on the App Store and download a copy of the app package, known as an ipa file.

ipatool is a command line tool that allows you to search for iOS apps on the App Store and download a copy of the app package, known as an ipa file.

Majd Alfhaily 3k Dec 30, 2022
A Tuist Template to quickly create CLI apps in Swift

macOS CLI Template Motivation I'm writing more and more Swift CLI apps these days. And as I solve more problems with this litte tools, I find that I'm

Diego Freniche 21 Dec 28, 2022
CLI tool for macOS that transcribes speech from the microphone using Apple’s speech recognition API, SFSpeechRecognizer. (help.)

CLI tool for macOS that uses SFSpeechRecognizer to transcribe speech from the microphone. The recognition result will be written to the standard output as JSON string.

Thai Pangsakulyanont 23 Sep 20, 2022
A command line application to create 3D models based on photogrametry using the macOS Monterey RealityCapture API.

PhotogrametryTool Generate 3D objects from images using RealityKit Object Capture. This project is a fork of the HelloPhotogrametry application by App

Alexander Hörl 4 Sep 29, 2022
A list of Mac devices with easy-to-use API. Updates itself each time an Apple Event can take place.

MacModels A list of Mac devices with easy-to-use API. This project is using MacModelDump's code for the internal Apple Support website scraper, to pow

Mock Fondation 3 Sep 2, 2022
Command line utility to create a list of installed iOS simulators, for use with SwiftUI previews.

Installed-simulators - Command line utility to create a list of installed iOS simulators, for use with SwiftUI previews.

Casey Liss 18 Aug 19, 2022
This app is a sample app that recognizes specific voice commands such as "make it red", "make it blue", "make it green", and "make it black" and change the background color of the view in the frame.

VoiceOperationSample This app is a sample app that recognizes specific voice commands such as "make it red", "make it blue", "make it green", and "mak

Takuya Aso 3 Dec 3, 2021
Util for executing shell commands, and getting the results easily(data, string, and any decodable).

ShellExecutor Util for executing shell commands, and getting the results easily(data, string, and any decodable). Requirements Xcode 14.0+ Swift 5.7+

Yozone Wang 2 Jul 30, 2022
Guaka - Smart and beautiful POSIX compliant CLI framework for Swift.

Guaka - Smart and beautiful POSIX compliant CLI framework for Swift. It helps you create modern and familiar CLI apps in the vein of widely used proje

Omar Abdelhafith 1.1k Dec 24, 2022
Overlook - A commandline app that will watch your folder and monitor any changes

A commandline app that will watch your folder and monitor any changes. When a change occurs, Overlook will execute (or restart) a command you specify. Overlook is platform independent and will work with anything from writing a README file, to developing a service.

Wess Cope 150 Aug 9, 2022