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, ES7, 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.
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.
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 priorities include:
Support for popular technologies like Cordova, Ionic, Sass, React, etc. with built-in implementations wherever possible.
Tighter integration with target operating system APIs, like direct access to the Android Java API and Windows .Net.
APIs will be developed for popular libraries like FFmpeg, Mpg123, Ogg decoders, OpenCV, MySQL, BitCoin etc.
The script engine was designed to adapt to the syntax of other languages, so that multiple languages could run seemlessly inside web page script tags. Existing PHP support will improve. TypeScript and C are under development. Other languages like Haskell and Python are planned.
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.
More targets will be explored - like Tizen, Raspberry Pi, FreeBSD, and apps for IoT microcontrollers with sophisticated displays.