Company employees used to write down the dimensions of the windows and doors on paper. They were made in a hurry, often crossed out, corrected. They could have forgotten to indicate some data or lost the sheet.
The production workers had to decipher the notes. They could misunderstand the numbers and make designs with the wrong dimensions. And if something was missing, it was necessary to go to the premises again and retake measurements. Dealers found it difficult to control the measurers, as they had to keep reports in separate files.
An application helps measurers do all the work on a smartphone:
- Enter data into the cloud;
- Create layouts and drawings of structures;
- Send data to production facilities immediately.
It has user authorization and several roles: measurer, manager, dealer. Making measurements has become easier, as users can adjust the model to certain dimensions and create a layout in just a few seconds. The application contains a library of standard solutions with drawings and popular designs that customers often choose.
At the end of the work, the measurer fills out a checklist. The specialist checks whether he has measured and recorded all the parameters. The data does not need to be sent by mail or messenger. It is automatically sent to the administrator. He can check at what stage the work is: they brought the structures, unloaded them, started the installation, etc. There are some advanced options for dealers included: setting up and exporting a template with individual parameters based on standard solutions. In the application, the gauge indicates what is happening at the facility now - administrators can monitor the progress of work.
In 2019, we started work on Window Measurer 2.0. Development went on for 3 months. We met the deadlines.
We started to implement multi-platform technology. Used Kotlin 1.3 and Kotlin / Native Beta. We chose this technology, because Android and iOS applications can share the same server-side interactivity logic and API elements. The server API was large, so it would take a lot of time to implement separately for iOS and Android. As a result, we allocated the entire network part to a common library. Both platforms work with it successfully.
There were numerous difficulties. These are the main ones, as even do not remember the minor issues:
- Both iOS and Android versions of the application were written with a different approach, as they had different data structures. And we needed to make a generalized version of server interaction;
- There were problems with forms and uploading of Ktor files on iOS, because the API is a difficult one;
- The shared project library depends on the SCL (Standard Components Library), our internal library of shared components. When compiling the iOS framework, we found that some classes from the SCL framework were missing.
- To create a generalized version of server interaction, the native code had to be redone, so the application was able to work with the data of the common module, and not only with the old data from the platform itself;
- The problem with uploading files on iOS was solved radically – we made uploading on the platform side via Alamofire;
- To fix the compilation situation, we added classes to the public interface of the library, which is compiled into the framework. It was made as a simple declaration of a global optional variable with this class, which was immediately set to null. The compiler saw the required type in the public interface and generated it in the header. For now, you can just use export for the required dependencies.
The customer was satisfied. We have entered into a support agreement and are now periodically performing maintenance on the application.
Now we are working on other projects for the company. For example, a calculator for calculating the cost of windows. The measurer can enter the data like dimensions, type of profile, fittings etc. and get the approximate cost of the structure. This simplifies work with the buyer.
VEKA Rus demonstrates “Window Measurer” to partners and colleagues from other countries. It has garnered special interest from the head office in Germany. Other branches do not launch such projects, so the solution of the Russian company is considered innovative.