---
source_hash: "c8c9194e"
title: "SmartMaker o DoliMobile?"
weight: 1
description: "All'inizio il progetto si chiamava DoliMobile: poiché la soluzione non è destinata solo ai dispositivi mobili e il nome DoliMobile è stato \"soffiato\" da un altro progetto, abbiamo cambiato..."
category: "SmartMaker"
type: "stack"
---

# SmartMaker o DoliMobile?

![Illustrazione di SmartMaker: uno sviluppatore esce da uno smartphone con la tastiera, circondato dal codice e dal logo React](images/20260204-224949.png)

All'inizio il progetto si chiamava DoliMobile: poiché la soluzione non è destinata solo ai dispositivi mobili e il nome DoliMobile è stato "soffiato" da un altro progetto, abbiamo cambiato nome in SmartMaker.

Nelle nostre pubblicazioni troverete forse ancora il nome DoliMobile: vi chiediamo di non fargliene una colpa e di fare voi stessi la trasposizione: DoliMobile = vecchio nome di SmartMaker.

SmartMaker è il risultato di un lungo lavoro di riflessione volto a portare all'ecosistema Dolibarr uno stack tecnico che consenta agli sviluppatori di proporre interfacce mobili native come complemento del Module Builder.

L'obiettivo è permettere a qualsiasi sviluppatore Dolibarr di proporre PWA (Progressive Web App) e non applicazioni distribuite tramite i portali delle GAFAM (e quindi soggette alle loro condizioni).

## Breve storia

Tutto è iniziato durante un devcamp Dolibarr e ha dato vita a un GIFF (vedere https://www.dolibarr.fr/forum/t/giff-socle-technique-mobile/43476) che purtroppo non è stato né finanziato né sostenuto da un vero gruppo di partner Dolibarr: https://decidim-dolibarr.informatique-libre.com/assemblies/assemblee-giff-socle-mobile - senza dubbio per mancanza di risorse umane e per la gestione delle priorità nel contesto attuale (fattura elettronica, certificazione del software di cassa, tra le altre).

## Motivazioni

Dolibarr è un progetto libero e riteniamo che si debba proporre ai nostri utenti un'alternativa decentralizzata, per non lasciarli rinchiudere negli ecosistemi delle GAFAM come accade quando si propone un'applicazione nativa distribuita su Google Play o Apple iTunes.

Un'applicazione PWA sviluppata con SmartMaker sarà quindi semplicemente ospitata sul Dolibarr dell'utente, come qualsiasi modulo Dolibarr classico.

L'utente può, se lo desidera, "aggiungere un'icona di avvio" sulla "scrivania" del proprio smartphone (o su quella dei propri utenti), rendendo l'accesso alla PWA semplice quanto quello a un'applicazione nativa.

Per semplificare ulteriormente il processo vi invitiamo a generare un codice QR del percorso di hosting della PWA: gli utenti dovranno solo scansionarlo per accedervi, ancora più facile che cercare nel portale delle GAFAM.

Per maggiori dettagli sulle PWA potete consultare la scheda Wikipedia https://fr.wikipedia.org/wiki/Progressive_web_app

SmartMaker è un progetto portato avanti da CAP-REL (preferred partner Dolibarr), completamente aperto, e speriamo di vedere integrato nel progetto Dolibarr quanto più possibile.

## Backoffice (PHP)

SmartMaker si integra in un normale modulo Dolibarr (per esempio generato con il Module Builder nativo di Dolibarr) e propone l'uso di API lato backoffice per rendere accessibili gli elementi di cui l'applicazione frontale ha bisogno.

Potete così sviluppare nel vostro modulo tutto ciò che volete esporre all'applicazione frontale, nel linguaggio del cuore di Dolibarr.

### Autenticazione

Lo stack di autenticazione è descritto in dettaglio nel progetto SmartAuth: https://inligit.fr/cap-rel/dolibarr/plugin-smartauth/

A nostro avviso l'API nativa di Dolibarr non è sufficiente e ci ha portati all'implementazione proposta in [SmartAuth](/smartauth).

Nota: il contenuto del progetto SmartAuth è stato pensato per essere integrato nel cuore di Dolibarr, o quanto meno speriamo di veder arrivare nel cuore una soluzione che copra lo stesso perimetro funzionale
.
### API di business per la vostra applicazione

SmartMaker vi offre un quadro di sviluppo moderno per massimizzare la vostra efficienza.

SmartMaker porta un router PHP come quelli che si trovano nei progetti PHP moderni quali Symfony o Laravel. Per esempio:

![Tabella di routing PHP che dichiara rotte GET, POST e PUT verso classi Controller](images/20250828-152354.png)

Insieme a questo router viene fornito anche un autoloader PSR-4 che vi permette di allestire un albero di file logico corrispondente ai punti di ingresso della vostra tabella di routing PHP.

(I file con suffisso Controller.php sono quindi le classi controller indicate nel router)

![Albero della cartella smartmaker-api con le classi HomeController.php e InterventionController.php](images/20250828-152620.png)

Così la riga seguente del router

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

implementa il metodo "GET /home" e richiama la funzione "index" della classe HomeController... tutto è strutturato e vi permette di avere un codice facile da leggere e da mantenere.

La classe `HomeController` è semplicemente implementata nel file `./smartmaker-api/HomeController.php` e sarà caricata automaticamente da un autoloader (PSR-4). Nota: trovate l'autoloader nel file `smartmaker-api-prepend.php`

## Front in React

Il front è sviluppato in React e sono proposti numerosi oggetti pronti all'uso.

Nota: se non avete mai messo piede nel mondo dello sviluppo mobile, sappiate che il vostro codice sorgente per la piattaforma mobile verrà compilato (in sintesi, il risultato sarà un grosso file "js"). È quindi importante padroneggiare l'intera catena per poter realizzare l'applicazione mobile.

## Strumenti complementari

SmartMaker viene fornito con strumenti complementari, in particolare un file Makefile che farà sorridere gli sviluppatori "di vecchia data" (make è particolarmente usato nello sviluppo C/C++).

Invece di dover lanciare comandi complicati, abbiamo infatti raggruppato tutto nel file Makefile, che vi permette di lanciare comandi più semplici. Make è in grado di verificare un certo numero di cose e di automatizzare azioni un po' come uno script.

Così, per esempio, per compilare l'applicazione mobile PWA e lanciarla in modalità sviluppatore potete eseguire solo il comando

`> make pwadev`

Per maggiori dettagli, guardate il file Makefile.dist

Nota: se avete adattamenti "locali" da realizzare potete farlo in un nuovo file Makefile.local, che sarà incluso automaticamente alla chiamata del comando make!
