Skip to content
/ nimbus Public

Libraries for enabling Server Driven UI in Jetpack Compose and SwiftUI

License

Notifications You must be signed in to change notification settings

ZupIT/nimbus

Repository files navigation

Important: this project is currently on halt. The latest version is in Beta because it needs more testing. Use it at your own risk. Having said this, Nimbus is still probably the best open source library for implementing server driven ui with Jetpack Compose and SwiftUI. This project is not archived because there is a good chance it will get some investment later this year (2023). If you need to talk to the developers, please send an e-mail to tiago.franca@zup.com.br.

Nimbus

The Nimbus SDUI is:

  1. A solution for applications that need to have some of its user interface (UI) driven by the backend, i.e. Server Driven UI (SDUI).
  2. A protocol for serializing the content and behavior of a UI into JSON so it can be sent by a backend server and interpreted by the front-end.
  3. A set of libraries that implements this protocol.

An application that uses Nimbus will have:

  1. A backend that provides the JSON describing the UI.
  2. A frontend application that will interpret the JSON sent by the backend and show the UI.

Nimbus is currently available for iOS and Android and is built on top of SwiftUI and Jetpack Compose, respectively.

To know more about Nimbus SDUI, please check our documentation.

Nimbus Core

This repository contains the core code for all Nimbus frontend libraries. It's built using Kotlin Mobile Platform (KMM) and concentrates all the code common to both Nimbus Compose and Nimbus SwiftUI.

Development stage

Nimbus is currently in beta.

Useful links

  • Introductory article: blog post introducing Nimbus SDUI.
  • Documentation: the documentation for both the frontend and backend libraries. This is not in a website format yet, but you can read everything through GitHub.
  • Nimbus: the common code between Nimbus SwiftUI and Nimbus Compose. This has been built using Kotlin Multiplatform Mobile (KMM).
  • Nimbus Compose: all modules necessary to run Nimbus in a Jetpack Compose project.
  • Nimbus SwiftUI: all modules necessary to run Nimbus in a SwiftUI project.
  • Nimbus Compose Layout: layout components for Nimbus Compose.
  • Nimbus SwiftUI Layout: layout components for Nimbus SwiftUI.
  • Nimbus Backend TS: modules for the backend in Typescript.

License

Apache License 2.0.