---
source_hash: "c8c9194e"
title: "SmartMaker oder DoliMobile?"
weight: 1
description: "Das Projekt hieß anfangs DoliMobile. Da die Lösung nicht nur für mobile Geräte gedacht ist und der Name DoliMobile von einem anderen Projekt \"geklaut\" wurde, haben wir..."
category: "SmartMaker"
type: "stack"
---

# SmartMaker oder DoliMobile?

![SmartMaker-Illustration: ein Entwickler springt mit seiner Tastatur aus einem Smartphone, umgeben von Code und dem React-Logo](images/20260204-224949.png)

Das Projekt hieß anfangs DoliMobile. Da die Lösung nicht nur für mobile Geräte gedacht ist und der Name DoliMobile von einem anderen Projekt "geklaut" wurde, haben wir ihn in SmartMaker geändert.

In unseren Veröffentlichungen taucht der Name DoliMobile möglicherweise noch auf. Bitte sehen Sie uns das nach und übersetzen Sie selbst: DoliMobile = der frühere Name von SmartMaker.

SmartMaker ist das Ergebnis langer Überlegungen mit dem Ziel, dem Dolibarr-Ökosystem einen technischen Stack bereitzustellen, mit dem Entwickler native mobile Oberflächen als Ergänzung zum Module Builder anbieten können.

Das Ziel ist, jedem Dolibarr-Entwickler zu ermöglichen, PWAs (Progressive Web Apps) anzubieten statt Anwendungen, die über die Portale der GAFAM verteilt werden (und damit deren Bedingungen unterliegen).

## Kurze Geschichte

Alles begann bei einem Dolibarr-Devcamp und mündete in einen GIFF (siehe https://www.dolibarr.fr/forum/t/giff-socle-technique-mobile/43476), der leider weder finanziert noch von einer echten Gruppe von Dolibarr-Partnern getragen wurde: https://decidim-dolibarr.informatique-libre.com/assemblies/assemblee-giff-socle-mobile - vermutlich aus Mangel an personellen Mitteln und wegen der aktuellen Prioritäten (elektronische Rechnung, Zertifizierung der Kassensoftware und anderes).

## Beweggründe

Dolibarr ist ein freies Projekt, und wir sind der Meinung, dass unseren Anwendern eine dezentrale Alternative angeboten werden muss, damit sie nicht in den Ökosystemen der GAFAM eingeschlossen werden, wie es bei einer nativen Anwendung über Google Play oder Apple iTunes der Fall ist.

Eine mit SmartMaker entwickelte PWA wird somit einfach auf dem Dolibarr des Anwenders gehostet, wie jedes klassische Dolibarr-Modul.

Der Anwender kann, wenn er möchte, ein "Startsymbol" auf dem "Desktop" seines Smartphones (oder dem seiner Benutzer) hinzufügen, wodurch der Zugriff auf die PWA so einfach wird wie bei einer nativen Anwendung.

Um den Vorgang weiter zu vereinfachen, empfehlen wir, einen QR-Code für den Hosting-Pfad der PWA zu erzeugen: die Benutzer müssen ihn dann nur scannen, um Zugang zu erhalten - noch einfacher als eine Suche im Portal der GAFAM.

Weitere Einzelheiten zu PWAs finden Sie im Wikipedia-Artikel https://fr.wikipedia.org/wiki/Progressive_web_app

SmartMaker ist ein Projekt von CAP-REL (Dolibarr Preferred Partner), vollständig offen, und wir hoffen, möglichst viel davon im Dolibarr-Projekt integriert zu sehen.

## Backoffice (PHP)

SmartMaker fügt sich in ein normales Dolibarr-Modul ein (zum Beispiel eines, das mit dem nativen Module Builder von Dolibarr erzeugt wurde) und bietet backofficeseitig APIs an, um die von der Frontanwendung benötigten Elemente zugänglich zu machen.

Sie können in Ihrem Modul also alles entwickeln, was Sie der Frontanwendung zur Verfügung stellen wollen, in der Sprache des Dolibarr-Kerns.

### Authentifizierung

Der Authentifizierungs-Stack wird im Projekt SmartAuth beschrieben: https://inligit.fr/cap-rel/dolibarr/plugin-smartauth/

Die native API von Dolibarr ist unserer Meinung nach nicht ausreichend, was uns zu der in [SmartAuth](/smartauth) vorgeschlagenen Implementierung geführt hat.

Hinweis: Der Inhalt des Projekts SmartAuth wurde für die Integration in den Kern von Dolibarr vorgesehen, oder wir hoffen zumindest, im Kern eine Lösung mit demselben funktionalen Umfang zu sehen
.
### Fach-API für Ihre Anwendung

SmartMaker bietet Ihnen einen modernen Entwicklungsrahmen, um Ihre Effizienz zu maximieren.

SmartMaker bringt einen PHP-Router mit, wie man ihn aus modernen PHP-Projekten wie Symfony oder Laravel kennt. Zum Beispiel:

![PHP-Routing-Tabelle mit GET-, POST- und PUT-Routen zu Controller-Klassen](images/20250828-152354.png)

Zusammen mit diesem Router wird auch ein PSR-4-Autoloader geliefert, mit dem Sie eine logische Dateistruktur passend zu den Einstiegspunkten Ihrer PHP-Routing-Tabelle aufbauen können.

(Die Dateien mit der Endung Controller.php sind also die im Router angegebenen Controller-Klassen)

![Dateibaum des Ordners smartmaker-api mit den Klassen HomeController.php und InterventionController.php](images/20250828-152620.png)

Die folgende Zeile des Routers

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

implementiert "GET /home" und ruft die Funktion "index" der Klasse HomeController auf ... alles ist strukturiert und ergibt Code, der leicht zu lesen und zu warten ist.

Die Klasse `HomeController` ist schlicht in der Datei `./smartmaker-api/HomeController.php` implementiert und wird automatisch von einem Autoloader (PSR-4) geladen. Hinweis: Den Autoloader finden Sie in der Datei `smartmaker-api-prepend.php`

## Frontend in React

Das Frontend wird in React entwickelt, und zahlreiche gebrauchsfertige Objekte stehen bereit.

Hinweis: Wenn Sie noch nie mit mobiler Entwicklung zu tun hatten: Ihr Quellcode für die mobile Plattform wird kompiliert (kurz gesagt entsteht am Ende eine große "js"-Datei). Es ist daher wichtig, die gesamte Kette zu beherrschen, um die mobile Anwendung umsetzen zu können.

## Ergänzende Werkzeuge

SmartMaker wird mit ergänzenden Werkzeugen ausgeliefert, insbesondere mit einer Makefile-Datei, die "alte" Entwickler schmunzeln lässt (make wird vor allem in der C/C++-Entwicklung eingesetzt).

Statt komplizierte Befehle eingeben zu müssen, haben wir alles in der Makefile-Datei zusammengefasst, mit der Sie einfachere Befehle starten können. Make kann eine Reihe von Dingen prüfen und Abläufe automatisieren, ein wenig wie ein Skript.

So genügt beispielsweise zum Kompilieren der mobilen PWA-Anwendung und zum Start im Entwicklermodus der Befehl

`> make pwadev`

Weitere Einzelheiten finden Sie in der Datei Makefile.dist

Hinweis: Wenn Sie "lokale" Anpassungen umsetzen möchten, können Sie das in einer neuen Datei Makefile.local tun, die beim Aufruf des make-Befehls automatisch eingebunden wird!
