Ver código fonte

finished inital text noah

Noah Vogt 3 anos atrás
pai
commit
0ddc66b5da
1 arquivos alterados com 28 adições e 2 exclusões
  1. 28 2
      vortrag/text.md

+ 28 - 2
vortrag/text.md

@@ -58,8 +58,34 @@ Das dahinterliegende Framework welches den App Entwicklern ermöglicht, Fenster,
 
 Es ist also wie eine Art Lego mit verschiedenen vorgefertigten Bauwerken, welche man kopieren kann und daraus eine Spielzeugsiedlung nach seinem Anspruch bauen kann. Naja, besser angebracht wäre eher von einer hochkomplexen, industriellen Gesellschaft zu sprechen als von einer Siedlung.
 
-## Datenbase noah
+## Database noah
 
 Eine Datenbank (engl. database) ist allgemein eine organisierte Ansammlung von strukturierter Information oder Daten, typischerweise digital auf einem Computersystem gespeichert, verwaltet und ausgewertet (nach [oracle](https://www.oracle.com/database/what-is-database/). Diese ist oft sehr ähnlich aufgebaut wie die für Endnutzer entwickelten graphischen Tabellenkalkulationsprogramme wie z.B. Libre Office, Google Docs oder Only Office.
 
-Eine standardisierte Form um Datenbankabfragen zu machen ist *SQL*, ausgeschrieben *Structured Query Language*
+Eine standardisierte Form um Datenbankabfragen zu machen ist *SQL*, ausgeschrieben *Structured Query Language*. Diese haben wir auch verwendet in unserer App.
+
+## Warum Java noah
+*Java* war seit langem die offizielle Programmiersprache für die Android App Entwicklung. Seit 2019 wurde die von Google entwickelte Sprache *Kotlin* als offizielle Sprache deklariert, da Google die Hauptprogammiersprache für ihr Android Projekt selbst kontrollieren wollten. Kotlin ist sehr ähnlich aufgebaut wie Java und hat verschiedene Vor- und Nachteile. Da wir aber schon im Ergänzungsfach Informatik hier am GKG Java benutzt und kennengelernt haben, sahen wir dies als Opportunität, unsere bisherigen Java-Kenntnisse einbringen zu können und diese weiterzubringen.
+
+## Was schlecht lief noah
+Da wir noch nie in der Androidentwicklungsumgebung gearbeitet haben, war uns klar, dass wir noch keine Bibliotheken kennen und diese erst noch suchen und finden müssen, sofern wir dieser brauchen. Während das bei den meisten Bibliotheken kein Problem war, stiessen wir nach gründlicher Suche auf keine mit Gradle funktionierende, ausreichend dokumentierte und/oder nicht veraltete Email Bibliotheken für Java.
+
+Als Notlösung mussten wir dann auf die mir bereits bekannte Python Bibliotheken zurückgreifen, doch dazu mussten wir erst mal einen Weg finden, Python Code in ein Java Programm einzubinden. Das ist natürlich eine unschöne Zwischenlösung, aber die Funktionalität hatte schliesslich oberste Priorität gehabt.
+
+## Server Connection noah
+
+![](../maturText/media/connection-diagram.png)
+
+Vereinfacht funktioniert der Versand von Emails in diesem Diagramm: Ein Nutzer, der eine Email versenden will, interagiert mit seinem Mail-Client und gibt durch ihn den Befehl, die Email zu versenden. Der Email Client verschickt die Mail an den SMTP Server des sendenden Nutzers, wo dieser zum SMTP Server des empfangenden Nutzers gelangt, von dort aus zu seinem IMAP oder POP3 Server. Wenn der Mail Client des Empfängers eine Anfrage an seinen SMTP / POP 3 macht, kann er diese einlesen und der Nutzer kann nun seine neue Email lesen.
+
+## Inspiration Design noah
+Wir haben uns die verschiedenen Email Client auf Android angeschaut und viel gutes und schlechtes gesehen. Es scheint als seien diese aus 70% guten und 30% schlechten Sachen zusammengesetzt. Wenn man diese verschiedenen Designprinzipien kombiniert, könnte man eine aus unseren Augen ziemlich passable Email App erschaffen. So gefiel uns das responsive und für die Mobilnutzung ziemlich ausgeklügelte Touch Interface bei Gmail, doch fanden wir es unnötig überladen und langsam. Während k9-mail eine schnelle UI (User Interface) bietet, so empfanden wir die grafische Oberfläche als sehr undurchdacht konzipiert. Bei Fairmail war das Interface dermassen überladen, dass wir gar nicht weiter nach anderen, möglichen Vorteilen gesucht haben.
+
+## Resultate: Vergleich mit ursprünglichen Zielen noah
+Das User Interface ist erfreulich gut im Einklang mit den ursprünglichen Zielen; es ist wirklich einfach ohne irgendwelchen unnötigen Schnickschnack. Um die Nutzerfreundlichkeit zu testen, haben wir Freunde und Bekannte eingespannt, damit diese die App testen. Dabei haben sie sich noch ziemlich gut zurechtgefunden, wenn man bedenkt, dass die App ja noch nicht fertig programmiert ist.
+
+Unsere App sollte ja *Free Software* werden, inklusive Bibliotheken. Doch da wir uns noch nicht so gut auskannten mit Gradle, schlich sich eine nichtfreie Library namen *chaquopy* ein. Diese ist zuständig für die Einbindung von Python Code in Java. Diese hatten wir aber in Zukunft sowieso schon geplant loszuwerden, da wir aus Performacegründen die Pythoneinbindung beenden wollten.
+
+Die wichtigsten Funktionen der App wurden erreicht, es können Emails geschrieben, gelesen werden, es bestehen verschiedene Mailboxen und jeder kann seine Email Accounts gut managen, also hinzufügen, ändern und entfernen. Gewisse Features, wie Pushnachrichten, Suchfunktionen, ein visuelles Attribut, wo zu sehen ist, ob eine Nachricht gelesen wurde, fehlen noch ganz. Funktionen wie die Einstellungen, das synchronisieren der Datenbank mit dem Mailserver und die Anhangs-Funktionalität sind noch nicht fertiggestellt. Diese stellen aber soweit kein absehbare Schwierigkeiten dar bei der Weiterentwicklung.
+
+Insgesamt haben wir also doch das meiste und wichtige erreichen können, was ein Emailclient auf einem Smartphone so haben muss. Das motiviert uns natürlich für die weitere Entwicklung und Vollendung des Projekts *snailmail*.