[Swift] Datenbank oder labels?

hYtas

Idared
Registriert
10.02.10
Beiträge
25
Moin,

ich mache seit ein paar Tagen, den Udemy "Kurs" von Angela Yu, ist auch super erklärt, bin dort auch schon recht weit und meine, es verstanden zu haben :eek:

Das Ganze mache ich, da ich eine Hilfe-App (FAQs usw) für meine Arbeit programmieren möchte (erstmal nur zum Spaß).

Diese soll auf der Startseite 3-4 Oberkategorien besitzen und in jeder Oberkategorie, gibt es xx Unterpunkte.
Der Seitenwechsel ist kein Problem.
Nun meine Frage:

Wie füllt man die Seiten am besten mit Inhalt?
Ein label oder eine Art Datenbank, wo man dann einfach den gewünschten Inhalt abruft.

Später soll eine Suchfunktion dazu kommen.

Danke im voraus :)
 

Karift

Jonagold
Registriert
09.10.15
Beiträge
23
Hi, ich würde dir empfehlen eine JSON-Datei zu erstellen und diese im ersten Schritt vielleicht einfach auszulesen, filtern und anzuzeigen.
Das hätte erstmal den Vorteil, dass du dich nicht mit Datenbanken beschäftigen müsstest.
Zweitens könntest du daraus irgendwann in eine Datenbank schreiben und drittens könntest du die JSON dann sogar für Android benutzen.

Ich stelle mir die JSON dabei so vor:
Code:
{ "main" : [ {"kategorieName" : "Hauptkategorie 1", "unterKategorien" : [{"kategorieName" : "Unterkategorie 1"}, {"kategorieName"  : "Unterkategorie 2"}]}
]
}

Die Nachteile sind natürlich bei der Geschwindigkeit. Ich hatte aber ein Projekt mit ca. 900 großen Einträgen und die GUI hat länger mit Anzeigen gebraucht als das Filtern der JSON.
 

hYtas

Idared
Registriert
10.02.10
Beiträge
25
Danke für die Antwort.
Lässt sich das Ganze dann auch ordentlich formatieren/schick darstellen?
Was ich bei google gefunden hatte, ist alles als Table. Bilder sollten da evtl. bei manchen Antworten benutzt werden.
 

Karift

Jonagold
Registriert
09.10.15
Beiträge
23
Nach deiner Antwort zu urteilen versuche ich mal ein wenig detailierter zu werden.

Die JSON-Datei wäre eine Art Ersatz für eine Datenbank. (CoreData).
D.h.: Du hast eine echte JSON-Datei im Code, welche du auslesen/filtern kannst.
Wenn du jetzt deine App startest, dann muss es ja so etwas geben wie
Code:
gibtMirDieHauptkategorien()
Diese Methode würde dann die JSON-Datei öffnen und eine Liste von den Hauptkategorien liefern.

Jetzt hättest du eine Liste von mindestens den Namen [und identifier] der Hauptkategorien.
Um dem Benutzer die Hauptkategorien zu zeigen würde sich eine TableView eignen.

Bei einem Klick auf einen Eintrag in der TableView öffnest du die nächste Liste mit den Kinderkategorien der angeklickten Hauptkategorie. Um diese zu bekommen, kannst du entweder wieder durch die JSON-Datei durchlaufen und dir die Kindereinträge geben lassen, oder du hast sie schon oben direkt mit in dein Objekt gepackt.

Wenn du jetzt auf eine Kinderkategorie klickst, kannst du dir ja ein "Detail Screen" anzeigen.
Über die Outlets kannst du dann ja mit xx.text = Kinderkategorie.xx die Textviews oder auch sogar Bilder füllen.
Um Bilder anzuzeigen schlage ich vor, dass du die Bild-Dateien direkt neben die JSON-Datei anlegst und dann einfach den Bildernamen in die Kinderkategorie setzt.

Wie schon vorher geschrieben, kann man diese Lösung dann auch später gut in eine Datenbank umwandeln. Dafür musst du die
Code:
gibtMirDieHauptkategorien()
so umschreiben, dass sie nicht mehr aus der JSON-Datei liest, sondern aus der Datenbank.

Ohne Datenbank kannst du auch einen WebService ansprechen, welcher schaut, ob es eine neue Version der JSON-Datei gibt und diese ggf. runterladen um deine App aktuell zu halten, ohne immer wieder eine neue App bauen zu müssen.
 

hYtas

Idared
Registriert
10.02.10
Beiträge
25
Mal ne andere Frage:

Den Aufbau usw habe ich, nun habe ich einen Viewcontroller angelegt -> Table View draufgezogen und möchte mir dort PDF Dateien anzeigen lassen, die in der App liegen.
Ich habe mehrere Sachen probiert, leider ohne Erfolg. Was ich im Netz dazu gefunden hatte, ist alles uralt.
Webview usw habe ich probiert.

Ich habe um die 116 PDFs, die dort später aufgelistet werden sollen(im Moment sind es 2 zum Test).

Kannst du bzw. jemand anderes mir da helfen?
 

thomas_

Erdapfel
Registriert
12.10.18
Beiträge
1
Hallo hYtas,
hast du schon überlegt, dass ganze mit Firebase zu machen? Nachteil hierbei ist nur, dass du nur textuell Daten hinzufügen kannst (soweit ich weiß)