[en] This Bachelor Thesis has been developed with the idea of sharing the work and development methods that the companies use for big projects. Specifically, this document will be developed from the experience obtained working for Athelia in the Servitrax project, one of the biggest projects of the company. This project will consist in the development of an Android application using the Xamarin platform. This platform will allow us to develop Android applications using C# as native code instead of Java. This application is remarkable for being a complete Android application, using databases, web access and a very complex business logic. The application will be focused on the traceability of the assets and products, in other words, it will be used to keep track of the products and assets of Air Liquide (client's project). This application arises from the necessity of replacing the former application which has been running the last 10 years and that has been developed for the Windows Mobile OS. Along this document, it will be explained the work methods, the methodologies used (Scrum) and the principles and software techniques that has been applied (like TDD and SOLID). In addition, it will be explained the tools used, and how the schedule, the deliveries and the test have been done. This project will also explain project examples, focusing in the techniques used and the components that have been developed. These components will allow us to group functionality used in multiple places, in generic components easier to use. Inside the development section, we will see details of some of the screens, and the test development which will be a crucial part in the business logic development. At the end of the document, there will be two appends: The first one will explain the main differences between Android Java development and Android Xamarin, the other one will explain the guides and information that any new programmer that starts with the project is going to need to start developing.

[es] Este Trabajo Fin de Grado está desarrollado con la intención de dar a conocer los métodos de trabajo y desarrollo que se utilizan en las empresas para grandes proyectos. En concreto, se realizará a partir de la experiencia obtenida en la empresa de Athelia con el proyecto de Servitrax, uno de los principales proyectos dentro de la empresa. El proyecto consistirá en el desarrollo de una aplicación Android utilizando la plataforma de Xamarin. Esta plataforma nos permitirá desarrollar aplicaciones Android utilizando C# en lugar del lenguaje nativo de Android que es Java. Esta aplicación destaca por ser una aplicación muy completa con bases de datos, acceso web y una lógica de negocio muy compleja. La aplicación estará orientada a la trazabilidad de activos y productos, es decir, servirá para mantener un control de los productos y activos de Air Liquide (cliente que contrata el proyecto). Esta aplicación surge con el objetivo de sustituir la aplicación actual que lleva más de 10 años en producción y que está desarrollada para la plataforma de Windows Mobile. A lo largo de este documento se explicará la forma de trabajar, las metodologías usadas (Scrum) y los principios y técnicas del software que se han seguido (cómo por ejemplo TDD o SOLID). Además, se explicarán las herramientas que se han utilizado, cómo se ha organizado y gestionado el trabajo en equipo y cómo se han realizado las entregas y las pruebas. También veremos ejemplos del código realizado, centrándonos sobre todo en las técnicas usadas y en los componentes que se han desarrollado. Estos componentes nos permitirán agrupar funcionalidad usada en varias partes de nuestra aplicación en un solo componente que facilite su uso. Dentro de la sección de desarrollo, veremos también algunas pantallas explicadas más en profundidad y el procedimiento usado para realizar los test que será fundamental para la lógica de negocio. Al final del documento, encontraremos dos anexos: El primero explicará las principales diferencias entre el desarrollo Android con Java y el desarrollo con Xamarin. El segundo explica qué información y manuales necesita un programador para poder empezar a desarrollar en el proyecto.