MCPcopy Index your code
hub / github.com/eclipsesource/tabris-js

github.com/eclipsesource/tabris-js @v3.10.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.10.0 ↗ · + Follow
2,501 symbols 8,050 edges 573 files 156 documented · 6%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Tabris.js

Build Status Slack Status

Tabris.js is a framework for developing mobile apps with native UIs in JavaScript. iOS and Android apps can be built entirely from one code base, which frees you from the task of managing code for multiple platforms.

Tabris.js hello world

import {Button, contentView, TextView} from 'tabris';

// in JS

new Button({top: 16, centerX: true, text: 'Use native UI'})
  .onSelect(() => $(TextView).only().text = 'Powered by Tabris.js')
  .appendTo(contentView);
new TextView({top: 'prev() 16', centerX: true})
  .appendTo(contentView);

// or in JSX

contentView.append(
  <$>
    <Button top={16} centerX text='Use native UI'
            onSelect={() => $(TextView).only().text = 'Powered by Tabris.js'}/>
    <TextView top='prev() 16' centerX/>
  </$>
);

Native widgets

The code of the application is loaded dynamically - nothing is precompiled. JavaScript is executed Just-in-Time and passed via a native bridge to the device. Tabris.js accesses native controls and does not depend on webviews to render the app's UI. As a result, the performance of the apps cannot be distinguished from apps developed directly in native code of the platforms.

Getting started

To start developing Tabris.js applications, visit tabrisjs.com and check out the "Getting Started" guide in the documentation. Be sure to also consult the code snippets in the Tabris.js Developer App (download from the app store for Android and iOS).

Extensible

Tabris.js can be extended with Cordova plugins to add support for additional native features. A cordova plugin is also able to directly interface with the native widgets (as can be seen e.g. in the tabris-plugin-maps).

Additionally npm modules can be used to further enrich the available JS APIs.

Tabris.js also adds support for many key web technologies including: - Canvas - XMLHttpRequest / fetch() - WebSockets - localStorage

Build tabris npm module

Follow these steps if you want to build the tabris module yourself.

Install the Grunt build tool using npm:

npm install -g grunt-cli

In the tabris-js root directory fetch the dependencies and build:

npm install
grunt

License

Published under the terms of the BSD 3-Clause License.

Extension points exported contracts — how you extend this code

Event (Interface)
(no doc) [1 implementers]
tools/api-schema.d.ts
NativeClient (Interface)
(no doc) [1 implementers]
src/tabris/NativeBridge.ts
PseudoHTMLElement (Interface)
(no doc) [1 implementers]
src/boot/globals.d.ts
Event (Interface)
(no doc) [1 implementers]
typings/global/dom.d.ts
FooTarget (Interface)
(no doc)
test/typescript/Listeners.test.ts
PercentLikeObject (Interface)
(no doc)
typings/propertyTypes.d.ts
Api (Interface)
(no doc)
tools/api-schema.d.ts
Widget (Interface)
(no doc)
src/tabris/Widget.ts

Core symbols most depended-on inside this repo

calls
called by 604
test/tabris/ClientMock.js
from
called by 357
src/tabris/Font.js
set
called by 295
src/tabris/NativeBridge.ts
appendTo
called by 283
src/tabris/WidgetCollection.js
trigger
called by 223
src/tabris/Events.ts
createElement
called by 215
src/boot/globals.d.ts
toArray
called by 195
src/tabris/Color.js
forEach
called by 187
src/tabris/fetch/Headers.js

Shape

Method 994
Function 974
Class 441
Interface 92

Languages

TypeScript100%

Modules by API surface

tools/generate-doc.ts83 symbols
src/tabris/NativeObject.ts58 symbols
snippets/screenshots.js41 symbols
tools/common.ts38 symbols
src/tabris/Layout.js36 symbols
typings/global/dom.d.ts34 symbols
src/tabris/WidgetCollection.js31 symbols
tools/generate-dts.ts30 symbols
src/tabris/widgets/CollectionView.js30 symbols
src/tabris/XMLHttpRequest.js30 symbols
src/tabris/Crypto.ts30 symbols
src/tabris/Widget.ts27 symbols

For agents

$ claude mcp add tabris-js \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact