Develop mobile and desktop apps using popular web technologies

The development of web.dev.app began after the major browser vendors agreed to work together to standardize HTML5 for the web. The tool was developed for emerging standards like CSS4, DOM4, ES6, and SVG2. Implementation of the current standards may not yet be complete, and other features are available that are not part of any standard, but we are committed to web standards and will continue working towards compliance.

Web.dev.app contains no source code from Mozilla or WebKit, instead being written entirely from scratch using modern C++. As an early version of an entirely new browser though, it is not yet ready to be used for reliable and secure website browsing. For now it is only intended to be used as an alternative solution for developing standalone HTML applications for mobile and desktop.

Web.dev.app's interface is written in HTML and the tool is used to build itself. The browser for Windows is less than 5Mb in size. Android packages can compress to little more than 2Mb, considerably smaller than packages built using a Chrome based runtime, with quick startup and lean memory use.

Technical summary

When building an app, the currently open web page becomes the home page of the new app. All files and subfolders in the home page folder are packaged into a single-file app using the JAR file format. For desktop apps, the JAR is appended to a browser executable. For mobile apps, the browser is packaged as a shared library.

App pages can be HTML, EJS, or a subset of PHP. Extended APIs are available and shared libraries can be called. Assets can be obfuscated or encrypted. The script engine has an integrated database for easy and efficient storage.

Separate threads are used for page construction and script execution. The operating system user interface thread is never blocked.

Garbage collection uses reference locking. Memory is promptly released without pauses, providing good continuity for games and multi-threaded server apps. Fast circular reference detection prevents memory leaks. However, in this early version, there is still potential for undetected leaks. This will improve, but for now, developers should try to undo their own circular references.

Recent JavaScript advances like block scoping, classes, promises, symbols, and destructuring are fully supported, but generators, async functions, and modules are yet to be implemented. In this early version, the script engine has yet to be optimized. The JIT is unfinished and is not yet enabled in release versions.

Apps can be built for Android, Linux, or Windows without any other software installed. It helps to have ADB for easy Android installation. iOS apps will require a Mac with Xcode.

At this early stage of development, the focus is on Android, Linux, and Windows. By the time all the bugs and features are ironed out for those operating systems, the OSX and iOS versions should be ready for release.

Development roadmap

Development priorities include:

The script editor will become more configurable.

Native implementations of popular technologies like sass, handlebars, kml, react, etc.

APIs will be developed for popular libraries like FFmpeg, Mpg123, Ogg decoders, OpenCV, MySQL, BitCoin etc. Also tighter integration with target operating system APIs, like direct access to the Android API and .Net API.

Eventually the HTTP server and integrated database will allow developers to build encrypted single-file server-side apps that run on any supported operating system without dependencies.

The script engine is being extended to support TypeScript style variable types, and may eventually compile C code seemlessly inside web page script tags. Other languages like Haskell may follow.

More targets will be explored - like Tizen, Raspberry Pi, FreeBSD, and apps for IoT microcontrollers with sophisticated displays.