Neu ab Version 8.2:
ANDP ist jetzt vollständig Cross-Platform.
Eine einzige Code-Basis liefert sowohl die Web-Micro-Apps im Portal
als auch die native Mobile-App für iOS & Android.
Entwickeln Sie Features einmal – und veröffentlichen Sie sie nahtlos auf Mobile und Web.
ANDP vereint React Native und Expo in einem MonoRepo. Geteilte Packages liefern Business-Logik und UI-Bausteine; spezialisierte Apps (Mobile oder Web) verwenden nur noch die passenden Packages. Schreiben Sie Funktionen einmal – und verwenden Sie es für alle Plattformen.
Mehr Details gesucht?
Umfangreiche Konfigurations- und Integrationshinweise finden Sie sowohl in der
README.md
im Wurzelverzeichnis andp-cpa/
als auch in den READMEs der einzelnen Micro-Apps und Packages
(z. B. apps/andp-ma-…/README.md
oder packages/feature-…/README.md
).
1. Architektur auf einen Blick
Der Quellcode liegt im Verzeichnis andp-cpa/
.
Dort finden Sie eine klare Trennung zwischen apps/
(Targets)
und packages/
(wiederverwendbare Bausteine).
2. Verzeichnisstruktur
andp-cpa/
├── apps/
│ ├── andp-mobile (Mobile-App)
│ ├── andp-ma-messages (Micro-App Nachrichten)
│ ├── andp-ma-tasks (Micro-App Aufgaben)
│ ├── andp-ma-business-cases (Micro-App Geschäftsfälle)
│ ├── andp-ma-formgen (Micro-App FormGen)
│ └── … weitere Micro-Apps
└── packages/
├── core (Basis & UI)
├── feature-messages (Fachlogik Nachrichten)
├── feature-tasks (Fachlogik Aufgaben)
├── feature-business-cases (Fachlogik Geschäftsfälle)
├── feature-formgen (Formulargenerator)
├── feature-services (Mobile-only Services)
└── … weitere Packages
Verzeichnis | Zweck | Typische Inhalte |
---|---|---|
apps/ | Lauffähige Targets | Config, Routing, Entry-Points |
packages/ | Geteilte Logik & UI | Screens, Komponenten, Dienste, Hooks, Typen |
3. Nützliche npm
-Skripte
Alle Befehle mit start:
aus package.json
im Überblick:
npm run start:mobile
– Mobile-App (Expo)npm run start:ma-messages
– Web-Micro-App “Messages”npm run start:ma-bc
– Geschäftsfälle (Web)npm run start:dev:ma-bc
– Geschäftsfälle (Web, DEV Mode)npm run start:formgen
– FormGen (Web)npm run start:dev:formgen
– FormGen (Web, DEV Mode - FormularId kann im MicroApp-Formgen App.tsx mitgegeben werden)npm run start:mock:formgen
– FormGen (Web, Mock-Daten - Mock-Formularen können ohne Backend geladen werden)npm run start:dev:ma-ms
– Messages (Web, DEV Mode)npm run start:dev:ma-ts
– Tasks (Web, DEV Mode)
4. Schnellstart
- Abhängigkeiten installieren
npm install
- Mobile-App testen
npm run start:mobile
- Beliebige Micro-App starten
npm run start:ma-messages
5. Neue Funktion einfügen – Step-by-Step
Beispiel: Eine Reports-Funktion soll in Mobile & Web erscheinen.
- Package erzeugen –
packages/feature-reports
- Fachlogik & UI implementieren
- Mobile-Screen registrieren (
apps/andp-mobile
) - Neue Micro-App unter
apps/
anlegen - Build & Test – beide Plattformen prüfen
6. Best Practices
- i18n Übersetzungen – Titel & Beschreibungen als Übersetzungs-Keys anlegen.
- UI übersichtlich trennen – Plattform-spezifisches Verhalten klar trennen.
- Bereits vorhandene Styles aus @andp/core verwenden
7. Troubleshooting
Problem | Ursache | Lösung |
---|---|---|
Build-Fehler “JSON parse error” | Syntaxfehler in Feature-Flag | JSON validieren |
iOS-App stürzt sofort ab | Pods nicht installiert | npx pod-install ios |
Micro-App lädt nicht | CORS blockiert | Browser ohne CORS oder Proxy nutzen |
8. MicroApp Business-Cases - Backend liefert neue Variable – Mini-Tutorial
Angenommen, das Backend schickt künftig zusätzlich ein Feld priority
. So ergänzen Sie es:
- DTO erweitern (
/models/DetailsBusinessCaseDTO.ts
) - Screen anpassen (
DetailScreen.tsx
) – - Im UI darstellen (nur Ausschnitt)
export class DetailsBusinessCaseDTO {
/* … bestehende Felder … */
priority?: string; /** Erweitern von Konstruktor, fromJson und toJson nicht vergessen */
}
const {
partner,
caseType,
name,
/* … weitere Felder … */
notifications = [],
priority,
} = businessCase;
<AndpText style={styles.businessCaseInfoLabel}>
{t('business_partner_detail_priority')}
</AndpText>
<AndpText style={styles.businessCaseInfo}>
{priority ?? '-'}
</AndpText>
Tipp:
Legen Sie den neuen i18n-Key business_partner_detail_priority
im CMS an
und achten Sie auf Responsive-Design (lange Texte kürzen).