Web/ App development

Web / app development is the interface that allows the user to interact with a platform by communicating with the backend, which is the part that manages and processes the provided information to return the requested results through the app.


Timeline

2006-2023

Sector

Software Engineering

Scope

Web/ app software development
PDF

BACKGROUND

Mobile devices have become ever-present in our daily lives. We are constantly using applications designed for a specific use on these devices, for personal as well as professional purposes, allowing us to be in constant communication. Often times these mobile applications (also called apps) are equivalent to the frontends of the web platforms but adapted and optimised for the peculiarities and new functionalities that are provided by mobile phones: multi-touch screens, geolocation, high resolution picture cameras and availability of different types of built-in sensors such as accelerometers and magnetometers. These capabilities promote user interactions with the platforms and favour the collection of data in a manner that was unthinkable on other devices until now.

Therefore, the aim of an app during its development is to ensure its use is attractive and intuitive, thus achieving the best user experience and the highest possible level of association with the brand.

To reach this desired association, it is essential that a proper analysis is carried out of the requirements, a proper planning and execution of the development as well as a careful design of the interface and user experience.

SOLUTE has gained extensive experience and has a great technical capacity for developing software of the most varied types, including the development of all types of mobile apps and the corresponding backends that feed them.

Software development is the discipline that studies the components required for the creation, management, maintenance and testing of IT software. Software can be defined as the logic programming that all IT systems need to operate properly and allow the user to enjoy the functions of an application through a practical and intuitive interface.

One of the increasingly more popular facets of software development is the designing of mobile applications or apps, which are a frontend that has been especially adapted to the characteristics and new possibilities offered by mobile devices. Apps are the interface that is in contact with the user and is used by them to interact with a platform. This app in turn communicates with the backend, which is the part that manages and processes the information provided by the user and returns to them the results requested through the app.

The app is always executed locally on the user's mobile device, while the backend can be executed, in some cases, as a part of the app (self-contained application) itself or in one or more servers that are accessible through a communications network or the internet.

Often times the greatest problem of an application is the existence of a user interface that is not easy to use or intuitive, which lowers user productivity and involvement. For this reason, the most important part of frontend development is the designing of UI / UX (User Interface / User experience). While the design of the UI is focused on creating an attractive and practical interface, the design of the UX is focused on ensuring the actions to be carried out on the interface are logical and coherent with the processes that are to be carried out while the application is being used.


RESULTS

After a proper development process, an efficient and effective app is obtained with an attractive and easy to use interface and a logical and intuitive work flow. All of this leads to improved productivity and greater involvement by the user as well as a better perception of the brand by the user.

EXPERIENCE

SOLUTE has been carrying out many projects, for internal use as well as for customers in varied fields, such as the energy or automotive sector.

Some of these projects include the development of mobile applications, in some cases as the only frontend of the project, and in other cases, as an alternative to a frontend based on web technologies.

Currently SOLUTE develops Aphelion, a range of products focused on providing high resolution weather forecasts that are relevant for the energy, agricultural, industrial or naval sectors. The Aphelion ecosystem includes the development of mobile applications to facilitate easy access to weather forecasts while mobile.

App development requires a series of components that cover the purely artistic aspect of the graphic design and the use of tools, to the much more technical analysis and programming of languages such as Java, Kotlin, Objective-C and Swift.

METHODOLOGY

Software development in general and an app in particular, require being familiar with a series of preceding concepts about programming theory and algorithm analysis, but, due to the great speed with which mobile devices and its interfaces are evolving on the market, it is very important that the evolution of these devices and their capabilities as well as the latest trends are also taken into account in the design world.

App development requires a series of components that cover the purely artistic aspect of the graphic design and the use of tools, to the much more technical analysis and programming of languages such as Java, Kotlin, Objective-C and Swift. Additionally, a thorough knowledge is required of the two dominant mobile platforms on the market. Android and iOS. Due to the increasingly social aspect of apps, certain knowledge of human psychology and the dynamics of social interaction between people are often required.

Given the highly multidisciplinary nature of app development, the tools that are used cover a very wide spectrum: for designing prototypes and visual elements, a graphic design software such as the suite of Adobe Creative Cloud applications are used, while for creating the code itself, coding tools such as Microsoft Visual Studio Code are used. Android Studio and Xcode. To streamline the development and subsequent maintenance of the apps, some multi-platform frameworks such as React Native, jQuery Mobile or Unity are often used.

Just like in any type of somewhat complex software development, the use of version control tools such as Gitlab becomes essential.

Strictly monitoring the coding standards and style for the different languages and platforms is very important, as well as adapting the interface and its usability to the visual and operating style of each platform, maintaining a coherent visual identity for all of them and also ensuring users feel comfortable in an environment that is familiar to them.

In recent years, following data protection regulations has become especially important in the different regions with respect to confidentiality, the right to cancel and correct the data and the use of tracking systems for statistical or advertising purposes.

Different methods are available for developing software, and often times they are dependent on whether or not the project to be carried out requires covering a need at a specific moment or if the project has long service life and commercial exploitation cycles. Currently, a methodology is used that is commonly referred to as agile methodology: initially a preliminary analysis is carried out of the application and then, the project is planned out by studying the best development platform and languages as well as carrying out an estimation of the required resources and the execution time lines.

Then, the coding and application testing process is initiated. Once the project is validated by the customer or the pertinent corrections, if applicable, have been made, the app is uploaded to the stores of each platform (Google Play for Android and App Store for iOS), and the project is then considered completed. Often times, when requested by the client, a subsequent continuous maintenance phase is initiated where modifications can be made to the application as well as improvements.

In applications with long operating cycles, the possibility of creating new development iterations is studied, where new functionalities can be added to the project to extend its service life.

Upon completion of the project, documentation is delivered along with its source code and database, if applicable, in the format and manner agreed to in the contract.


Solar

Design of solar installation for self-consumption

Estimation of energy production in a self-consumption photovoltaic plant through a correct definition and sizing of the installed equipment to reduce uncertainty and maximise savings.

Solar

Solar resource

Realistic definition, with the minimum uncertainty, of the solar resource available in an area, to calculate the photovoltaic production of a plant.