Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/aparokshaui/meta

The backend for declarative UI frameworks enabling the definition of UIs for multiple platforms in one executable target
https://github.com/aparokshaui/meta

declarative linux macos swift swiftui ui windows

Last synced: 3 months ago
JSON representation

The backend for declarative UI frameworks enabling the definition of UIs for multiple platforms in one executable target

Awesome Lists containing this project

README

        


Meta



Documentation

·

GitHub

_Meta_ is a framework allowing the creation of user interface (UI) frameworks in Swift.

## Table of Contents

- [Overview](#overview)
- [Usage](#usage)
- [Thanks](#thanks)

## Overview

_Meta_ follows the following principles:

- It is a **declarative** framework, meaning that instead of writing _how_ to construct a user interface, you write _what_ it looks like.
- The user interface is treated as a function of its **state**. Instead of directly modifying the UI, modify its state to update views.
- Multiple UI frameworks can be used in the same code, but the **selection of the framework** happens when executing the app. This enables the creation of cross-platform UI frameworks combining several UI frameworks which render always with the same backend.

It knows the following layers of UI:

- An app is the entry point of the executable, containing the windows.
- A scene element is a template for a container holding one or multiple views (e.g., a window).
- A view is a part of the actual UI inside a window, or another view.

Detailed information can be found in the [docs](https://aparokshaui.github.io/Meta/).

## Usage

_Meta_ can be used for creating UI frameworks in Swift which can then be used to create apps.

Follow those steps if you want to create a UI framework.

1. Open your Swift package in GNOME Builder, Xcode, or any other IDE.
2. Open the `Package.swift` file.
3. Into the `Package` initializer, under `dependencies`, paste:
```swift
.package(url: "https://github.com/AparokshaUI/Meta", from: "0.1.0")
```

## Thanks

- [DocC](https://github.com/apple/swift-docc) used for the documentation
- [SwiftLint](https://github.com/realm/SwiftLint) for checking whether code style conventions are violated
- The programming language [Swift](https://github.com/swiftlang/swift)