Skip to content

JakobMe/owlisch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OWLisch App

Eine iOS-App zum Lernen von Dialekt-Wörtern aus Ostwestfalen-Lippe. Diese App wurde von Jakob Metzger als Bachelor-Arbeit an der Universität Bielefeld entwickelt.

Inhaltsverzeichnis

Verwendete Ressourcen & Dienste

Im folgenden werden alle Ressourcen und Dienste aufgelistet, die von Drittanbietern stammen. Alle diese Ressourcen und Dienste sind für die private und kommerzielle Nutzung frei verfügbar.

Frameworks, Plugins & Module

JavaScript Bibliotheken

Web-Fonts

Sonstiges

Benötigte Software zum Bearbeiten des Projekts

Beteiligte Studierende an der Entwicklung des Konzepts

Folgende Studierende waren im Zuge des Seminars Mobile Learning an der Universität Bielefeld unter Leitung von Paul John an der Konzeption des ersten Prototypen von OWLisch beteiligt:

  • Tugba Aksakal
  • Miriam Belke
  • Melanie Derksen
  • Franziska Kluge
  • Lisa Kottmann
  • Kai-Frederik Lüking
  • Jakob Metzger
  • Philipp Niewöhner

Alle in der App enthaltenen Audio-Dateien wurden von Miriam Belke eingesprochen und bearbeitet.

Installation

Im folgenden wird beschrieben, wie das Projekt installiert und bearbeitet werden kann.

Initialisieren und Starten

Für die Installation werden zunächst NPM und Xcode benötigt. Als nächstes müssen per Kommandozeile einige Pakete installiert werden:

# Xcode Command Line Tools
xcode-select --install

# Node Module
npm install -g cordova
npm install -g jsdoc-to-markdown
npm install -g doctoc
npm install -g ios-sim

Um das Projekt anschließend zu initialisieren und ein lauffähiges Xcode-Projekt unter platforms/ios anzulegen, können folgende Befehle verwendet werden:

# Zunächst zum Projekt navigieren
cd /pfad-zum-projekt/owlisch

# Kurzfassung
npm run init

# Alternativ
cordova platform add ios
cordova build ios

Um die App in einem Emulator zu starten, können folgende Befehle verwendet werden:

# Kurzfassung
npm run emulate

# Alternativ
cordova emulate ios --target="iPhone-5s"

Alternativ dazu kann auch das Projekt unter platforms/ios direkt in Xcode geöffnet und ausgeführt werden; so erfolgt auch die Installation auf einem iPhone, falls eine gültige Apple Developer-ID vorliegt.

Um die JavaScript-Dokumentation des Projekts unter doc/readme.md zu aktualisieren oder diese Readme-Datei mit einem Inhaltsverzeichnis auszustatten, können folgende Befehle benutzt werden:

# doc/readme.md aktualisieren
npm run doc

# README.md um Inhaltsverzeichnis erweitern
npm run readme

Um die App zu bauen ohne sie im Emulator zu starten, kann folgender Befehl verwendet werden:

# Mit Dokumentation
npm run build

# Ohne Dokumentation
cordova build ios

Projekt bearbeiten

Um das Projekt zu bearbeiten, wird ein beliebiger Texteditor benötigt; zwingend erforderlich ist auch gulp, um alle Quelldateien unter src/ an der richtigen Ort unter www/ zu kopieren und gegebenenfalls zu kompilieren.

Dafür muss, wie oben bereits beschrieben, NPM installiert sein; anschließend kann gulp mit allen erforderlichen Modulen über folgende Befehle installiert werden:

# gulp global installieren
npm install -g gulp

# Alle Module für das Projekt installieren
npm install

Um gulp zu starten und im Hintergrund laufen zu lassen oder bestimmte Tasks manuell auszuführen können folgende Befehle verwendet werden:

# gulp starten
gulp

# www-Verzeichnis komplett neu erstellen
gulp all

# Einzelne Tasks ausführen (siehe gulpfile.js)
gulp <jshint|js|less|html|fonts|data|json|img|favicon|res>

Zu beachten ist, dass ausschließlich Dateien im src/ Verzeichnis bearbeitet werden dürfen; alle Dateien in www/ werden automatisiert erstellt und überschrieben, sobald die zugehörigen Quelldateien geändert werden und gulp bereits gestartet wurde!

Wörterbücher

Im folgenden wird beschrieben, wie man die bereits vorhandenen Wörterbücher um neue Begriffe erweitern kann und wie man neue Wörterbücher anlegt, die in der App ausgewählt werden können.

Neue Begriffe hinzufügen

Einem Wörterbuch können beliebig viele Begriffe hinzugefügt werden. Die Wörterbücher liegen als JSON-Dateien im Verzeichnis src/data/<alias>/<alias>.json vor, also z.B. src/data/owl/owl.json. Diese Wörterbuch-Dateien werden von Gulp minimiert und unter www/data/ abgelegt, z.B. www/data/owl/owl.json.

Eine solche Datei ist wie folgt aufgebaut:

{
    "alias": "Dateiname",
    "caption": "Anzeigename",
    "terms": [

    ]
}

Der Dateiname alias muss dabei dem echten Dateinamen des Wörterbuches entsprechen, der Anzeigename caption wird in der App so angezeigt, wie er definiert wurde (z.B. in der Wörterbuch-View oder im Quiz).

Die eigentlichen Begriffe des Wörterbuches werden im terms Array als JSON-Objekte in folgendem Format definiert:

{
    "alias"           : "kurzname",
    "article"         : "Artikel, optional",
    "term"            : "Anzeigename",
    "translation"     : "Übersetzung",
    "info"            : "Beschreibungstext",
    "answersNative"   : ["Deutsche Antwort", "..."],
    "answersForeign"  : ["Fremdsprachen-Antwort", "..."],
    "answersPictures" : ["Bild-Datei", "..."]
}
  • alias: Dient der Identifikation; er sollte nur Kleinbuchstaben und keine Sonderzeichen enthalten, aus Dönekens wird also z.B. doenekens. Eventuell vorhandene Bild- und Audio-Dateien müssen genauso heißen.
  • article: Der optionale Artikel des Begriffs, also der, die, das.
  • term: Der vollständige Anzeigename des Begriffs.
  • translation: Die vollständige Übersetzung des Begriffs.
  • info: Ein relativ kurzer Beschreibungstext mit näheren Informationen zum Begriff.
  • answersNative: Ein Array aus deutschen Wörtern, die im Quiz als falsche Antwortmöglichkeiten dienen; es müssen mindestens drei vorhanden sein.
  • answersForeign: Ein Array aus Fremdsprachen-Antworten, die im Quiz als falsche Antwortmöglichkeiten dienen; es müssen mindestens drei vorhanden sein.
  • answersPictures: Ein optionales Array aus Dateinamen für Bilder unter www/data/<alias>/image/<bild>.jpg; diese Bilder kommen im Quiz zum Einsatz, um als Antwortmöglichkeiten zu dienen. Es müssen mindestens drei Bilder angegeben werden und der Begriff muss selbst ebenfalls über ein Bild verfügen. Soll der Begriff über keine Bilder verfügen, muss ein leeres Array [] als Wert angegeben werden.

Um einen neuen Begriff hinzuzufügen, muss in der entsprechenden Datei ein neues Objekt mit den obigen Daten zum terms Array hinzugefügt werden:

"terms": [
    {
        "alias": "neu",
    },
]

Bilder und Audio-Dateien

Jedes Wörterbuch verfügt über seine eigenen Bild- und Audio-Dateien im entsprechenden Verzeichnis unter src/data/<alias>/image und src/data/<alias>/audio. Audio-Dateien müssen als .mp3 vorliegen, Bilder als .jpg mit einer Größe von 280x280px. Die Dateinamen müssen dabei immer dem Alias des zugehörigen Begriffes entsprechen; wenn also der Begriff Pinneken mit dem Alias pinneken über Dateien verfügen soll, muss es image/pinneken.jpg und audio/pinneken.mp3 geben.

Diese Dateien werden von Gulp automatisch in das www/data/ Verzeichnis kopiert und im Falle der Bilder auch komprimiert.

Beim Laden des Wörterbuches wird automatisch nach zugehörigen Dateien gesucht; gibt es kein Bild, sind bestimmte Quiz-Typen für diesen Begriff ausgeschlossen, ohne Audio-Datei fehlt der Button zum Vorlesen des Begriffes.

Soll es für einen Begriff möglich sein, ein Bilder-Rätsel im Quiz zu erhalten, müssen, wie oben erwähnt, entsprechende Bilder definiert werden. Auch hier müssen die definierten Bildnamen mit den Dateinamen übereinstimmen; sind z.B. folgende Bilder definiert,

"answersPictures" : ["schraube", "knopf", "schluessel"]

so müssen auch folgende Dateien existieren:

image/
    schraube.jpg
    knopf.jpg
    schluessel.jpg

Es müssen immer mindestens drei Bilder angegeben werden, da es im Quiz immer vier Antwortmöglichkeiten gibt und das eigentliche Bild des Begriffs ebenfalls eine Antwortmöglichkeit ist.

Ostwestfälisch-Wörterbuch

Für ein besseres Verständnis über die Struktur der Wörterbücher und Begriffe sollte man einen Blick auf das Hauptwörterbuch Ostwestfälisch unter src/data/owl/owl.json werfen.

In diesem Wörterbuch sind zum aktuellen Zeitpunkt folgende Begriffe vorhanden:

  1. angeschickert — „angetrunken“
  2. beömmeln — „sich totlachen“
  3. betuppen — „betrügen“
  4. Bollerbuchse, die — „Jogginghose“
  5. Bömsken, das — „Bonbon“
  6. Bütterken, das — „kleines Butterbrot“
  7. dölmern — „spielen“
  8. Dönekens, die — „Anekdoten“
  9. fickerich — „nervös“
  10. Knüpp, der — „Knoten“
  11. Kroppzeug, das — „Krempel“
  12. Latüchte, die — „Laterne“
  13. Mäse, die — „Hintern“
  14. Möttke, die — „Schlamm“
  15. Mürker, der — „Maurer“
  16. nöhlen — „meckern“
  17. nönkern — „Mittagsschlaf halten“
  18. öddelich — „dreckig“
  19. Pättkenschnüwer, der — „Moped“
  20. pecken — „kleben“
  21. Pillepoppen, die — „Kaulquappen“
  22. Pinneken, das — „Schnapsglas“
  23. plästern — „regnen“
  24. Pläte, die — „Glatze“
  25. Plüdden, die — „alte Klamotten“
  26. Pölter, der — „Schlafanzug“
  27. ratzen — „schlafen“
  28. Töffel, der — „Trottel“
  29. vermackeln — „beschädigen“
  30. wullacken — „schuften“

Wörterbücher hinzufügen

Um ein neues Wörterbuch hinzuzufügen, müssen zunächst alle erforderlichen Dateien unter src/data/ angelegt werden; ein Verzeichnis mit dem Kurznamen des Wörterbuches, eine entsprechende JSON-Datei mit dem gleichen Namen und die Verzeichnisse image und audio im Wörterbuch-Verzeichnis. Das sieht beispielsweise so aus:

data/
    bayerisch/
        audio/
            <audio.mp3>
            <...>
        image/
            <image.jpg>
            <...>
        bayerisch.json

Wie eine Wörterbuch-Datei aufgebaut ist und neue Begriffe hinzugefügt werden können ist bereits im Abschnitt Neue Begriffe hinzufügen erklärt worden. Audio-Dateien müssen als .mp3 vorliegen, Bilder als .jpg in der Größe 280x280px.

Zusätzlich dazu muss das neue Wörterbuch zur Liste der verfügbaren Wörterbücher in der Datei src/data/conf.json hinzugefügt werden; in dieser Datei befindet sich das Array dictionaries, welches wie folgt aufgebaut ist:

"dictionaries": [
    {
        "alias"   : "owl",
        "caption" : "Ostwestfälisch"
    },
]

Hier muss für das neue Wörterbuch ein neues Objekt zum Array hinzugefügt werden. Dabei entspricht alias dem Dateinamen des Wörterbuches (z.B. bayerisch), während caption der vollständige Anzeigename ist.

Um das neue Wörterbuch in die App zu integrieren, können die folgenden Befehle ausgeführt werden (wenn Gulp nicht ohnehin schon gestartet wurde):

gulp json
gulp data

Damit werden alle Dateien in das www/data/ Verzeichnis kopiert und im Falle von Bildern und JSON-Dateien zusätzlich minimiert.

Mit npm run build kann nun abschließend die iOS-App neu erzeugt und mit Xcode entweder auf einem iPhone installiert oder im Simulator gestartet werden.