Erstellen einer App mit supabase und ionic – 2. Datenbank: Tabelle definieren

Um Daten zu speichern, benötigen wir eine Datenbank mit verschiedenen Tabellen. Jede Tabelle ist dabei der Platzhalter für alle Instanzen eines Objektes.

Wir möchten eine App zum Tracken von Haushalts-Ausgaben bauen. Daher benötigen wir zunächst eine Tabelle zum Speichern der einzelnen Ausgaben.

Eine Ausgabe hat dabei folgende Eigenschaften:

id – eine eindeutige Kennzeichnung

name – Name der Ausgabe

project_id – dies ist die eindeutige id des übergeordneten Projektes, zu dem die Ausgabe gehört

Wert – die Höhe der Ausgabe, wobei ein Wert von 100 1,00 Euro entspricht

date_of – Datum, wann die Ausgabe entstand.

Dies ist der SQL-Befehl zum Erstellen der Tabelle. Die Anweisung as Identity hinter id stellt sicher, dass die id eindeutig ist.

create table expenses (
id bigint generated by default as identity primary key,
name text check (char_length(name) > 0),
project_id bigint not null,
value int,
date_of timestamp not null
);

project_id soll sich auf ein Übergeordnetes Projekt beziehen, allerdings existiert noch keine Tabelle mit Projekten, weshalb wir die Beziehung hier noch nicht herstellen. Wir werden später noch folgende Ergänzung hinzufügen:

project_id bigint references projects on delete cascade  not null

Um supabase nun dazu zu bringen, die Tabelle im Backend anzulegen, werden sogenannte Migrations oder Migrations-Dateien angelegt. Das hat den Vorteil, dass wenn wir das System auf eine andere Umgebung bringen – zum Beispiel von der lokalen Entwicklung-Umgebung, die auf unserem lokalen Rechner läuft, auf eine Produktiv-Umgebung, werden bei dem Deployment diese Migrationen automatisch ausgeführt und somit die Datenbank-Tabellen auch auf der neuen Umgebung angelegt.

Bei professioneller Software-Entwicklung gibt es natürlich noch mehr Umgebungen, wie zum Beispiel eine im Intranet verfügbare Entwicklungs- und eine Stageing- oder Testing-Umgebung, über die kollaborativ an der Software gearbeitet werden kann.

Für unser Projekt verwenden wir aber nur eine lokale Entwicklungs-Umgebung. Später werde ich dann noch zeigen, wie diese lokale Umgebung dann in Produktion gehen kann, damit wir sie global verfügbar machen können.

Um ein Migrations-File anzulegen, benötigen wir folgenden Befehl:

supabase migration new create_expenses_table

Wir finden die neu erstellte Datei unter supabase/migrations/<timestamp>_create_expenses_table.sql.

Hier fügen wir nun unseren SQL-Befehl von oben ein und speichern die Datei.

Der folgende Befehl führt dazu, dass alle Migrationen ausgeführt werden:

supabase db reset

Jetzt können wir im Dashboard die neue Tabelle sehen:

http://localhost:54323/project/default/editor

Datenbank mit Inhalt füllen

Wir können die Datenbank initial mit Daten befüllen. Dazu können wir folgenden Befehl in der Datei supabase/seed.sql einfügen:

insert into
public.expenses (name, value, project_id, date_of)
values
(‚Benzin‘, 10000, 1, ‚2022-02-25 15:37:39‘),
(‚Supermarkt‘, 5000, 1, ‚2022-02-25 15:37:39‘),
(‚Miete‘, 20000, 2, ‚2022-02-25 15:37:39‘),
(‚Essen gehen‘, 3000, 2, ‚2022-02-25 15:37:39‘);

per supabase reset wird dann auch dieser SQL-Befehl angewendet.

Erstellen einer App mit supabase und ionic – 1. Einrichten der lokalen supabase Instanz

Da wir möglichst unabhängig sein wollen, von einer Internetverbindung und unser System testen können möchten, ohne dass uns ein eventuell unzuverlässiges System dabei behindert, ist es hilfreich, eine lokale Instanz von supabase zu installieren.

Dazu benötigen wir unter macOS/Linux Homebrew. Unter Windows brauchen wir Scoop.

Als nächstes wählen wir das Verzeichnis aus, in dem wir unsere App entwickeln möchten. Dort geben wir folgenden Befehl ein.

macOS/Linux:

brew install supabase/tap/supabase

win:

scoop bucket add supabase https://github.com/supabase/scoop-bucket.git
scoop install supabase

Als nächstes benötigen wir Docker Desktop, da supabase in einem lokalen Docker-Image ausgeführt wird.

Immer noch in unserem Projekt-Verzeichnis, geben wir folgenden Befehl ein:

supabase init

Wir sehen nun, dass in ein neues Verzeichnis supabase erstellt wurde.

Um supabase zu starten, tippen wir:

supabase start

Nachdem wir nun gewartet haben, dass der supabase Docker-Container heruntergeladen und gestartet wurde, sehen wir im Terminal eine Übersicht über die Adressen der verschiedenen Komponenten, aus denen supabase besteht

Um die Benutzeroberfläche der lokalen Instanz im Browser zu öffnen, interessiert uns die Studio URL:

http://localhost:54323/

oder

http://127.0.01:54323

mit

supabase stop

kann die Ausführung der lokalen Instanz wieder beendet werden.

Im nächsten Artikel schauen wir uns an, wie wir mit supabase unsere Daten in einer Datenbank speichern können.

Erstellen einer App mit supabase und ionic

supabase ist eine Open Source basierte Alternative zu Firebase. Das Framework bietet eine All-In-One Backend-Lösung mit Datenbank, Authentifizierung und Geschäftslogik in Form von einzelnen unabhängigen Funktionen, die per REST-Schnittstelle angesprochen werden können.

Als Datenbank wird POSTgres verwendet, das durch die integrierte Row Level Security die Autorisierung des Daten-Zugriffs sicherstellt.

Die Nutzer-Authentifizierung unterstützt Single Sign On und eine Vielzahl an Anmelde-Verfahren, wie zum Beispiel Login via Magic-Link oder Telefon.

Ich werde in einer Folge von Artikeln Schritt-für-Schritt-Anleitungen zur App-Entwicklung mit dem Tech-Stack supabase, ionic und Angular erstellen.

Hier geht es zum nächsten Teil: Einrichten der lokalen supabase Instanz.

Tauchcomputer

Der Tauchcomputer ist meiner Meinung nach das erste Ausrüstungs-Teil, das sich anzuschaffen lohnt, am besten schon vor dem Beginn des Kurses.

Auch wenn Ihr vorhabt, nur im Urlaub zu tauchen und Euch keinerlei eigenes Equipment anzuschaffen, solltet Ihr überlegen, zumindest einen eigenen Tauchcomputer mitzunehmen.

Zum Einen braucht es eine gewisse Eingewöhnung, bis ihr Euch auf Eurem Tauchcomputer zurechtfindet. Jeder Tauchcomputer ist ein bisschen anders in der Nutzung und gerade als Anfänger überfordert es schnell, wenn sich das Modell jeden Urlaub oder an jeder Tauchbasis ändert – womöglich noch bei jedem Tauchgang, was gerade beim Open-Water-Diver der Fall sein kann.

Als ich meinen SSI-OWD Kurs gemacht hatte, war es sogar so, dass ich nur an einem einzigen Tauchgang einen Computer zur Verfügung hatte – das Brevet verlangt zur Zertifizierung einen einzigen Tauchgang mit Tauchcomputer. Hier wäre es sinnvoll gewesen, hätte ich an jedem Tauchgang einen Computer dabei gehabt, um mich im Umgang damit einzugewöhnen.

Eine weitere wichtige Funktion eines Tauchcomputers ist, die Entsättigung des Gewebes zwischen den Tauchgängen zu monitoren und nicht zuletzt die No Fly Time nach dem letzten Tauchgang zu überwachen.

Worauf sollte beim Kauf eines Tauchcomputers geachtet werden?

Jeder Tauchcomputer zeigt natürlich die aktuelle Tiefe, die beim Tauchgang maximal erreichte Tiefe, die verbleibende Zeit für einen Nullzeit-Tauchgang und Wassertemperatur an. Hinzu kommen die Anzeige der Temperatur und die Möglichkeit, die Einheiten von metrische auf amerikanische umzustellen. Auch eine beleuchtete Anzeige ist inzwischen Standard.

Auch wenn Anfänger – und auch viele Erfahrene Taucher – auf die Berechnung von Nitrox-Tauchgängen verzichten können, gibt es kaum noch einen Tauchcomputer, der keine Umstellung auf mit Sauerstoff angereicherte Luft anbietet.

Eigentlich alle modernen Tauchcomputer bieten zudem die Möglichkeit, sie in einen Gauge-Modus, geeignet für das Apnoe-Tauchen, zu versetzen.

Tauchcomputer für technisches Tauchen ermöglichen die Definition verschiedener Gas-Mixe, inklusive Helium, um während eines Tauchganges auf verschiedene Flaschen umzustellen. Ein Feature, dass definitiv nicht auf der Must-Have-Liste selbst des ambitioniertesten Tauchanfängers steht und auch die Mehrheit erfahrener Taucher wird solch ein Feature in ihrem Taucherleben nicht vermissen.

Ein weitere Frage ist, ob der Tauchcomputer Luftintegriert sein soll oder nicht. Das bedeutet, dass der Computer den aktuellen Füll-Druck der Flasche ablesen und verarbeiten kann – entweder per Schlauchverbindung oder mittels eines Funksenders. Eine Glaubensfrage – zum Einen bekomme ich als Taucher mehr Informationen. Dagegen spricht, dass ein Sensor oder Schlauch nur einen weiteren möglichen Point-Of-Failure darstellt.

Schön ist es auch, wenn der Tauchcomputer mit dem eigenen Rechner oder Smartphone verbunden werden kann, entweder per Bluetooth oder USB, zum Beispiel um die Tauchgänge in Subsurface nachzubereiten.

Tatsächlich sind fast alle diese Features für einen Anfänger ziemlich überkandidelt – aus meiner Sicht ist vor allem die folgenden Punkte entscheidend:

Batterie kann selber getauscht werden oder ist wiederaufladbar.

Es ist nicht nur Zeit- und Kostenintensiv, wenn der Tauchcomputer regelmäßig beim Händler abgegeben werden muss, um die Batterie zu tauschen. Auch kann es sehr ärgerlich sein, wenn während eines Tauchurlaubs die Batterie versagt und der Computer für ein paar Tauchgänge ausfällt – oder noch schlimmer für den Rest des Urlaubs, da das Modell nicht vom lokalen Dive Center gewartet werden kann.

Kann die Batterie selbst getauscht werden, gibt es dieses Probleme nicht – vorausgesetzt eine Ersatzbatterie und O-Ring sind dabei.

Armband kann getauscht werden

Viele Tauchcomputer haben ein fest installiertes Armband oder eine Befestigung, die nicht kompatibel ist mit normalen Uhrenbändern. Durch das Salzwasser und die Sonneneinstrahlung werden Silikonarmbänder häufig von einem auf’s andere Mal porös und brechen. Es wäre Verschwendung, wenn ein gut funktionierender Tauchcomputer nicht mehr verwendet werden kann, nur weil es keinen Ersatz für das gebrochene Armband gibt.

Aber welchen Tauchcomputer soll ich nun konkret kaufen

Ich versuche hier eine Übersicht über aktuelle Einsteiger-Modelle und günstige Schnäppchen die man mit älteren gebrauchten Geräten machen kann zu geben.

Vorgestellte Modelle:

Cressi Leonardo

Der wahrscheinlich am häufigsten anzutreffende Tauchcomputer bei Einsteigende und Urlaubs-Tauchenden.

Wichtigste Features: Tiefenmessung bis 120 m / 393 ft, Batterie kann selber getauscht werden, Armband ist austauschbar, allerdings nur mit speziellen Cressi-Armbändern. Aufgrund der großen Verbreitung sollten diese aber noch viele Jahre verfügbar sein. Großes, gut ablesbares Display mit Beleuchtung. Nitrox bis 50 % Sauerstoff.

Neupreis um ca. 200,– Euro (Affiliate Link)

Ein Datenkabel zum Auslesen des Dive Logs am Computer muss extra gekauft werden und kostet noch einmal gut 90,– Euro. (Affiliate Link)

Bei eBay wird die Batterie zusammen mit einem neuen O-Ring und passendem Gehäuse-Verschluss verkauft (Affiliate-Link). Da ich den Cressi Leonardo nicht selber besitze, weiß ich nicht, ob der Deckel bei jedem Batterie-Tausch auch gewechselt werden muss. Wenn ja, wäre das für mich schon fast ein Ausschluss-Kriterium. Vielleicht kann ja jemand seine Erfahrungen dazu mitteilen – über einen Kommentar freue ich mich.

Mares Puck Pro

Ein weiterer robuster Tauchcomputer für Einsteiger. Der mares Puck Pro bietet ein großes, übersichtliches und gut ablesbares Display, das allerdings etwas kleiner ist, als das vom Cressi Leonardo.

Nitrox und Apnoe Modus sind verfügbar und als besonderes Feature kann während des Tauchens zwischen zwei verschiedenen Gasen umgestellt werden – was normalerweise nur teure Modelle für das Tec Tauchen können.

Außerdem kann die Tiefenmessung auf Süßwasser umgestellt werden und das Tauchen in Bergseen berechnet werden, zusammen mit den daraus resultierenden angepassten Null-Zeiten.

Positiv ist auch, dass der USB-Adapter zum Auslesen des Dive-Logs bereits dabei ist und nicht extra gekauft werden muss.

Der Mares Puck Pro hat außerdem den Vorteil, dass hier die Standard Lithium Batterie vom Typ CR2450 passt und selbst gewechselt werden kann.

Ebay Angebote von Mares Puck Pro Batterien inklusive O-Ring (Affiliate-Link).

Mares Puck Pro bei Amazon (Affiliate-Link).

Der Suunto Dive Zoop Novo ist der letzte von den drei populärsten aktuellen Einstiegs-Modellen, die ich hier vorstelle.

Suunto Dive Zoop Novo bei Amazon (Affiliate-Link).

Seemann XP 5 (Oceanic Veo 250)

Dieser Tauchcomputer ist das älteste hier vorgestellte Modell und dementsprechend nur noch gebraucht erhältlich, stellt dafür aber den günstigsten Einstieg in die Welt der Tauchcomputer dar. Er ist gebraucht mit etwas Glück schon für 30,– Euro zu haben.

Er bietet Nitrox bis 50 %, kann auch im Apnoe-Modus verwendet werden und die Batterie kann selber getauscht werden.

Hinzu kommt ein gut lesbares Display und einfache Menü-Führung. Auch ist das Display mit einer Hintergrundbeleuchtung versehen, die allerdings häufig nach ein paar Jahren Gebrauch ausfällt. Aus meiner Sicht ist das kein Problem, da entweder genügend Licht vorhanden ist oder, wenn es so dunkel ist, dass ein beleuchtetes Display notwendig wird, eh eine Taschenlampe mitgeführt wird, mit der das Display leichter und schneller beleuchtet wird, als mit der Display-Beleuchtung.

Außerdem lässt sich das Armband gegen ein Standard-Armband in einer Breite von 25 mm tauschen, zum Beispiel gegen ein genügend langes NATO-Strap.

Passendes Armband bei Ebay kaufen (Affiliate-Link).

Was mir besonders gefällt ist, dass der Computer den Countdown für den Sicherheitsstop sofort startet, wenn auf die entsprechende Tiefe aufgetaucht wurde.

Leider ist der XP5 nicht zum Tauchen in Bergseen geeignet.

Neben der unzuverlässigen Hintergrund-Beleuchtung wird häufig die kurze Batterie-Lebensdauer bemängelt. Allerdings handelt es sich um eine Standard Lithium Batterie von Typ CR2450, die günstig auf Vorrat gekauft werden kann (Affiliate-Link).

Bei Ebay gibt es viele günstige Angebote von passenden Batterien inklusive neuem O-Ring (Affiliate-Link).

Zum Verbinden mit dem Rechner wird ein zusätzliches Datenkabel benötigt, das leider kaum noch zu bekommen ist. Es kann auch das Datenkabel vom baugleichen Oceanic Veo 250 bzw. von den kompatiblen Modellen Veo 180NX, Veo 200, Veo 2.0, Veo 3.0 oder VT3 verwendet werden.

Wer genre bastelt, kann sich aber auch für unter 10,– Euro ein Datenkabel nach dieser Anleitung selber bauen – allerdings ist das nicht wirklich komfortabel. Dann lassen sich die Logs aber zum Beispiel in Subsurface importieren.

Anleitung zur Reparatur des XP 5, sollte einmal Wasser eingedrungen sein.

Der Seemann XP 5 kam schon ca. 2001 als Oceanic Veo 250 auf den Markt, bietet aber immer noch alles, was für den Einstieg benötigt wird, außer Bergsee-Tauchen.

SubGear XP 10

Seemann wurde 2007 in Subgear umbenannt und hat mit dem XP 10 einen umgelabelten Uwatec Aladin Prime auf den Markt gebracht.

Der XP 10 unterstützt einen Apnoe und einen Gauge-Mode, Bergsee-Tauchen, Nitrox bis 50 % Sauerstoff, ein beleuchtetes Display und eine Batterie, die selber getauscht werden kann.

Die Batterie ist auch beim XP 10 vom Typ CR2450 und ist günstig bei eBay erhältlich, inklusive neuem O-Ring (Affiliate-Link).

Leider lässt sich das Armband nicht gegen ein Standard-Armband tauschen. Es gibt aber eine passende Halterung für den Uwatec Aladin 2G, die mit Bungees am Arm befestigt wird – eine bevorzugte Methode unter Tec-Divern.

Bungee-Mount bei Ebay (Affiliate-Link).

Bungee-Mount bei Jonas Dive.

Bungee-Mount bei divezone.pl.

Bungee-Mount bei oceandive.dk.

Mit etwas Glück findet sich auch noch das original XP 10 Armband:

XP 10 Armband bei eBay(Affiliate-Link).

Der SubGear XP 10 / Aladin Prime kann leider nur per IrDA-Infrarot-Schnittstelle mit dem PC verbunden werden. IrDA ist ein Standard, der schon lange nicht mehr zur Datenübertragung am PC verwendet wird. USB-IrDA-Schnittstellen können aber noch vereinzelt gefunden werden.

Subsurface bietet eine enorme Fülle an Tauch-Log Funktionen, mit der unter anderem die Gewebe-Sättigung während des gesamten Tauchgangs nachvollzogen werden kann. Über den Umweg Virtuelle Maschine und Export in die Cloud können die Daten auch in die Mac-Version übertragen werden.

eBay Suche nach IrDA-Sticks (Affiliate-Link).

Mit einer passenden Infrarot-Schnittstelle kann der XP 10 zum Beispiel mit dem Open-Source Tool Subsurface ausgelesen werden. Allerdings nur unter Windows, da Subsurface unter Mac und Linux keine Infrarot-Schnittstellen unterstützt. Eine Möglichkeit unter Mac ist, Subsurface in einer virtuellen Windows-Installation auszuführen.

SubGear XP 10 mit Display-Schutz – der wird im Wasser fast unsichtbar, auch wenn er wie hier schon etwas verkratzt ist.

Tatsächlich lässt der XP 10 selbst für einen ambitionierten und erfahrenen Taucher kaum Wünsche offen und sollte ein Taucherleben lang ausreichen.

eBay Suche nach dem SubGear XP 10 (Affiliate-Link).

eBay Suche nach dem Uwatec Aladin Prime (Affiliate-Link).

SubGear XP 3G / Uwatec Aladin Tec 3G

Mehr Funktionen braucht eigentlich kein Tauch-Computer. Und selbst als der XP 3G / Tec 3G noch neu zu kaufen war, gab es in der Preisklasse nichts vergleichbares.

Natürlich bietet der 3G alles das was auch der XP 10 an Funktionen bereitstellt (Gauge/Apnoe-Mode, Bergsee-Tauchen, Nitrox, beleuchtetes Display, User-Tauschbare-Batterie – auch hier vom bewährten Typ CR2450).

Hinzu kommt von Haus aus ein Bungee-Mount, integriert in der Armband-Halterung.

Außerdem ist der XP 3G / Tec 3G – wie der Name schon vermuten lässt – Tec tauglich: es lassen sich 3 verschieden Gase definieren, die während des Tauchgangs umgeschaltet werden können – dabei auch Nitrox bis 100 % Sauerstoff. Er kann außerdem für CCR-Systeme (Rebreather) verwendet werden. Einzig Helium-Gemische können mit dem Computer nicht getrackt werden.

Ausrüstung für Einsteiger in das Gerätetauchen / Scuba Tauchen

Bei kaum einer anderen Sportart gibt es eine so hohe Abhängigkeit von der Qualität und Zuverlässigkeit der Ausrüstung wie beim Gerätetauchen. Daher sollte sich die Ausrüstung für Einsteigende in das Scuba-Tauchen nicht wirklich unterscheiden, vom Equipment erfahrener Tauchenden.

Gute Qualität ist begehrt und kostet Geld. Dazu kommt, dass sich Einsteigende in den Tauchsport mit der Situation konfrontiert sehen, das komplette Eqiupment besorgen zu müssen, also eine sehr hohe Einstiegs-Investition brauchen.

Hinzu kommt, dass Equipment häufig auch von den persönlichen Vorlieben abhängt. Womit der eine Taucher gut zurechtkommt, fühlt sich der oder die nächste nicht wirklich wohl. Es ist daher manchmal unerlässlich, verschiedene Modelle auszuprobieren, um herauszufinden, was für einen selber gut funktioniert.

Eine Möglichkeit, mit dem Problem umzugehen, ist, das Equipment gebraucht zu kaufen. Es gibt so viele Angebote von wenig bis fast gar nicht gebrauchter Ausrüstung. Zwar wird im Netz häufig die Meinung vertreten, dass gebrauchte Ausrüstung keine gute Wahl sei.

Meine Erfahrung war jedoch, dass weder erfahrene Tauch-Buddies noch Service-Werkstätten jemals ein Problem damit hatten, dass ich gebrauchtes Material anschleppte. Allgemein lässt sich sagen, dass Tauch-Ausrüstung darauf ausgelegt ist, auch dann noch zuverlässig zu funktionieren, wenn sie intensiv, mehrmals täglich über viele Jahre genutzt wird – ansonsten müssten sich Tauchbasen sehr viel häufiger neues Gerät kaufen.

Auch wenn auf ein paar Dinge geachtet wird, lässt sich beim Gebraucht-Kauf gutes und zuverlässiges Equipment zu sehr niedrigen Preisen erstehen.

Und gerade, um verschiedene Modelle/Hersteller auszuprobieren ist so sehr gut möglich, da sich die Sachen bei Nichtgefallen häufig zu einem ähnlichen Preis wieder verkaufen lassen und so ausgiebiger und mit einem besseren Gewissen austesten lassen, als wenn Neuware nach einem Test-Tauchgang wieder zurückgegeben wird in der Hoffnung, dass der Verkäufer die Nutzung nicht moniert.

In der Vorstellung der einzelnen Geräte gehe ich daher detailliert darauf ein, was beim Gebraucht-Kauf zu beachten ist.

Über folgende Ausrüstung findet Ihr Artikel auf meinem Blog:

  • Tauchcomputer
  • Atemregler/Lungenautomat
  • BCD/Jacket/Tarierhilfe/Wing
  • Maske/Schnorchel
  • Flossen
  • Neoprenanzug/Tauchschuhe/Handschuhe
  • Kompass