Maktaba for developers العربية

Maktaba's apps

Maktaba runs on a computer you own: the home. These apps are how people use it, to watch on a phone, a tablet, a computer or a television, and to run the home. Every app is in English and Arabic, and the Arabic is laid out right to left.

Each app

The apps at a glance

AppForPlatformsHow to get it
Maktaba Playeranyone who watchesiPhone, iPad, Mac, Android phones, foldables and tablets, Windows, LinuxTestFlight; Google Play internal testing; the release downloads
Maktaba Remotethe home's adminsiPhone, Android phones, foldables and tabletsTestFlight; Google Play internal testing
Maktaba TVwatching across the roomApple TV, Android TV, Google TVTestFlight on the Apple TV; Google Play internal testing, or the signed .apk when a release carries one
Maktaba, the serverwhoever runs the homeMac, Windows, Linuxthe release downloads; it updates itself
The web appeveryone, and the admin pagesany modern browser; the big screen for a TVthe home's address on port 8088, or through Maktaba Cloud

The apps are in testing and not in the public stores yet. Testers get the Apple apps from TestFlight and the Android apps from Google Play's internal testing: the home's owner adds each tester, an Apple ID to the TestFlight testers group or a Google account to the testers list. Every release tag uploads a new build to both, which reaches testers as an update. The Windows, Linux and Mac downloads are on the latest release page, and they update themselves.

Finding the home and signing in

Every app starts at the home picker. On this network lists the homes that announce themselves on the local network, Your homes the ones this device used before, and By address takes the address you open Maktaba at in a browser, or a maktaba://connect link the home shared. Phones and tablets can also scan a QR code, and Through Maktaba Cloud reaches a home linked to a cloud account from anywhere.

Then sign in with a username and password, or with a code: the device shows a code such as ABCD-1234 and a QR code, and someone already signed in approves it. In Maktaba Remote, Approve a TV or device is at the top of every screen; in Maktaba Player it is under Profile (on the Mac, in the Account menu); in the web app it is the Sign in a device page (/pair). The new device is signed in as the person who approved it, with that person's role.

The home enforces every role itself. An app hiding a screen is a convenience, not the rule: a modified app holding a viewer's token is still a viewer.

The home picker on an iPhone: on this network, through Maktaba Cloud, by address
The home picker on an iPhone: on this network, through Maktaba Cloud, by address
Signing in with a code on an iPhone: the code TEST-2345 and its QR code
Signing in with a code on an iPhone: the code TEST-2345 and its QR code
The web app's Sign in a device page, where a code is typed to approve a device
The web app's Sign in a device page, where a code is typed to approve a device

How the apps are built

The Player, Remote and TV apps are native and talk to the home's API, the same API the web app uses. Each app's README in the source says how to build and test it.

AppsBuilt withSource
Player and Remote for iPhone, iPad and MacSwiftUI and the shared MaktabaKitapps/apple/
Player and Remote for AndroidJetpack Composeapps/android/
Player for Windows and LinuxCompose for Desktopapps/desktop-player/
Apple TVSwiftUI and AVKitapps/tv/tvos/
Android TV and Google TVCompose for TV and Media3apps/tv/android/
Maktaba, the server appTauri 2 around the web appapps/desktop/
The web app and the big screenReact, TypeScript and Viteweb/

Every screenshot on these pages was taken in the dark theme on made-up test data: the Apple apps' screenshots come from their UI tests in CI, which run against a pretend home; the Android ones from the apps' screenshot tests; the web app and the big screen from a test home filled with invented libraries. The names, titles and codes in them are test data.