Author: James Milner

How to Pick a Web Mapping Library for your App

With the boom of location-based technologies like mobile location services and the Geolocation API in the browser, we have seen the growth of mapping and location inside of applications. Alongside this we have seen numerous mapping libraries appear for the web, allowing developers to build map based experiences into their apps. These libraries abstract away the complexity of things like geographic coordinate systems, ordering map tiles correctly, panning, zooming and various other behaviors. When it comes to building a web

Read More »

Using WebAssembly with Web Workers

When building web apps, writing processing intensive code can be a challenge. One issue is getting predictable running times across browsers and JavaScript engines that optimise different code paths differently, as well as producing code that doesn’t interfere with user experience. Since 2010 we’ve had a standardised way to manage interactivity for long, non-DOM related tasks. Web Workers allow for offloading processing onto a separate thread keeping the main thread free. Recently we have seen the growth of another specification,

Read More »

Augmented Reality on the Web in 2019

Augmented Reality (AR) brings digital information or media and interweaves it with our experience of the real-world. In recent years Augmented Reality has become apparent in the consumer space in two major formats: head mounted displays such as the Microsoft HoloLens and the Magic Leap along with more widely available experiences on mobile devices. Here the applications normally take hold of the device’s camera and then impose digital artifacts onto the device’s viewport. Some examples of popular mobile based Augmented

Read More »

Getting Started with AssemblyScript

In a previous post we looked at how to compile the popular programming language Go to WebAssembly. WebAssembly is a new programming language which provides a compact binary format for the web. In this post we’ll explore another WebAssembly target language called AssemblyScript. AssemblyScript allows developers to write strictly typed TypeScript (a typed superset of JavaScript) code and compile it to WebAssembly.

Read More »

Reducing First Input Delay for a Better User Experience

One common complaint around web applications is that they can feel slow or clunky compared with native applications. Sometimes we find sites that can take a long time to load (let’s say longer than 3 seconds) and sometimes those sites feel non-interactive or ‘janky’ when we try to interact with them. Many sites, especially those that leverage JavaScript heavily, can suffer from this problem as JavaScript parsing, compiling and execution can be blocking. In modern web development, we have identified

Read More »
Compiling Go to WebAssembly

Compiling Go to WebAssembly

For many years there has been the only way to write client-side logic for the web; JavaScript. WebAssembly provides another way, as a low-level language similar to assembly, with a compact binary format. Go, a popular open source programming language focused on simplicity, readability and efficiency, recently gained the ability to compile to WebAssembly. Here we explore the possibilities with writing and compiling Go to WebAssembly, from installation of Go, to the compilation to WebAssembly, to the communication between JavaScript

Read More »

Reflecting on ffconf 2018

Last Thursday I was lucky enough to get over to the highly regarded web development conference ffconf in Brighton. This was my first time at the event and I can say that it lived up to and even exceeded my expectations. In this post I want to share with you the key takeaways from the event as a whole, having stratified out what I saw as three common themes throughout the conference. Namely, these themes were: Empathy, New and Future

Read More »
Building a Modern JavaScript Framework

Building a Modern JavaScript Framework

Every year, Esri, the world’s largest geospatial software vendor, runs its developer summit in Europe. This conference, the Esri EU DevSummit, attracts around 350 developers working with Esri technology from across Europe, all coalescing in Berlin. Attendees come to find out the latest in Esri tech updates and technology changes at large that affect them as geospatial developers. The Dojo Toolkit, a framework founded by Sitepen, has been a core part of Esri’s JavaScript mapping API offering, the ArcGIS JavaScript

Read More »
The Return of SharedArrayBuffers and Atomics

The Return of SharedArrayBuffers and Atomics

A common complaint of modern web apps is the concept of jank; web pages being unresponsive to user input and frame rates being low. Left unmitigated, this problem leads to a poor quality experience for end users of our web applications. You might ask: is this what causes jank? One common cause apart from complex/inefficient animations are blocking operations. JavaScript is single threaded, and as such, it can only be executing one thing at a time, so if a long-running

Read More »
Web Components in 2018

Web Components in 2018

For many front-end developers, components have become a central concept in their development workflow. Components provide a robust model for architecting and scaling complex applications, allowing for composition from smaller and simpler encapsulated parts. The concept of the component has existed on the web for some time, with frameworks like the Dojo Toolkit championing them in its Dijit widget system early on in the JavaScript ecosystem. Modern frameworks like React, Angular, Vue, and Dojo have further put components at the

Read More »