Back

App Types

Hello World
Content:
Overview
Html
Native
Node Native
Hybrid

Overview

Feature \   App Type HTML Native Node Native Hybrid
Native Methods
Native UI
HTML / CSS UI via WebView Component via WebView Component
MUI Components
Node.js via NodeJS Component via NodeJS Component via NodeJS Component
Cross Platform
Environment Android WebView Android WebView NodeJS Android WebView
Minimum APK Size low (4MB) low (4MB) high (30MB) moderate (10MB)

Html

An 'HTML' app is simply a foreground Android Webview showing a standard HTML/CSS/JS (web style) user interface. It can make app.* native Android calls via the JavaScript→Native bridge.

Advantages:
- standard web technologies and libraries to create UI.
- well documented in the web (W3Schools)
- Small APK size and memory usage

Disadvantages:
- More time consuming to develop, HTML/CSS experience required
- No native 'look and feel' of Android

Native

A 'Native' app uses an invisible Android Webview to run the main JavaScript code, but the app's user interface is created with native Android controls via calls across the JS→Native bridge.

Advantages:
- Simple to use
- Direct access to browser features as Android WebView evolves (i.E. WebBluetooth, Canvas, WebAssembly, WebRTC)
- Small APK size and memory usage

Disadvantages:
- The performance is slower for complex UI (can be improved with cfg.Fast at the loss of DOM objects)
- Modern browser features might not work with older WebView versions

Node Native

A 'Node Native' app runs the main JavaScript code inside a standard NodeJS instance instead of the WebView. User interface is made using native Android controls which are accessed using app.* methods. These native calls run via a custom NodeJS extension instead of the Js→Native bridge.

Advantages:
- Native UI + powerful server/IOT functionality all in one
- Access to many thousands of free 'npm' modules for extending app functionality
- Higher performance when creating complex native user interfaces

Disadvantage:
- Large APK size, more memory usage

Hybrid

A 'Hybrid' app runs the main JavaScript code inside a foreground Android WebView,  the users creates the UI programatically like with 'Native' apps, but it's rendered inside the same WebView using HTML/CSS instead of using native Android controls across the bridge.

Advantages:
- Simple and fast to use
- WYSIWYG editor available
- Industry standard 'Material' look and feel
- Low memory usage, Smaller APK
- Cross-Platform compatible, since it is just HTML/CSS in the background
- No JS→Native bridge required for rendering UI (build complex UI faster)
- Switch between light and dark theme at runtime

Disadvantages:
- Fewer customization options for look and feel
- app.* and NodeJS features break cross-platform compatibility

app.* Methods
Included via <​script src="ds:/Sys/app.js">
Not Cross-Platform
Android UI from app.Create* and app.Show* methods
Note: This function is a premium feature. Please consider subscribing to Premium to use this feature and support DroidScript in its further development.
Included via cfg.MUI
Cannot use Native Methods, Native UI, MUI and Node.js