Artefakt Toolbox
Deutsch

Ausblick: eine Verbindungsschicht in der App

Heute verbindet sich jedes Tool selbst. Vorgeschlagen ist, dass die App das künftig zentral übernimmt. Hier steht, was das für deine Tools bedeuten würde und wie du schon heute so baust, dass sie davon profitieren.

Vorschlag an das App-Team, noch nicht in der App. Alles auf den anderen Seiten gilt unverändert. Diese Seite zeigt, wohin es gehen könnte, damit du schon heute passend baust.

Heute und mit Verbindungsschicht

Was sich ändern würde
BereichHeute: das Tool macht es selbstMit Verbindungsschicht: die App macht es
VerknüpfungenDas Ziel wird über seinen Namen gefunden. Deutsche und englische Fassungen passen darum nicht von selbst zusammen.Die App verteilt nach Art der Nachricht, zum Beispiel an alle Tools, die „erledigt“ verstehen, oder du wählst einmal ein Ziel.
Prüfen und AbholenJedes Tool prüft Nachrichten, sortiert Doppelte aus und holt beim Start ab.Die App prüft gegen die gemeinsamen Arten, sortiert Doppelte aus und meldet neue Nachrichten sofort.
ErlaubnisErlaubnis je Paar, beim ersten Versuch.Das Tool meldet in der Datei an, was es sendet und versteht. Die App fragt beim Einlegen einmal.
Kamera und MikrofonNur mit erweiterter Erlaubnis, die die Abschottung des Tools aufhebt.Das Tool bekommt nur das Ergebnis, zum Beispiel ein Foto oder einen Pegel, und bleibt abgeschottet.
Erinnerungen und SensorenEin Tool kann nur erinnern, solange es offen ist. Sensoren gibt es nicht.Erinnerungen auch bei geschlossenem Tool, dazu Bewegung und Lage als einzelne Rechte.
Daten zwischen ToolsDaten werden kopiert. Einkaufsliste und Vorrats-Ampel können auseinanderlaufen.Gemeinsame lokale Sammlungen mit Rechten je Sammlung, etwa „einkauf“ oder „personen“. Tools lesen dieselben Daten.
BackupJedes Tool wird mit seinen Daten gesichert.Die Sammlungen sind Teil des Backups. Nichts verlässt das Gerät.

Was das für deine Tools hieße

  • Weniger Code: Prüfen, Doppelte aussortieren und Abholen übernähme die App. Ein Tool bräuchte nur eine kleine, klare Schnittstelle. Davon profitieren vor allem selbst gebaute und per KI erstellte Tools.
  • Verknüpfungen über Sprachgrenzen: Ein englisches Tool könnte an ein deutsches melden, weil die Art zählt, nicht der Name.
  • Neue Arten von Tools: Mit vermittelter Hardware würden Ideen möglich, die heute an der Abschottung scheitern, etwa ein Schrittzähler, eine Wasserwaage oder ein Stimmgerät.
  • Ein Stand statt Kopien: Einkaufsliste und Vorrats-Ampel würden dieselbe Sammlung lesen und könnten nicht mehr auseinanderlaufen.
  • Mehr Sicherheit: Hardware ohne Aufheben der Abschottung und sichtbare Rechte je Tool und Sammlung.

Die vorgeschlagenen Stufen

  1. Jetzt, ohne App-Änderung

    Der gemeinsame Bausatz ist die Verbindungsschicht auf Seite der Tools. Alles Zusammenspiel läuft dort über eine einzige Stelle. Kommt die Schicht in die App, wird nur diese Stelle ausgetauscht, die Tools bleiben unverändert.

  2. Kleine App-Änderung

    Anmeldung in der Datei (was ein Tool sendet, versteht und von außen einstellen lässt), Verteilen nach Art der Nachricht, Meldung bei neuem Eingang, Erinnerungen.

  3. Vermittelte Hardware

    Foto, Pegel, Bewegung, Lage und Benachrichtigung als einzelne Rechte, ohne die Abschottung aufzuheben.

  4. Gemeinsame Sammlungen

    Eine lokale Datenbank mit Rechten je Sammlung und Meldung bei Änderungen. Zuerst „einkauf“ und „personen“.

Was es kostet

  • Die Arbeit liegt in der App, nicht in den Tools oder auf dieser Website.
  • Die Schicht ist ein Angriffspunkt. Sie braucht strenge Prüfung und muss sichtbar machen, welches Tool was darf und getan hat.
  • Die Schnittstelle muss klein und versioniert bleiben, sonst bricht jedes App-Update Tools.
  • Jedes Tool muss weiterhin auch allein laufen. Jede Fähigkeit wird vor Gebrauch geprüft und fällt ohne Toolbox einfach weg.

So baust du schon heute zukunftssicher

  • Lass alles Zusammenspiel über eine einzige Stelle im Code laufen. Ändert sich die Schnittstelle, tauschst du nur diese Stelle aus.
  • Nutze die gemeinsame Hülle { typ, v, id, text }. Nachrichten mit Art und Version ließen sich direkt nach Art verteilen.
  • Halte an einer Stelle fest, was dein Tool sendet und versteht, zum Beispiel im Block ANPASSEN. Das entspricht der vorgeschlagenen Anmeldung in der Datei.
  • Prüfe jede Funktion einzeln, bevor du sie nutzt, statt nur window.ARTEFAKT. So läuft dein Tool mit älteren und neueren Fassungen der App.
  • Speichere Daten so, dass sie sich als JSON darstellen lassen. Das passt zu Backup, Sicherungen und künftigen Sammlungen.
Eine Stelle für alles Zusammenspiel
// Alles Zusammenspiel läuft über dieses eine Objekt.
// Bekommt die App eine neue Schnittstelle, änderst du nur diesen Teil.
const Verbindung = {
  da: () => !!(window.ARTEFAKT && typeof ARTEFAKT.senden === 'function'),
  senden(ziel, typ, felder, text) {
    if (!Verbindung.da() || !ziel) return false;
    const n = { typ, v: 1, id: Date.now().toString(36) + Math.random().toString(36).slice(2, 6), text: String(text || '').slice(0, 500), ...felder };
    try { ARTEFAKT.senden(ziel, n); return true; } catch { return false; }
  },
  abholen() {
    if (!Verbindung.da() || typeof ARTEFAKT.eingang !== 'function') return [];
    try { return ARTEFAKT.eingang(); } catch { return []; }
  },
  oeffnen(ziel) {
    if (Verbindung.da() && typeof ARTEFAKT.oeffnen === 'function') try { ARTEFAKT.oeffnen(ziel); } catch {}
  }
};

// Im Tool: nach einer Übung melden
Verbindung.senden(KONFIG.ziele.erledigt, 'erledigt', { was: 'Atmen', menge: 5, einheit: 'min' }, 'Atmen, 5 Minuten');

Siehe auch: Gemeinsame Nachrichten · Was die Toolbox übernimmt