---
source_hash: "c8c9194e"
title: "¿SmartMaker o DoliMobile?"
weight: 1
description: "Al principio el proyecto se llamaba DoliMobile y, dado que la solución no es solo para dispositivos móviles y que otro proyecto nos \"quitó\" el nombre DoliMobile, lo hemos cambiado..."
category: "SmartMaker"
type: "stack"
---

# ¿SmartMaker o DoliMobile?

![Ilustración de SmartMaker: un desarrollador sale de un smartphone con su teclado, rodeado de código y del logotipo de React](images/20260204-224949.png)

Al principio el proyecto se llamaba DoliMobile y, dado que la solución no es solo para dispositivos móviles y que otro proyecto nos "quitó" el nombre DoliMobile, lo hemos cambiado por SmartMaker.

Puede que todavía encuentre el nombre DoliMobile en nuestras publicaciones; le rogamos que no nos lo tenga en cuenta y que haga usted mismo la equivalencia: DoliMobile = antiguo nombre de SmartMaker.

SmartMaker es el resultado de un largo trabajo de reflexión destinado a aportar al ecosistema Dolibarr una pila técnica para que los desarrolladores puedan ofrecer interfaces móviles nativas como complemento del Module Builder.

El objetivo es permitir que cualquier desarrollador de Dolibarr ofrezca PWA (Progressive Web App) en lugar de aplicaciones distribuidas a través de los portales de las GAFAM (y por tanto sujetas a sus condiciones).

## Breve historia

Todo empezó en un devcamp de Dolibarr y dio lugar a un GIFF (véase https://www.dolibarr.fr/forum/t/giff-socle-technique-mobile/43476) que, por desgracia, no fue financiado ni respaldado por un grupo real de socios de Dolibarr: https://decidim-dolibarr.informatique-libre.com/assemblies/assemblee-giff-socle-mobile - sin duda por falta de medios humanos y por la gestión de prioridades del contexto actual (factura electrónica, certificación del software de caja, entre otras).

## Motivaciones

Dolibarr es un proyecto libre y creemos que hay que ofrecer a nuestros usuarios una alternativa descentralizada para que no queden encerrados en los ecosistemas de las GAFAM, como ocurre cuando se distribuye una aplicación nativa en Google Play o Apple iTunes.

Así, una aplicación PWA desarrollada con SmartMaker se aloja simplemente en el Dolibarr del usuario, como cualquier módulo Dolibarr clásico.

El usuario puede, si lo desea, "añadir un icono de acceso" al "escritorio" de su smartphone (o al de sus propios usuarios), lo que hace que acceder a la PWA sea tan sencillo como abrir una aplicación nativa.

Para simplificar aún más el proceso, le invitamos a generar un código QR de la ruta de alojamiento de la PWA: así los usuarios solo tendrán que escanearlo para acceder, algo todavía más fácil que buscar en el portal de las GAFAM.

Para más detalles sobre las PWA puede consultar la ficha de Wikipedia https://fr.wikipedia.org/wiki/Progressive_web_app

SmartMaker es un proyecto impulsado por CAP-REL (preferred partner de Dolibarr), completamente abierto, y esperamos ver integrado en el proyecto Dolibarr todo lo posible.

## Backoffice (PHP)

SmartMaker se integra en un módulo Dolibarr normal (por ejemplo, generado con el Module Builder nativo de Dolibarr) y propone el uso de API en el lado del backoffice para hacer accesibles los elementos que necesita la aplicación frontal.

Puede así desarrollar en su módulo todo lo que quiera exponer a la aplicación frontal, en el lenguaje del núcleo de Dolibarr.

### Autenticación

La pila de autenticación se detalla en el proyecto SmartAuth: https://inligit.fr/cap-rel/dolibarr/plugin-smartauth/

En nuestra opinión, la API nativa de Dolibarr no es suficiente, lo que nos ha llevado a la implementación propuesta en [SmartAuth](/smartauth).

Nota: el contenido del proyecto SmartAuth se ha concebido para integrarse en el núcleo de Dolibarr o, al menos, esperamos ver llegar al núcleo una solución que cubra el mismo alcance funcional
.
### API de negocio para su aplicación

SmartMaker le ofrece un marco de desarrollo moderno para maximizar su eficacia.

SmartMaker aporta un enrutador PHP como los que se encuentran en proyectos PHP modernos tales como Symfony o Laravel. Por ejemplo:

![Tabla de enrutamiento PHP que declara rutas GET, POST y PUT hacia clases Controller](images/20250828-152354.png)

Junto a ese enrutador se entrega también un autoloader PSR-4 que le permite montar un árbol de archivos lógico que responda a los puntos de entrada de su tabla de enrutamiento PHP.

(Los archivos con el sufijo Controller.php son, por tanto, las clases controladoras indicadas en el enrutador)

![Árbol de la carpeta smartmaker-api con las clases HomeController.php e InterventionController.php](images/20250828-152620.png)

Así, la siguiente línea del enrutador

```PHP
Route::get('home',      HomeController::class, 'index', true);
```

implementa el método "GET /home" y llama a la función "index" de la clase HomeController... todo está estructurado y le permite tener un código fácil de leer y de mantener.

La clase `HomeController` está sencillamente implementada en el archivo `./smartmaker-api/HomeController.php` y será cargada automáticamente por un autoloader (PSR-4). Nota: encontrará el autoloader en el archivo `smartmaker-api-prepend.php`

## Front en React

El front está desarrollado en React y se ofrecen numerosos objetos listos para usar.

Nota: si nunca ha pisado el mundo del desarrollo móvil, tenga en cuenta que su código fuente para la plataforma móvil se compilará (en resumen, el resultado será un gran archivo "js"). Por tanto, es importante dominar toda la cadena para poder implementar la aplicación móvil.

## Herramientas complementarias

SmartMaker se entrega con herramientas complementarias, en particular un archivo Makefile que hará sonreír a los desarrolladores "veteranos" (make se usa mucho en el desarrollo en C/C++).

En efecto, en lugar de tener que lanzar comandos complicados, lo hemos agrupado todo en el archivo Makefile, que le permite ejecutar comandos más sencillos. Make es capaz de comprobar cierto número de cosas y de automatizar acciones un poco como un script.

Así, por ejemplo, para compilar la aplicación móvil PWA y lanzarla en modo desarrollador basta con ejecutar el comando

`> make pwadev`

Para más detalles, consulte el archivo Makefile.dist

Nota: si tiene adaptaciones "locales" que implementar, puede hacerlo en un nuevo archivo Makefile.local que se incluirá automáticamente al llamar al comando make.
