Lexikon: eine anpassbare native Mobile-App für Ihre Discourse-Website

Hallo zusammen,

ich wollte mich kurz hier melden und erwähnen, dass ich gerade gemeinsam mit einigen Kollegen ein Projekt namens Lexicon als Open Source veröffentlicht habe.

Es handelt sich um eine vorgefertigte, anpassbare native Mobile-App, die auf der Discourse-API aufbaut. Wir haben sie entwickelt, um die Integration von Diskussions- und Messaging-Funktionen in andere native Mobile-Projekte schnell und einfach zu gestalten.

Die Entwicklung dieses Projekts hat großen Spaß gemacht, vor allem dank der enormen Vorarbeit, die das Discourse-Kernteam und die Community in den vergangenen Jahren geleistet haben.

Screenshots findet ihr in der Einführung.

Technisch versierte Personen können gerne unseren Quick Start ausprobieren, der es euch ermöglicht, diese Discourse-Seite direkt in der App zu durchsuchen!

Zögert nicht, euch zu melden, falls ihr Fragen, Kommentare oder Feedback habt.

Viele Grüße,
Ryan

P.S. Ich war mir nicht sicher, in welche Kategorie ich das am besten posten sollte. Falls es eine passendere gibt, könnt ihr den Beitrag gerne verschieben.

58 „Gefällt mir“

Wir schätzen die klare Dokumentation sehr, besonders den Teil zur Architektur. Wir können es kaum erwarten, das lokal auszuprobieren!

Push-Benachrichtigungen | :cross_mark::hammer: In Entwicklung

Gibt es schon einen Zeitplan dafür?

8 „Gefällt mir“

Das ist großartig, @RyanKF! In welche Richtung sollten neue Entwickler vor allem helfen? Ich habe einige Erfahrung mit mobilen Apps in React.

3 „Gefällt mir“

Das ist wirklich cool. Sieht so aus, als ob es unter der MIT-Lizenz steht?

1 „Gefällt mir“

Oh, soll das ein nativer Discourse-Client wie Fig sein? Wenn ja, finde ich das echt toll! :grinning:

4 „Gefällt mir“

Fig sieht toll aus! Es scheint, als hätten sie es wirklich geschafft, ein natives iOS-Erlebnis für Discourse zu schaffen.

Einige Unterschiede, die ich sehe…

Tablet-Unterstützung

Fig bietet eine wirklich gute Tablet-Unterstützung. Das haben wir noch nicht angepackt.

Single-Site-App

Ähnlich wie bei Discourse Mobile hat Fig den Ansatz des „Site-Managers

11 „Gefällt mir“

Es ist MIT. Und bei allen anderen Details zur Ankündigung hatte ich vergessen, eine LICENZ-Datei in das Repository aufzunehmen – danke, dass du darauf hingewiesen hast!

6 „Gefällt mir“

Und du bist großartig, dass du bereits einen Beitrag leisten möchtest, @4ong!

Frontend

Auf der Frontend-Seite möchte ich gerne unsere Unterstützung für Funktionen verbessern, die im Rohinhalt eines Beitrags eingebettet sind.

Neben der Verarbeitung des regulären Markdown-Inhalts eines Beitrags können wir auch mehrere Funktionen unterstützen, die durch die benutzerdefinierte Markup-Syntax von Discourse bereitgestellt werden.

Wie du wahrscheinlich bereits weißt, unterstützt Discourse eine benutzerdefinierte Syntax für Funktionen wie Zitate, Umschalter, Datumsangaben und sogar Umfragen.

In einem ziemlich typischen Ansatz haben wir bereits grundlegende Unterstützung für Funktionen wie Code-Einbettungen geschaffen und für noch nicht implementierte Funktionen einen Block mit dem Hinweis „ wird derzeit nicht unterstützt

7 „Gefällt mir“

Optimistisch gesprochen in den nächsten Wochen hier – ich kann noch keine harten Zusagen machen.

Wir haben die Proof-of-Concept-Phase bereits hinter uns, müssen aber noch einige Ecken und Kanten glätten.

Die Unterstützung für diese Funktion erfordert die Installation unseres Discourse-Plugins auf Ihrer Website.

Ein paar Details dazu: Wir haben die Lexicon Mobile App mit Expo entwickelt, einem fantastischen Satz von Build-Tools und Diensten für React Native-Apps – und dieser beinhaltet Unterstützung für Push-Benachrichtigungen.

Allerdings konnten wir keine bestehenden Discourse-Plugins finden, die mit Expos Push-Dienst integriert sind, sodass wir eines selbst entwickeln mussten. Glücklicherweise ist die bestehende Open-Source-Integration mit OneSignal sehr ähnlich zu dem, was wir brauchten, und wir konnten ihr Projekt als Ausgangspunkt nutzen. (Sehr dankbar an pmusaraj dafür :folded_hands:).

Neben der Veröffentlichung des Plugins und der Integration mit der mobilen App werden wir natürlich auch die Dokumentation aktualisieren wollen. Da Lexicon es Ihnen ermöglicht, Ihre eigene App zu veröffentlichen, geht es dabei mehr als nur darum, Push-Benachrichtigungen für eine einzelne App in den App- oder Play-Stores einzurichten.

Daher wollen wir sicherstellen, dass die Nutzer des Projekts ordnungsgemäß durch den Prozess der Einrichtung geführt werden, damit alles reibungslos funktioniert.

7 „Gefällt mir“

Vielen Dank für all das Feedback, ihr alle. Lasst mich wissen, falls ihr noch weitere Fragen habt.

Übrigens habe ich vergessen zu erwähnen, dass wir heute auch einen Beitrag auf ProductHunt haben, der ziemlich gut läuft. Wenn ihr etwas Unterstützung zeigen möchtet, schaut gerne vorbei!

https://www.producthunt.com/posts/lexicon-2

1 „Gefällt mir“

Ah, okay. Danke für die Klärung! Lexicon klingt wirklich interessant. Ich freue mich schon auf die Tablet-Unterstützung!

Wenn ich eine Social-Media-Plattform auf Basis von Discourse entwickeln wollte, wäre Lexicon dafür ideal? Angenommen, Lexicon wird in Zukunft nicht auf Desktop-Plattformen verfügbar sein, wäre die Desktop-Unterstützung ein Hindernis.

1 „Gefällt mir“

Das klingt sehr spannend!

Ein paar Anmerkungen und Fragen:

  1. Es ist nicht klar, ob DiscourseConnect unterstützt wird; es könnte sich lohnen, das auf der Seite der unterstützten Funktionen zu ergänzen.

  2. Es gibt viele Optionen für die Installation von Prose, sowohl im Tutorial als auch in der Dokumentation. Ich vermute, dass dieses Material besser strukturiert werden könnte. Mir war nicht ganz klar, wie die SSL-Einrichtung funktionieren würde, wenn ich es so einfach wie möglich mit Ihrem Docker-Image machen wollte.

  3. Ich würde es gerne ausprobieren, aber es gibt keinen offensichtlichen Weg, dies zu tun. Wenn Sie eine App für Meta verfügbar machen würden, könnten wir das :slight_smile:

  4. Push-Benachrichtigungen und Deep Linking, wie Sie erwähnen, sind definitiv wichtige Funktionen in meinen Augen.

  5. Angesichts der Komplexität von Updates, App-Bereitstellung, Prose usw. denke ich schnell über einen kostenpflichtigen schlüsselfertigen gehosteten/unterstützten Service nach, bei dem Sie sich um alles kümmern. Es könnte sich lohnen, einen solchen anzubieten. Ich bin neugierig, wie die Preisgestaltung aussehen würde.

5 „Gefällt mir“

Zusammen mit der Tablet-Unterstützung, oder? :wink:

1 „Gefällt mir“

Das ist hervorragende Arbeit.

4 „Gefällt mir“

Hat Lexicon eine eigene Discourse-Community? Das GitHub-Repository ist zwar nett, aber man kann dort nicht wirklich angemessen über Lexicon diskutieren.

5 „Gefällt mir“

Hallo, es scheint ein Problem zu geben, wenn die Anwendung einen Beitrag lädt, der nicht-englische Zeichen enthält (z. B. chinesische Zeichen 中文). Ich vermute, dass dies mit der Unicode-Namen-Funktion von Discourse zusammenhängt (Unicode usernames and group names). Ich habe ein Issue eröffnet, um das detaillierte Fehlerprotokoll im GitHub-Repository zu hinterlegen:

1 „Gefällt mir“

Toll gemacht! Hast du bereits automatisierte Moderationslösungen integriert? Ich würde gerne den Missbrauch und Spam reduzieren, den ich in einigen Foren sehe.

Ich habe versucht, die Lexicon-Mobile-App gemäß dem Tutorial auf Lexicon zu konfigurieren. Nach Abschluss aller Schritte und dem Start der mobilen App für eine kostenlose Discourse-Instanz (https://meta.discourse.org/) erhalte ich folgende Fehlermeldungen auf dem Telefon und im Terminal-Log:

Terminal-Fehler:

Keine dieser Dateien existiert:

\generated\server\globalTypes(.native|.android.js|.native.js|.js|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx|.android.svg|.native.svg|.svg)

src\generated\server\globalTypes\index(.native|.android.js|.native.js|.js|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx|.android.svg|.native.svg|.svg)
 5 | import { DEFAULT_CHANNEL } from '../constants';
  6 | import { Text } from '../core-ui';
>  7 | import { TopicsSortEnum } from '../generated/server/globalTypes';
    |                                 ^
   8 | import {
  9 |   anchorToMarkdown,
 10 |   errorHandler,
2 „Gefällt mir“

Nach dem Einrichten des Projekts treten folgende Fehler wiederholt auf:

Ich habe http:// in MOBILE_HOST_PRONE angegeben, aber beim Ausführen der App auf dem Telefon wird dennoch ein Fehler angezeigt.

1 „Gefällt mir“

Außerdem tritt dieser Fehler auf:
Ihre Anwendung konnte nicht gestartet werden: keine registrierte Anwendung.

1 „Gefällt mir“