explaingit

appeight/app8-ios-sdk

Analysis updated 2026-06-24

25SwiftAudience · developerComplexity · 4/5LicenseSetup · moderate

TLDR

iOS library that renders native UIKit screens at runtime from a JSON DSL, so apps can ship UI as data instead of compiled Swift code.

Mindmap

mindmap
  root((App8Engine))
    Inputs
      JSON DSL
      App manifest
      Screen definitions
      Asset references
    Outputs
      UIKit view controllers
      Native UIViews
      Reactive bindings
    Use Cases
      AI generated UI
      Server driven UI
      Dynamic app updates
      Prototyping screens
    Tech Stack
      Swift
      UIKit
      Combine
      Foundation
      MapKit
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Render iOS app screens from JSON returned by an LLM or backend

USE CASE 2

Push UI changes without an App Store release by swapping DSL files

USE CASE 3

Prototype iOS layouts in JSON and validate them with the debug instance

USE CASE 4

Build a server driven UI layer for an existing native app

What is it built with?

SwiftUIKitCombineFoundationMapKitSwiftPM

How does it compare?

appeight/app8-ios-sdknvwalj/ai-memory-readerashutosh160798/context-scope
Stars252524
LanguageSwiftSwiftSwift
Setup difficultymoderatemoderatehard
Complexity4/53/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 1h+

Requires iOS 18, Swift 6.1, Xcode 16, and must be built against the iOS Simulator because swift build on macOS cannot find UIKit.

Apache 2.0 permits commercial use, modification, and distribution with attribution and an explicit patent grant.

In plain English

App8Engine is an iOS library that draws native screens at runtime from a JSON description. The idea is that an iPhone app does not have to ship its user interface as fixed Swift code anymore. Instead, the host app provides JSON in a format the project calls the App8 DSL, and App8Engine turns that JSON into real UIKit view controllers and views. The README points to use cases like AI-generated user interfaces, where the screens come from a model or a server rather than being written by hand. The engine is built only on Apple frameworks, namely UIKit, Foundation, Combine, and MapKit, with no third-party dependencies. It produces native views rather than wrapping a web view. Screens support reactive variables, expressions written inside double curly braces, component state, and navigation between screens described in the DSL itself. Requirements are iOS 18 or newer with Swift 6.1 and Xcode 16. Installation is through Swift Package Manager, pointing at the project URL with version 0.1.0 or higher. The README warns that the project is in the 0.x range and the public API can change between minor versions. The engine itself never fetches content. Instead, the developer implements a protocol called App8DataSource that returns JSON for the app manifest, screens, components, styles, and assets. The data can come from the bundle, the network, or anywhere else. To render, you create an App8.Instance with your data source, call startApp, and present the returned root view controller. A separate debugInstance method lets you render a single screen on its own or validate DSL without going through the full app flow. A minimal screen example in the README shows a counter that has a label bound to a count variable and a button with a tap action that increments it. The DSL covers components such as label, button, image, collection, and stackView, plus styles, layout, variables, actions, navigation, collections, and animations, with full reference in the docs/dsl directory. Tests run against the iOS Simulator. The license is Apache 2.0.

Copy-paste prompts

Prompt 1
Write a BundleDataSource conforming to App8DataSource that loads my app.json and screens from the iOS bundle for App8Engine
Prompt 2
Generate an App8 DSL screen JSON for a login form with email and password fields and a submit button that calls a navigation action
Prompt 3
Show me how to call App8.instance(dataSource:).startApp() inside a SwiftUI UIViewControllerRepresentable so I can host App8Engine in a SwiftUI app
Prompt 4
Convert this UIKit screen written in Swift into equivalent App8 DSL JSON using label, button, and stackView components
Prompt 5
Add a network App8DataSource that fetches DSL JSON from my REST API and caches it locally for App8Engine

Frequently asked questions

What is app8-ios-sdk?

iOS library that renders native UIKit screens at runtime from a JSON DSL, so apps can ship UI as data instead of compiled Swift code.

What language is app8-ios-sdk written in?

Mainly Swift. The stack also includes Swift, UIKit, Combine.

What license does app8-ios-sdk use?

Apache 2.0 permits commercial use, modification, and distribution with attribution and an explicit patent grant.

How hard is app8-ios-sdk to set up?

Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.

Who is app8-ios-sdk for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.