A way to build TUI apps with a layout system and API that’s similar to SwiftUI.
This was just a proof of concept. SwiftTUI looks a lot more complete and supported.
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 )
terminal-ui
A way to build TUI apps with a layout system and API that’s similar to SwiftUI.
This was just a proof of concept. SwiftTUI looks a lot more complete and supported.
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
View
structures (I think we can build this on top ofBuiltinView
)Similar Projects:
Inspiration: