Blazor development
For a company that sells swimming pools with a built-in motor to generate a current, I created a web application in .NET Blazor Server.
Blazor serves as framework to build a website that has the behaviour of a mobile application, while also being usable on a desktop environment. The choice for this application to be built in Blazor was founded on several requirements.
The background of the developer I worked with was the creation of .NET applications, all in C#. So Blazor and Razor pages integrate very well with that. Once the time comes to hand over the project, they could take it up without too much effort.
The swimming pool company had no budget for creating two native applications, one for Android and one for IOS. A mobile web application is a good alternative. Since budget also means time, being the only developer who worked on this application, I could create a lot more features in 1 website rather than 2 different native applications.
The original application was a .NET MVC project made in .NET Framework 4.7, which was a website. Users that prefer not using a mobile phone to use the application, can still make use of this application, despite it having a mobile-first approach.
And finally, it is possible to create a native application from this Blazor application. If there ever will be a demand for a native application, a cross-platform native application can be offered. The current Blazor Server application would serve as a proper foundation to become a progressive web application using webassembly. But it would require a rearchitecture to do so.
About the application
Programs
The application’s primary purpose is to allow users to create programs. A program is a sequence of steps that are to be executed on the motor of the swimming pool. A step is simply a duration and a speed. Once the user creates a program, the computer of the swimming pool interfaces with an API to retrieve the programs. These can then be executed and the swimming pool can create different currents, based on what the user created. This is then called a training.
Performing a training causes the user to also burn calories, this was also kept as a statistic.
The creation of programs has to intuitive and simple, so that it is easy for the user to create a program.
Challenges
Once the foundation of program creation was made, users could choose a challenge. For example, swim a total of 10 kilometres, or burn 2500 calories. This would make users earn a badge on their profile.
Multi-lingual
The application supports 3 languages: Dutch, German and English. Using resources for this makes it very easy to implement different languages.