Press "Enter" to skip to content

Let’s Code Core Data

Core Data ist eines der mächtigsten System-Frameworks von Apple, aber auch eines der kompliziertesten und komplexesten. In der Regel kommt Core Data zum Einsatz, um persistent Daten innerhalb einer App auf Basis einer SQLite-Datenbank zu speichern. In diesem Let’s Code betrachten wir die verschiedenen Funktionen, die Core Data hierfür liefert, und wie man sie in der Praxis einsetzt.

Inhaltsverzeichnis

#01: Über das Let’s Code

Es ist soweit: In diesem Let’s Code setzen wir uns im Detail mit dem mächtigen Core Data-Framework für macOS, iOS, watchOS und tvOS auseinander. In diesem Video stelle ich das Let’s Code und die groben Inhalte vor.

#02: Grundlegende Elemente

In diesem Video setzen wir uns mit allen wichtigen Elementen auseinander, die bei der Arbeit mit Core Data eine Rolle spielen. Das dient als Basis, bevor es in den kommenden Lessons ans Programmieren geht.

#03: Core Data-Stack erstellen

Wie man einen simplen Core Data Stack auf Basis der Klasse NSPersistentContainer erstellt, zeige ich euch in dieser Lesson zu Let’s Code Core Data.

#04: Managed-Object-Model erstellen

Das Managed Object Model stellt die Datenstruktur bei der Arbeit mit Core Data dar. Um es zu erstellen, steht in Xcode ein passendes Dateiformat mitsamt Editor zur Verfügung. In diesem Video seht ihr, wie man damit arbeitet.

#05: Erstellen und Speichern eines Managed-Objects

Auf Basis des zuvor generierten Managed Object Models wird nun eine passende Klasse für unser erstes Managed Object generiert. Dieses Video zeigt zudem, wie das Managed Object angepasst und persistent gespeichert werden kann.

#06: Fetch-Request erstellen

Mithilfe eines Fetch-Requests lassen sich Instanzen aus einem Managed-Object-Context auslesen. In diesem Let’s Code wird der grundlegende Einsatz von Fetch-Requests praktisch demonstriert, inklusive der dabei zu beachtenden Besonderheiten.

#07: User-Interface erstellen

Es ist Zeit, die bisher kreierten Methoden rund um Core Data einmal in der Praxis zu testen! In dieser Lesson erstellen wir gemeinsam ein einfaches User-Interface für die Beispiel-App, erstellen erste Testobjekte und laden diese in einer Tabelle.

#08: Neue Managed-Objects erstellen

Die kleine Beispiel-App wächst weiter und erhält in dieser Lesson ein eigenes Interface zum Erstellen neuer Book-Instanzen auf Basis dynamisch eingegebener Inhalte.

#09: Managed-Object updaten

Nicht nur das Erstellen, auch das Aktualisieren bestehender Managed-Objects ist eine wichtige Aufgabe bei der Arbeit mit Core Data. In dieser Lesson erhält die zuvor entwickelte Beispiel-App eine Funktion, um vorhandene Book-Instanzen mit neuen Inhalten zu aktualisieren. PS: Menschliche Fehler sind nicht ausgeschlossen. 😉

#10: NSFetchedResultsController

In dieser Lesson lernen wir ein neues Element aus dem CoreData-Framework kennen: Mittels eines NSFetchedResultsControllers greifen wir auf die Inhalte unserer Datenbank zu und geben sie aus.

#11: Fetched-Results-Controller mit Delegation

Mittels Delegation erlaubt es ein NSFetchedResultsController, uns über Änderungen am Managed-Object-Context zu informieren. Wie man das in der Praxis nutzen kann, zeigt diese Lesson.

#12: Nach Sections gruppieren

Die Klasse NSFetchedResultsController bringt eine enorm komfortable Möglichkeit mit, die Ergebnisse eines Fetch-Requests zu gruppieren, was wir uns in der Table-View unserer Beispiel-App zunutze machen.

#13: Managed-Object löschen

Genau so wie es wichtig ist, neue Managed-Objects zu erstellen, muss man auch wissen, wie man sie wieder entfernen kann, wenn sie nicht länger benötigt werden. Diese Lesson zeigt, wie ihr dabei vorgehen müsst.

#14: Relationship zwischen Managed-Objects

Die Entities eines Managed-Object-Models können durch Beziehungen miteinander verknüpft werden. Wie man solche Beziehungen einrichtet und welche Einstellungen es hierbei zu beachten gilt, klärt diese Lesson.

#15: Refactoring und Publisher-Vorbereitung

In dieser Lesson nehmen wir ein paar kleine Optimierungen am bisherigen Beispielprojekt vor und bereiten den Weg für die Unterstützung unserer neuesten Entity: dem Publisher.

#16: Publisher-Liste erstellen

In diesem Video erstellen wir – analog zum Table-View-Controller zur Anzeige aller Bücher – einen View-Controller zur Auflistung aller in der App vorhandenen Publisher.

#17: Ansicht für Publisher erstellen

In dieser Lesson erweitern wir unsere Beispiel-App um eine neue Ansicht zur Präsentation und Erstellung eines neuen Publishers.

#18: Neue Publisher erstellen

Nach der Erstellung einer passenden Ansicht in der vorangegangenen Lesson kümmern wir uns nun um die Implementierung der passenden Logik, um unsere App neue Publisher hinzufügen zu können.

#19: Publisher aktualisieren

Der Ausbau unserer Beispiel-App schreitet stetig voran. In diesem Video kümmern wir uns darum, bestehende Publisher aktualisieren zu können.

#20: Publisher löschen

Nachdem sich Publisher erstellen und bearbeiten lassen, integrieren wir in dieser Lesson nun noch eine passende Funktion, um bestehende Publisher auch wieder aus unserer kleinen Beispiel-App zu entfernen.

#21: Verlagszelle für Buchansicht

Let’s Code Core Data geht endlich wieder weiter! In dieser Lesson nähern wir uns der Verknüpfung von Büchern und Verlagen an, in dem wir die Konfiguration von Büchern um eine passende Auswahlschaltfläche für Verlage ergänzen.

#22: Publisher auswählen

In diesem Video erweitern wir die Detailansicht eines Buches um die Auswahl eines zugehörigen Verlags (und stoßen hierbei auf einige Probleme in Bezug auf die bisherige Implementierung).

#23: Änderungen im Context verwerfen

Zur Optimierung des Beispiel-Projekts lernen wir eine neue Funktion namens rollback() kennen, mit deren Hilfe man Änderungen am Managed-Object-Context wieder verwerfen kann.

#24: Speicher-Refactoring

Nach einigen größeren Änderungen in den vorangegangenen Lessons nehmen wir uns in diesem Video ein wenig des Refactorings an und optimieren den bestehenden Code.

Impressum

Thomas Sillmann
Kettererstraße 6
D-63739 Aschaffenburg
E-Mail: contact@thomassillmann.de
Mobil: +49 (0) 151 65125650
Web: https://www.thomassillmann.de/

Inhaltlich Verantwortlicher gemäß §55 Abs. 2 RStV: Thomas Sillmann (Anschrift siehe oben)

Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehme ich keine Haftung für die Inhalte externer Links. Für die Inhalte der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.

Kontakt und soziale Netzwerke

Copyright © 2020 · Thomas Sillmann