Skip to content

myuqa22/beer-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Beer-App

Eine Übersicht über Biersorten, die favorisiert werden können.

Voraussetzungen

  • Xcode 15
  • iOS 16.4

Aufgabe

Entwickle eine native iOS App, die eine öffentliche API einer Brauerei anspricht und alle Biere in einer Liste darstellt. Ein Tap auf ein Bier öffnet eine View, die detaillierte Informationen aufzeigt.

Frameworks

Für dieses Projekt wurden zwei SPMs verwendet: Kingfisher und Defaults.

KingFisher ist eine Library, um Bilder runterzuladen und zu cachen.

Defaults vereinfacht die Verwendung von UserDefaults, um Werte persistent in der Defaults Database als Key-Value Paare zu speichern.

Features

  • API ansprechen und Daten abfangen

  • Listenansicht von Bierarten

  • Detailseite

  • Human Interface Guidelines beachten (Loading, Feedback (Error Handling, Accessibility))

  • Pagination

  • MVVM Architektur

  • Bierarten favorisieren

  • Favoritenseite

  • Tests für die View Model

Wie bin ich an die Aufgabe herangegangen?

  • Punk API Dokumentation gelesen und in Postman getestet
  • Design grob auf Papier skizziert
  • Core Features umgesetzt
  • Zusätzliche Features umgesetzt
  • Tests geschrieben und Code angepasst

Welche Entscheidung habe ich getroffen?

  • Welche Daten von der API anzeigen? Bier soll für den für Endnutzer konzipiert werden. Der Endnutzer ist keine Brauer und interessiert sich nur für Biersorten, die er mal probieren möchte.
  • SwiftUI oder UIKit? SwiftUI -> Neuer, einfacher Views zu bauen.
  • Welche Architektur? MVVM vertrauter.
  • Welches zusätzliches Feature? Biersorten favorisieren und in einer Liste anzeigen. Es gibt zusätzlich eine TabView, um zwischen den Listen zu wechseln.
  • Datenbank ja oder nein? Nein, kein Offline Feature Anforderung und es nicht nicht viele Daten. Nur Speicherung der Id von den favorisiere Bieresorten in den Defaults.

Herausforderungen?

  • Testen der Veränderung der @Published Variablen -> Über Combine auf Änderungen horchen
  • Navigation -> Gelöst mit NavigationStacks

About

Eine Übersicht über Bierarten

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages