Office League was finally launched on the NDC 2017 developer conference in Oslo. We arrived on stand with two foosball tables and invited everyone to play. Since then, thousands of games have been played and hundreds of leagues and teams have been created. Office league is now being used on a daily basis by players primarily in Europe and the Middle East.
Building a Progressive Web App - Part 4: What we learned and the future of PWA
Try it out!
Point your browser to https://officeleague.rocks, sign in, create your own league and invite your friends to get going.
Increasing front-end complexity
PWA works today
Using a modern Android phone, we are already able to install Office League - so it is listed and acts like a native app to the end user. The app also works well on iOS devices, and the only visible draw-back is related to the absence of full screen mode - which clutters up the game experience due to scrolling. This could probably be fixed with some additional development effort though. The Chrome development tools also provide a new "Application" tab that lets you mange the app-specific features such as caching, manifest files, offline mode etc. This is indeed helpful when building PWAs.
Simplified back-end technology
As we revealed in the third blog post in this series. We quickly experienced how GraphQL radically simplifies web API development. You can spend your time focusing on domain objects and automatically get a fast, powerful, easy-to-use and self-documented web API that can be accessed from virtually any device or programming language. As a part of the project we also built and released a library for building GraphQL endpoints.
Office League is an Enonic App
What makes Enonic XP different from most other application stacks is that it provides all the essential tooling required to build and run applications - giving your code only a single dependency. Enonic XP includes the following:
- Pluggable Identity system for users and roles
- NoSQL repository built around Elasticsearch for any kind of data
- Headless and/or Coupled Content Management System (CMS)
- Admin interface to build back-office tools for your application
For the production version of Office League - officeleague.rocks - we used Auth0 to do cloud-based authentication. An Auth0 IDprovider application is available on Enonic Market. Since authentication is fully pluggable in XP this was quickly configured and deployed. Using Enonic XP developers we were still able to run everything locally by replacing the app with local authentication.
Office League can be scaled out to support massive traffic as Enonic XP can run as a single service on a single server, or distributed across a vast number of servers and even split into data and application nodes if desired. We can run it in our favourite cloud, or even on premises. This prevents us from getting locked-in which is typically the case for the new and popular cloud based Platform As A Service and Backend As A Service solutions.
If you are interested in diving into the code, or testing out Office League on your local computer, or maybe even launching your very own custom branded version? The full source code for Office League is available on https://github.com/enonic/app-office-league with the permissive Apache 2.0 licence. You can quickly get it up and running locally by setting up an Enonic XP development environment. A pre-compiled version of Office League is available on Enonic Market https://market.enonic.com/vendors/enonic/office-league, or you can compile the source code. Enonic XP is itself also an open source project.
Office League next
We are continuously improving and expanding Office League. We are planning both new functionality, and making technical implementation improvements. Here are some of the items on our list:
- Push notifications related to games in your leagues
- Support for other game types (i.e. Air Hockey and Ping-pong)
- Tournaments - the winner takes it all.
- Editorial content for increased engagement and news
- More unit testing - to ensure the app logic does not break
- Automated UI testing - to ensure the interface does not break
Since Office League is an open source project there is no need to sit around and wait for us - we would love to see your ideas and improvements as pull requests :)
The Future of PWA
At Enonic, we are firmly convinced web technology represents the future of app development.
- At the time of writing, exiting PWA news are pouring in:
- The Safari (Apple) team has started work on serviceWorkers.
- PWAs running on Android are now actually installed locally and work like native apps
- WebUSB API is appearing with Chrome 61, giving web developers access to USB units
- navigator.share API enables triggering the native OS share menu
- paymentRequest API is maturing to simplify payments for both users and developers
- Front end frameworks are rapidly evolving and maturing
Microsoft is betting big on PWA. No wonder, as it may once again make Windows a relevant operating system for client applications. For everyone that loves the web - we have exiting years ahead, and Enonic XP is once again positioned to be at the center of it all!