Dajbych.net


Project Spartan, Part 5 – Windows API for Web Applications

, 4 minutes to read

spartan logo

With the advent of Windows 10, it will be possible to host application content on its own server. Even so, such a web application will have access to the Windows Runtime, an interface that was previously intended exclusively for native applications. The web app will be right next to the native app in the Store. At the same time, it will be possible to develop and deploy it in the same way as a website. The Windows Runtime will be accessed from JavaScript. Web applications in Windows will be absolutely equivalent to native applications.

In the last part , I focused on the direction in which JavaScript is heading. There is already a clear effort to bring web applications closer to the possibilities that native applications have.

The term web application is getting a clear outline

The term web application is very widespread, but it is not easy to define it precisely. However, it tries to capture the difference between a web application and a website. A classic web page is HTML, or CSS and possibly very modest JavaScript. The website was designed as an electronic bulletin board, a platform for reading text documents, or an electronic library. There was no sign of the video and file sharing. Rendering a scene on which a game could be created, or full control over the keyboard and mouse, was unimaginable.

On the other hand, the vision of web applications has been strong since the beginning of HTML5. Originally, the umbrella term for everything around HTML5 was even Web applications, but HTML5 spread so quickly that the term began to refer to the entire vision of web applications.

A web app has the same capabilities as a native app, but it’s still a web page using HTML, CSS, and JavaScript. It can render using WebGL just like native apps using DirectX. It is capable of playing video just like native applications via COM objects. It has the ability to store relational data in IndexedDB just like native applications in SQLite. The system will allow it to invoke a dialog box to open or save files. And most importantly, it is able to run in full screen and have full control over inputs from peripherals (i.e. mouse, keyboard, joystick, headset and more). One of the goals of the Spartan project was to create a browser core that can handle a graphically demanding web game in addition to page rendering and make hardware available to it.

In the last few years, two main methods have been developed for how applications are installed and run. The days when they were sold on CDs in shops built of bricks are gone. The first is a web search engine and the second is a store. Basically, it’s the same thing. Google, Bing, and Seznam search for web apps, while the Store, App Store, and Google Play search for native apps. Web apps are added to favorites or bookmarks, pinned to the taskbar, the Start screen, or a new tab. Native apps are installed and shortcuts are placed on the desktop, Start menu, or directly on the taskbar. On Windows 10, a web app will have the same capabilities as native apps.

Hosted Web Apps

A Hosted Web App is the name given to a web application that looks just like any other native app listed in the Store, but can actually be a web page written with Sublime and exposed via Git (although Visual Studio and TFVC can also be used). Google calls this approach Chrome Packaged Apps.

The web app will be able to update the tile, display toast notifications, access your computer contacts, and have a dedicated space to store your files. The same goal can be achieved now with Store apps that can be written in JavaScript. However, web developers are not used to the fact that applications can only be updated by uploading a package through the Store. It is usually updated via WebDeploy or FTP, or in the case of continuous integration via TFVC or Git. If someone wanted to create a web application and place it in the store, they had to create a native application that contains iframe and other small necessities. Hosted Web Apps have to remove this step as well. The Windows Runtime API will be accessible from JavaScript (but only if the app is installed) and the Store information will be provided by the manifest. It is not yet clear whether Bing will automatically include these web apps in the Store. It would then be enough to put one file on the website and the web application would appear in the Store. But I think it’s only a matter of time before that happens.