ARCADIS WIND FARM APP
Together with well-known engineering firm and long-time client Arcadis we developed an API and an app for the people living around land-based wind farms. The project goes by its Dutch name "Geluidsverwachting.nl" which is not entirely trivial to translate. "Noise Forecast" comes close.
The app enables residents to obtain insight into wind turbine noise forecasts and also enables them to input their experiences regarding the noise levels of their neighbouring wind farm.
An important part of the project is the backend REST API, which is being developed in close collaboration with data scientists employed by our client. Of obvious help is the fact that Python is a data scientists' coding language of choice, and Django is written in Python.
We implemented the following techniques for this project:
Django is an advanced web application framework, written in Python. Django incorporates a great number of features, enabling developers to develop websites and web applications very quickly and efficiently. We save our clients time and money by getting up to speed quickly using Django.
A web service is a method of communicating data over the internet, where flexibility and security are vital.
We can implement a myriad of web services, but more importantly, thanks to the brilliant Python Libraries, we can also build complete web services from the ground up.
Python is our programming language of choice. What makes Python hugely different from languages like Java, C++, and .NET, is that it is much more flexible and concise, allowing programmers to get much more work done on our clients' projects. On top of that, we use the Django Framework, which delivers our clients even more development speed.
Distributed Task Queuing is used for scheduled tasks, such as automating the generation of RSS feeds, scheduled data imports, or any other task that should not or must not occur in real time. In Django projects, the task runner Celery is used most often.
iOS is the Operating System that underlies all iPhones, iPads, and Apple TV. We do development and maintenance .
Ionic is a complete open-source SDK for hybrid mobile app development. The original version was released in 2013 and built on top of AngularJS and Apache Cordova. The more recent releases, known as Ionic 2 or simply "Ionic", are built on Angular. Ionic provides tools and services for developing hybrid mobile apps using Web technologies like CSS, HTML5, and Sass. Apps can be built with these Web technologies and then distributed through native app stores to be installed on devices.
Representational state transfer (REST) or RESTful web services are a way of providing interoperability between computer systems on the Internet. REST-compliant Web services allow requesting systems to access and manipulate textual representations of Web resources using a uniform and predefined set of stateless operations. Other forms of Web services exist, which expose their own arbitrary sets of operations such as WSDL and SOAP.
Android is a mobile operating system developed by Google. It is based on a modified version of the Linux kernel and other open source software, and is designed primarily for touchscreen mobile devices such as smartphones and tablets.
We develop native Android apps using either a framework such as Ionic or directly in supported languages such as Java, Go, or Kotlin.
A push notification is a message that is "pushed" from backend server or application to user interface, e.g. (but not limited to) mobile applications and desktop applications.
We primarily make use of Firebase Cloud Messaging (FCM), formerly known as Google Cloud Messaging (GCM), is a cross-platform cloud solution for messages and notifications for Android, iOS, and web applications. But solutions we use also support Apple Push Notification service (APNs) or other services.
As an aside, we are interested in creating our own push service solution for use within the EU in order to better adhere to GDPR and other EU rulings.