Erleben Sie die Entwicklung einer kostenlosen Anwendung für OpenNumismat-Sammler

Ich möchte meine Erfahrungen bei der Entwicklung einer Desktop-Anwendung für Open Source-Sammler teilen.

Aufgrund meiner Haupttätigkeit entwickle ich Software für eingebettete Systeme und überschneide mich selten mit Endbenutzern. Daher werden wir über die Funktionen sprechen, auf die ich bei der Entwicklung einer nichtkommerziellen Anwendung für eine breite Palette von Benutzern gestoßen bin, was für mich zu einer Entdeckung wurde.

Bild

Beschreibung


OpenNumismat soll, wie der Name schon sagt, in erster Linie für das Sammeln von Münzen verantwortlich sein. Es eignet sich aber auch für andere Arten des Sammelns - Briefmarken, Karten, Abzeichen und exotischere Dinge.

Die Anwendung ist in Python geschrieben, die Datenbank verwendet SQLite zum Speichern von Daten, PyQt wird für die Schnittstelle, den Zugriff auf Daten und vieles mehr verwendet, Jinja2 wird zum Generieren von Berichten verwendet und Matplotlib wird zum Erstellen von Statistikdiagrammen verwendet. Trotz meiner anfänglichen Skepsis erwies sich dies als ausreichend, um eine akzeptable Leistung sicherzustellen - mehrere tausend Datensätze mit Bildern werden ohne merkliche Bremsen verarbeitet.
Da alle Komponenten plattformübergreifend sind, verfügt OpenNumismat auch über Assemblys für Windows, Linux (Debian / Ubuntu) und MacOS.

Es gibt auch eine Android-Version, die derzeit aufgegeben wird. Es wurde durch PWA (Progressive Web App) ersetzt, mit der Sie Ihre Sammlung in jedem Browser anzeigen können - SQLite.js wird verwendet. Es stellte sich als viel einfacher heraus, PWA zu entwickeln, um eine native Android-Anwendung mit ähnlichen Funktionen zu erstellen. Darüber hinaus ist es sofort auf allen Plattformen verfügbar.

Wettbewerber


Mittlerweile gibt es viele Anwendungen für Sammler und insbesondere für Numismatiker. Die meisten von ihnen "sehen aus, als hätte jemand ihre erste Version von Firefox bekommen und sie benutzt."

In den USA verwenden viele kommerzielle Software, deren unbestrittener Vorteil zweifellos die Verfügbarkeit vorgefertigter Datenbanken vorhandener Münzen ist. Der Benutzer kann nur die verfügbaren Münzen markieren und die Kaufinformationen eingeben - Preis, Datum usw.

Ähnliche Funktionen bieten mobile Anwendungen (die meisten für Android) und Webdienste. OpenNumismat konzentriert sich mehr darauf, einen Katalog seiner eigenen einzigartigen Sammlung zu erstellen, als "Löcher in das fertige Album zu schließen", wie es einige Numismatiker ausdrückten.

Der Hauptkonkurrent ist jedoch Microsoft. Die überwiegende Mehrheit der Sammler verwendet Excel, obwohl es mit Bildern nicht gut funktioniert. Einige verwenden auch Access oder 1C und erstellen eine eigene Sammlungsdatenbank mit allem, was sie benötigen. Aber es bedarf noch einiger Vorbereitung.

Um Benutzer anzulocken, werden Importe aus den beliebtesten Alternativen implementiert.
Für Linux und MacOS gibt es für diese Plattformen praktisch keine Analoga.

Die Vorteile der Offenheit


Der Hauptvorteil von Open Source Code war die Möglichkeit, Dienste von Drittanbietern für die kostenlose Verteilung, Übersetzung und Fehlerverfolgung zu nutzen. Pull-Anfrage, zu meinem Leidwesen gab es nur drei.

Unerwartet für mich war ein weiterer Vorteil die potenzielle Gelegenheit, Skeptiker von der Sicherheit des Programms zu überzeugen - sie sagen in den Foren, dass sie den Code mit grep überprüft haben und es keinen Verdacht gibt.

Umgebung verwendet


Ursprünglich wurde Google Code für die Verbreitung von OpenNumismat ausgewählt, das eine bequeme Fehlerverfolgung, ein mehrsprachiges Wiki zur Dokumentation, das Herunterladen von Binärdateien und natürlich ein Git-Repository bietet. Aber ab 2013 begann Google Code zu sterben. Für den Umzug wurde zwischen SourceForge und GitHub gewählt. Beide Dienste bieten die Möglichkeit, Projektsites zu erstellen (die Dokumentation aus dem Wiki musste auf den statischen Seiten der Site überarbeitet werden), aber das Herunterladen von Binärdateien von SourceForge sieht für einen unvorbereiteten Benutzer beängstigend aus. Daher fiel die Wahl auf GitHub.

Für den GitHub-Bug-Tracker ist eine Registrierung erforderlich, was für Benutzer, die weit vom Programmieren entfernt sind, nicht so praktisch ist. Daher wurde beschlossen, einen Drittanbieter-Service zu nutzen. Idea.Informer (Reformal für ein russischsprachiges Publikum) wurde gefunden - ein kostenloser und praktischer Dienst, der sich derzeit jedoch nicht entwickelt und dies zu einer Reihe von Schwierigkeiten führt (Idea.Informer sendet keine Briefe mehr und unterstützt kein SSL).

Zunächst unterstützte OpenNumismat Englisch und Russisch. Ein Jahr nach der ersten Veröffentlichung aus Venezuela ging jedoch ein Vorschlag zur Übersetzung ins Spanische ein. Dann kamen Übersetzungsangebote in andere Sprachen. Die Übersetzung wurde zunächst mit dem Qt Linguist Tool durchgeführt. Für die Bequemlichkeit von Freiwilligen wird jetzt ein Onlinedienst verwendet, der eine bequeme Infrastruktur für offene Projekte bietet. OpenNumismat ist derzeit in 15 Sprachen übersetzt.

Um OpenNumismat zu promoten, musste ich einige der Tricks von CEOs studieren. Mit semantischem Markup konnte ich die Anzeige der Anwendungsseite in Suchmaschinen fördern und verbessern.

Probleme mit der Bibliotheksversion


Für die Windows-Version wird derzeit PyQt Version 5.5.1 verwendet. Der Wechsel zu einer neueren Version wird durch das Ersetzen von Qt WebKit durch Qt WebEngine erschwert, das immer noch nicht weiß, wie gedruckte Seiten für die Arbeit mit Berichten in der Vorschau angezeigt werden.

Ein Übergang ist erforderlich, um Qt-Diagramme zum Erstellen von Statistikdiagrammen zu verwenden, ist jedoch in der verwendeten Version nicht verfügbar. Natürlich hätten Sie es auch separat sammeln können, aber Ihre Hände haben es nicht erreicht. Daher wird für Statistiken das Python-Paket Matplotlib verwendet.

Außerdem unterstützen neuere Versionen von Python Windows XP nicht, das immer noch von einer kleinen Anzahl von Benutzern verwendet wird.

Die Linux-Version kann im Allgemeinen eine beliebige Kombination von Versionen von PyQt, Python, Matplotlib verwenden. Daher funktionieren Statistiken bei einigen Konfigurationen möglicherweise nicht, bei anderen ist das Anzeigen von Berichten eingeschränkt.

Es gab zwei Möglichkeiten, auf macOS aufzubauen: Verwenden Sie den offiziellen Python-Build mit den erforderlichen Paketen oder MacPorts. In der ersten Version treten die beschriebenen Probleme mit Berichten auf, der Erstellungsprozess konnte nicht vollständig konfiguriert werden, in der zweiten gab es Probleme mit Matplotlib, aber MacPorts hat die neueste Version von PyQt mit Qt WebKit erstellt. Derzeit wird die MacPorts-Option verwendet.

Ich möchte auch darauf hinweisen, dass SQLite keine Standard-Nicht-ASCII-Zeichen unterstützt. Dies verursachte Probleme beim Sortieren von Benutzern mithilfe von Alphabeten, bei denen andere Symbole als Latein und Russisch verwendet wurden (z. B. Ukrainisch und Katalanisch - Benutzer dieser Länder haben das Problem besonders berücksichtigt). Das Übertragen der Sortierung von SQL-Abfragen auf Qt löste nicht nur das Problem, sondern verbesserte auch die Leistung.

Rückkopplung


Feedback und Feedback sind der angenehmste Teil des Jobs. Das Beste ist, dass OpenNumismat von der spanischen numismatischen Gemeinschaft akzeptiert wurde. Die Russen überraschten mich mit Kritiken wie: "Das Programm wartet darauf, dass die Sammlung so voll wie möglich ist, und berichtet dann, wo es nötig ist." Anscheinend Angst vor "russischen Hackern". Oft muss man sich bei Skeptikern entschuldigen, die OpenNumismat nicht einmal nutzen werden - das ist manchmal frustrierend.

Viele Benutzer schreiben nur, um sich zu bedanken, neue Ideen anzubieten und um Hilfe zu bitten, um die Anwendung zu verstehen. Die meisten von ihnen beschreiben Fehler und Probleme in der Anwendung, die zweifellos häufig auftreten, weil die Entwicklung und das Testen von einer Person durchgeführt werden.

Die häufigste Frage lautet: "Ich habe eine Demoversion, wie ich die vollständige Version bekomme." Dies liegt an der Tatsache, dass Sie beim ersten Öffnen einer Demo-Datenbank namens Demo. Anscheinend ist dies für neue Benutzer sehr verwirrend.

Sehr oft schlagen sie vor, sehr spezifische Funktionen hinzuzufügen, die für einzelne Benutzer nützlich sein können, für die meisten jedoch völlig unnötig und kompliziert erscheinen. Oder es ändert die Grundlogik der Datenorganisation. Man muss solche Angebote ablehnen oder die Nachricht häufiger ignorieren.

Manchmal erhalte ich Fehlermeldungen, die ich nicht reproduzieren kann. Wenn Kontakt mit dem Benutzer hergestellt wird, ist das Problem normalerweise nach einigen Korrespondenz- und gemeinsamen Experimenten gelöst. Manchmal ist es nicht möglich, Kontakt aufzunehmen, und der Fehler bleibt unkorrigiert und wird möglicherweise nicht mehr bemerkt.

Auch Briefe stammen von den Machern numismatischer Websites und elektronischer Kataloge, die versuchen zu revolutionieren, aber es gibt bisher keine nennenswerten Fortschritte.

Fazit


Die Entwicklung dauert seit über 6 Jahren an. Es wurde viel erreicht, aber die Anwendung ist noch lange nicht perfekt. Es gibt noch viele weitere Ideen, die ich umsetzen möchte.

Positives Feedback zu erhalten ist sicherlich nett und ich möchte ein wirklich nützliches Tool für Benutzer erstellen. Und da ich selbst ein aktiver Benutzer von OpenNumismat bin, werde ich hier nicht aufhören.

Source: https://habr.com/ru/post/de439626/


All Articles