Lingara Lingara Docs Guides API Libraries Apps Build Web app
Language: English

Building Lingara apps

A Lingara app is a server you run. When a learner has installed your app, Lingara sends your server a signed request, your server answers with a card, and Lingara draws that card in its own style. Your code never runs on the learner’s device and never sees what Lingara stores there.

To Lingara, an app is an OAuth client with a manifest. The client gives your app its identity. The manifest says where its card may appear, what it asks to see, and where Lingara sends its requests.

Where a card appears

Your manifest names the slots your card may fill. There are two:

  • plans.empty_detail: the detail pane of the lesson plans screen, while no plan is selected. It is drawn on the web, Android and iOS whenever the screen is wide enough to show two panes.
  • home.side: the side column of the home page on the web.

Where neither slot is drawn, the learner opens your app full screen from Apps: in the console on the web, and in Settings on Android and iOS. Each slot shows one app at a time. When a learner has installed several apps for the same slot, they choose which one it shows.

Who can install an app

Today an app can be installed only by its owner, on their own account. Installs by anyone else are not available yet.

What you need

  • An OAuth client, which you create in the console.
  • A server that answers Lingara’s requests over HTTPS.
  • One of the app kits below. A kit checks the signature on each request, holds your card to Lingara’s limits before you send it, and writes the reply.

The quickstart walks the whole path, from a new client to a card on your own account.

Install a kit

Pick your language below.

TypeScript

npm install @lingara/apps@0.1.0-alpha.6

Rust

cargo add lingara-apps@0.1.0-alpha.6 --features axum
cargo add axum@0.8
cargo add tokio --features macros,net,rt-multi-thread

Go

go get github.com/Spinning-Cat-Studios/lingara_app_framework_sdk/go@v0.1.0-alpha.6

Java

<dependency>
  <groupId>com.getlingara</groupId>
  <artifactId>lingara-apps-java</artifactId>
  <version>0.1.0-alpha.6</version>
</dependency>

Kotlin

implementation("com.getlingara:lingara-apps-kotlin:0.1.0-alpha.6")

Ruby

gem install lingara-apps -v 0.1.0-alpha.6

PHP

composer require spinningcatstudios/lingara-apps:0.1.0-alpha.6 spinningcatstudios/lingara:@alpha

Building an app

  • Quickstart

    From a new OAuth client to your app's card on your own account.

  • Cards

    The eight elements a card is made of, the limits Lingara applies, and what a learner sees when a card fails.

  • Context and consent

    What your app can learn about a learner, field by field, and how the learner agrees to it.

  • The tutor note

    One line your app can offer Lingara's tutor, and the rules it passes through.