Mein erster Hackathon

July 23, 2024

Hallo und willkommen zu diesem Beitrag. Als Entwickler/IT-Fachperson bist du wahrscheinlich mit dem Konzept von Hackathons vertraut. Falls nicht, möchte ich es kurz erklären:

Hackathons sind in der Regel zeitlich sehr begrenzt. Für einen bestimmten Zeitraum arbeitet man intensiv an einem bestimmten Problem/Feature/Idee. Bei einem Hackathon ist das Ziel selten ein perfektes Ergebnis, sondern eher ein Konzept/Demo. Der Code muss nicht perfekt sein, und das Ziel ist normalerweise nicht, etwas zu schaffen, das man nach dem Hackathon sofort veröffentlichen kann. Man erstellt etwas und zwar möglichst schnell.

So, jetzt sollten wir alle wissen, was das Prinzip eines Hackathons ist. Ein deutscher Youtuber, Kevin Chromik, organisierte einen Mini-Hackathon. Ich kannte bereits einige Leute auf Discord, die daran teilnehmen würden, also beschlossen wir schnell, ein Team zu bilden. Das war eine großartige Gelegenheit für mich, da ich noch nie als Mitglied eines Entwicklerteams gearbeitet hatte.

Das Konzept des Mini-Hackathons bestand darin, ein Thema und eine API vorzugeben, die verwendet werden musste, und jede/r konnte allein oder im Team etwas entwickeln. Die Aufgaben waren absichtlich unpräzise, damit jede/r, vom absoluten Neuling bis zum Senior, die Chance hatte, etwas auf seinem persönlichen Niveau zu schaffen. Jeden zweiten Tag bekamen wir eine neue Aufgabe und mussten sie bis zum nächsten Tag um 18 Uhr fertigstellen.

Die erste Aufgabe

Um 7 Uhr morgens bekamen wir unser erstes Ziel. Unsere Aufgabe war es, etwas mit der open-meteo-api zu erstellen. Wir beschlossen, eine IOS-App zu entwickeln, die einem anhand der für einen bestimmten Tag erwarteten Regenmenge sagt, ob man seine Pflanzen gießen sollte oder nicht. Also machten wir uns an die Arbeit. Da Kirreth noch keinen Mac hatte, war er dafür verantwortlich, eine Datenbank auf pockethost zu erstellen und zu füllen, Amelie sammelte Icons für die Pflanzen, die Kirreth in unserer Datenbank gespeichert hatte, erstellte Tipps, die in der App angezeigt wurden, sowie den Marketingtext. Simon und ich haben den Kern der App geschrieben.

Für dieses und auch die folgenden Projekte haben wir Swift und SwiftUI verwendet. Ich habe hauptsächlich an einer Wetteranzeige gearbeitet, die das aktuelle Wetter, die Temperatur sowie die Vorhersage für die nächsten Stunden anzeigt und die Daten für unsere Bewässerungsempfehlung aufbereitet, Simon hat die Pflanzenliste, die Standortdaten, die Netzwerkaufgaben und ein Bild und ein Video für die Präsentation unseres Ergebnisses erstellt.

Der erste Tag war wirklich chaotisch, wir waren noch nicht wirklich organisiert und mussten eine Menge mergen und merge-conflicts lösen. Aber wir haben es geschafft, die App am nächsten Tag fertigzustellen und gegen 15 Uhr zu präsentieren.

Marketing

Die zweite Aufgabe

Die heutige Herausforderung bestand darin, die open-foodfacts-api zu verwenden. Wir wollten ein kleines Spiel bauen. Kirreth sammelte traditionelle Rezepte für 45 Länder, einschließlich über 140 Zutaten. Nochmal vielen Dank dafür, ohne diese ganzen Daten hätte das nicht funktioniert.

Sagen wir, die API war etwas anstrengend. Oft waren die Informationen widersprüchlich oder gar nicht vorhanden. Um also einigermaßen genaue Ergebnisse zu erhalten, und immer genau das gleiche Produkt (wir wollten den Benutzer nicht entscheiden lassen, welches das richtige Produkt war, wir wollten nur die kcal/100g erhalten) recherchierte ich schließlich eine EAN für jede Zutat. Amelie hat wieder das Marketing und die Icons für die Zutaten übernommen, Simon hat den größten Teil der App entwickelt. Ich habe mich nur um die Präsentation der Gerichte gekümmert, sowie um das Abrufen und Präsentieren der kcal/100g, zusätzlich zu der Ansicht, in der die Zutaten schwebten und an den Rändern abprallten, da der Hauptteil der App der Spielbildschirm war und mehrere Leute, die an der gleichen Sache arbeiten eher kontraproduktiv sind und es viel zu recherchieren gab. Wir haben auch eine Bestenliste und Punkte für schnelle, richtige Antworten eingebaut, damit die Benutzer ein wenig konkurrieren können. Bei dieser App verlief die Zusammenarbeit wesentlich flüssiger, und auch hier waren wir am nächsten Tag gegen 15 Uhr fertig. Super Arbeit, Team!

Marketing Marketing

Die dritte Aufgabe

Sagen wir mal, unser drittes Projekt geriet ein wenig außer Kontrolle. Die vorgegebene Aufgabe war ziemlich einfach. Wir sollten die omdb-api verwenden. Während man einfach eine App zum Durchstöbern von Filmen und zum Anlegen einer Watchlist erstellen könnte, dachten wir uns, dass wir eine auf Filmen basierende „Dating-App“ entwickeln wollten. Und wir benutzten die tmdb-api zusätzlich zu omdb, da die Endpunkte für unsere Zwecke nützlicher waren. Kirreth richtete wieder unsere Datenbanken ein und erstellte Dummy-Daten, Amelie war wieder unser Marketing-Genie. Unsere Diskussion darüber, was genau zu tun sei, dauerte so lange, dass ich bis 4:30 Uhr morgens des nächsten Tages programmierte, weil ich das Gefühl hatte wir würden es sonst nicht schaffen, Simon schlief auch nicht, weil er zu viel darüber nachdachte, was noch zu tun war.

Lasst mich erzählen, was unsere App kann: Wir zeigen eine Liste der am besten bewerteten Filme, die man liken und deren Details man sehen kann, eine Ansicht, in der man Filme nach links/rechts wischen kann, um sie zu liken/zu überspringen. Eine, die andere Nutzer und ihre Favoriten zeigt, wenn man auf ihr Profil klickt, und natürlich dein eigenes Profil.

Wir haben in UserDefaults gespeichert, ob ein Film gefällt oder nicht, die Konto-ID und die ID des Favoriteneintrags in der Datenbank. Das ist für sich genommen schon ziemlich wild. Aus irgendeinem Grund haben einige Genres bei der Abfrage von tmdb aber auch unterschiedliche Modelle zurückgegeben, so dass wir sie rausgeschmissen haben. Wir waren unglaublich gestresst, rechtzeitig fertig zu werden, aber dank Simons großartiger Leistung und meiner Nachtschicht haben wir es wieder rechtzeitig geschafft. Hier das Ergebnis.

Marketing

Zusammenfassung

Der Hackathon war großartig. Ich habe viel gelernt und fand es toll, zum ersten Mal mit einem Team zu arbeiten. Ich würde es auf jeden Fall wieder tun, nur habe ich in dieser Woche viel zu wenig Schlaf bekommen. Danke fürs lesen und nimm doch selbst einmal an einem Hackathon teil, Mia

Zusatzinfo

Unser erstes Projekt, BloomBuddy, hat uns so gut gefallen, dass wir uns entschlossen haben, es weiterzuentwickeln und im Appstore zu veröffentlichen. Sobald es veröffentlicht ist und ein separater Blogpost existiert, werde ich ihn hier und am Anfang verlinken.