-
Notifications
You must be signed in to change notification settings - Fork 1
Erste Schritte
Marc Staebler edited this page Mar 24, 2026
·
6 revisions
Diese Anleitung führt dich Schritt für Schritt von der Registrierung als Entwickler bis zu deiner ersten laufenden UserApp.
Bevor du loslegen kannst, brauchst du:
- Knuddels Desktop App – Download
- Knuddels-Account mit mindestens Status "Family Mitglied"
- Gültige Handynummer (zur Verifizierung)
- Gültige E-Mail-Adresse
- Akzeptierte Entwickler-AGB
- FTP-Programm – z.B. FileZilla
- Texteditor / IDE – z.B. Visual Studio Code
- Logge dich in die Knuddels Desktop App ein
- Gib in einem beliebigen Channel den Befehl
/apps developerein - Bestätige deine E-Mail-Adresse, Handynummer und die AGB
- Deine FTP-Zugangsdaten werden dir von James (dem Knuddels-Bot) zugeschickt
Tipp: Bewahre deine FTP-Zugangsdaten sicher auf. Bei Problemen mit den Zugangsdaten wende dich an hilfe.knuddels.de.
Erstelle auf deinem Computer folgende Dateistruktur:
meine-erste-app/
├── main.js # Server-Logik
├── app.config # App-Konfiguration
└── www/
└── index.html # Frontend (HTML-UI)
Die app.config enthält die Metadaten deiner App:
appName = MeineErsteApp
appVersion = 1.0
autoUpdate = true
appDeveloper.knuddelsDEV = DeinNickname
appDeveloper.knuddelsDE = DeinNickname
mayBeInstalledBy.1 = DeinNickname.knuddelsDEV
mayBeInstalledBy.2 = DeinNickname.knuddelsDEHinweis: Ersetze
DeinNicknamedurch deinen tatsächlichen Knuddels-Nicknamen.
// Wird aufgerufen, wenn die App initialisiert wird
App.onInitApp = function() {
KnuddelsServer.getDefaultLogger().info('App wurde gestartet!');
};
// Wird aufgerufen, wenn ein Nutzer den Channel betritt
App.onUserJoined = function(user) {
user.sendPrivateMessage('Willkommen! Gib °>/meineApp|Klick hier<° ein, um die App zu öffnen.');
};
// Chat-Befehl zum Öffnen der App
App.chatCommands.meineApp = function(user, params, func) {
var htmlFile = new HTMLFile("index.html", {});
var popup = AppContent.popupContent(htmlFile, 400, 300);
popup.setResponsive(true);
if (user.canShowAppViewMode(AppViewMode.Popup)) {
user.sendAppContent(popup);
} else {
user.sendPrivateMessage("Die App kann auf deinem Gerät leider nicht angezeigt werden.");
}
};<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body {
font-family: Arial, sans-serif;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
background: #f0f0f0;
}
.container {
text-align: center;
padding: 20px;
}
button {
padding: 10px 20px;
font-size: 16px;
cursor: pointer;
border: none;
background: #4CAF50;
color: white;
border-radius: 5px;
}
</style>
</head>
<body>
<div class="container">
<h1>Meine erste App!</h1>
<p id="status">Verbindung zum Server...</p>
<button onclick="ping()">Ping senden</button>
</div>
<script>
// pageData enthält die Daten, die der Server beim Öffnen mitgeschickt hat
var pageData = {};
if (typeof Client !== 'undefined') {
pageData = Client.pageData;
}
document.getElementById('status').textContent = 'Verbunden!';
function ping() {
if (typeof Client !== 'undefined' && Client.sendEvent) {
Client.sendEvent('ping', {});
}
}
// Events vom Server empfangen
if (typeof Client !== 'undefined') {
Client.addEventListener("pong", function(event) {
document.getElementById('status').textContent = 'Pong erhalten!';
});
}
</script>
</body>
</html>Füge in main.js folgende Zeile hinzu:
App.onEventReceived = function(user, type, data, appContentSession) {
if (type === "ping") {
if (appContentSession) {
appContentSession.sendEvent('pong', { success: true });
}
}
};- Öffne FileZilla und verbinde dich mit den erhaltenen FTP-Zugangsdaten
- Lade den gesamten Projektordner auf den Server hoch
- Gehe in deinen eigenen MyChannel (oder erstelle einen)
- Gib
/appsein - Klicke auf "App installieren"
- Beim ersten Installieren musst du einen AppBot anlegen – gib ihm einen beliebigen Namen
- Fertig! Deine App läuft
Der empfohlene Ablauf für die Entwicklung:
- Lokal entwickeln – Ändere deine Dateien in deinem Editor
- Per FTP hochladen – Lade die geänderten Dateien auf den Server
-
App aktualisieren – Gib
/appsein und klicke auf "update/restart" - Testen – Teste die Änderungen im Channel
Wichtig: Nutze den Dev-Server zum Entwickeln und Testen. Auf dem Live-Server (DE) solltest du nur stabile Versionen installieren. Mehr dazu unter Dev-Server.
- Projektstruktur – Verstehe den Aufbau einer UserApp im Detail
- App-Lifecycle – Lerne die verschiedenen Hooks und Events kennen
- Client-Server-Kommunikation – Wie Frontend und Backend miteinander sprechen
- Erste Schritte – Voraussetzungen, Einrichtung, deine erste App
-
Projektstruktur – Dateien, Ordner und
app.config - Dev-Server – Entwicklungsumgebung und Testen
-
App-Lifecycle und Hooks –
onAppStart,onUserJoinedund Co. -
Server-API Grundlagen –
KnuddelsServer,Channel,Logger - Client-Server-Kommunikation – Events zwischen Frontend und Backend
-
Benutzer und Nachrichten –
User,BotUser, Nachrichten senden - HTML-UI und AppContent – Popups, Overlays, Globale Apps-UI
-
Datenspeicherung –
AppPersistence,UserPersistence -
Knuddel und Zahlungen – Transfers, Käufe,
KnuddelAccount - Toplisten – Ranglisten und Highscores
- Globale Apps – Apps im "Apps & Spiele"-Menü
- Quests – Aufgaben für Nutzer
- Externe Server-Kommunikation – HTTP-Requests an externe APIs
- Tutorials – Übersicht aller Tutorials
- Tic-Tac-Toe – Multiplayer-Spiel mit Bestenliste
- Best Practices – Tipps, Limits und häufige Fehler
- FAQ – Häufig gestellte Fragen
- KCode-Formatierung – Nachrichten-Formatierung mit KCode