Achtung: iOS9 und Swift2.2 sind nicht mehr aktuell, die Beispiele funktionieren aber mit kleineren Anpassungen (fast immer Xcode Empfehlungen verfügbar) weiterhin.
Dieser Online-Kurs ist mit 28 Stunden Inhalt einer der umfassendsten Referenzen für die iOS App Entwicklung im deutschsprachigen Markt. Mit über 7.400 Teilnehmern gehört er mit zu den erfolgreichsten Kursen auf Udemy! Kursteilnehmer bekommen auch ein Swift Cheatsheet (Swift Grundlagen) kostenlos mit dazu.
Du lernst die unterschiedlichsten Bereiche von iOS kennen und lernst, wie Du mit Swift auch umfangreichere Projekte realisierst. Dabei bleiben aber natürlich auch Einsteiger nicht auf der Strecke. Die erste App legt die Grundlagen rund um Xcode, iOS-Entwicklung und das AutoLayout. Die weiteren Apps führen Dich in immer mehr Klassen, Bibliotheken und Frameworks ein.
Zusätzlich gibt es 3 Bonuskapitel zu folgenden Themen:
Details zu den einzelnen Kursthemen:
**Xcode & Autolayout Grundlagen**
In der erste App stehen Grundlagen rund um Xcode und iOS im Vordergrund. Als Einsteiger lernst Du die Arbeit mit dem Cocoa Touch Framework kennen und nutzt IBOutlets und IBActions. Auch als fortgeschrittener findest Du mit AutoLayout Informationen zu einem wichtiges Thema.
**UITableView & Segue Grundlagen**
Die RezepteApp führt Dich in in die UITableView ein. Du definierst eine eigene UITableViewDataSource sowie einen UITableViewDelegate. Die Protokolle werden implementiert und im Storyboard eine zusätzlich View angelegt. Die wird über Segue erreichbar gemacht. Außerdem definieren wir einDatamodel, über das Rezepte in der App repräsentiert werden.
**UICollectionView und adaptive Interface mit SizeClasses**
Der ImageViewer basiert auf der Klasse UICollectionView. Du lernst sie zu nutzen und über die UICollectionViewDataSource und UICollectionViewDelegateProtokolle anzubinden. Ebenso sind UIImage und die UIImageView die Basis zur Darstellung von Bildern. Gemeinsam erstellen wir dafür eine angepasste UICollectionViewCell. Ein wichtiges Thema sind die SizeClasses in iOS. Wir erstellen für den ImageViewer ein adaptives Layout, dass für iPad und iPhones gesondert optimiert wird. Dazu nutzen wir Traitcollections.
**RESTful APIs, JSON, Grand Central Dispatch und NSOperationQueue**
Apps bekommen eine ganz neue Dimension, wenn sie Daten aus dem Netz verarbeiten. Ein beliebter Weg sind RESTful APIs, die zum Beispiel Daten imJSON-Format zurückgeben. Im SynonyMaster rufen wir von openthesaurus Synonyme für eingegebene Wörter ab. Dabei lernst Du die asynchrone Datenverarbeitung kennen. Wir nutzen Grand Central Dispatch (GCD) sowie die NSOperationQueue. Mit NSJSONSerialization verarbeiten wir schließlich die Antwortdaten. Die Hintergrundaktivität zeigen wir mit einer UIActivitiyIndicatorView an.
**CoreData**
Die Einkaufsliste steht voll und ganz im Zeichen von CoreData. Du lernst am Beispiel einer App für den Einkauf Daten persistent zu speichern. Wir erstellen eine Verwaltung für Einkaufslisten, auf denen jeweils mehrere Produkte gespeichert werden können. Dazu legen wir die Entitäten an, erzeugenManagedObjects, implementieren die typischen CRUD-Aktionen (Create, Update, Remove) und verwenden Relationen. Außerdem kommt ein Bridging-Header zum Einsatz und Du legst über Closures eigene Completion-Handler fest.
**CADisplayLink, NSUserDefaults und diverse UI-Elemente**
Die TimerApp nutzt die Klasse CADisplayLink, um einen Timer zu realisieren. Er kann gestoppt, pausiert und zurückgesetzt werden. Außerdem nutzen wir verschiedene UIElemente wie die UIPickerView inkl. entsprechender UIPickerViewDataSource. Darüber hinaus kommen UIStepper und dieUIProgressView zum Einsatz. In den NSUserDefaults speichern wir die aktuelle Timereinstellung und benachrichtigen den Benutzer nach Ablauf mit einem UIAlertController.
**SpriteKit**
Der Würfelbecher ist ein Beispiel für SpriteKit. Du bekommst einen Überblick über das Framework und lernst den Zusammenhang zwischenGameScene, Nodes und Actions kennen. Außerdem verwenden wir die Schwerkraft, legen eigene Nodes bei Berührung an (Würfel in den Becher) und starten wenn der Benutzer sein Gerät schüttelt (MotionShake Events) das Würfeln. Das Ergebnis blendest Du in einer neuen GameScene ein.
**WordPress Backend, Teilen auf Facebook und Twitter**
In dieser App arbeitest Du erneut mit RESTful APIs. Allerdings erzeugst Du mit WordPress ein eigenes Backend für Deine App. Du lernst die Inhalte der App mit einfachen Mitteln selbst zu verwalten. Gerade für redaktionelle Inhalte ein Muss. Die Daten werden per JSON im Hintergrund abgerufen. Außerdem lernst Du mit den Property-Lists wie der Info (.plist) umzugehen und sie zur Konfiguration einzusetzen. Darüber hinaus erstellst Du eine eigeneEditAction für die UITableViewCell und lernst, wie Inhalte auf Twitter und Facebook geteilt werden können.
**MapKit und UISplitViewController**
Die HappyPlaces-App besteht aus zwei Teilen. Im Vordergrund steht die Nutzung von MapKit. Du zeigst Orte auf einer Karte an, ermöglichst über den UISearchController die Volltextsuche nach Orten, Ländern und Straßen und lernst Koordination per Touchgeste abzufragen. Auch die eigene Position wird bestimmt und auf der Karte dargestellt. Der zweite Teil der App ist der UISplitViewController. Er wird genutzt, um zur Verfügung stehenden Platz auf allen Geräten fast automatisch bestmöglich zu nutzen.
**UIBezierPath – eine animierte View**
Der TabataTimer ist eine umfassende App, in der Du sogar eigene View-Elemente erzeugst. Dazu nutzen wir einen UIBezierPath, mit dem wir eine eigene Fortschrittsanzeigen bauen (einen Kreis, der sich langsam füllt). Der Fortschritt wird mit einer CABasicAnimation animiert dargestellt. Ergänzend lernst Du auch mit NSTimer zu arbeiten und damit eigene Timer zu erzeugen. Auch hier realisieren wir wieder die Möglichkeit den Timer zu pausieren.
**XML-Verarbeitung und UITabBarController**
Der RSSReader ist genau das – ein Reader für RSS-Feeds. Diese werden typischerweise von Blogs und anderen redaktionellen Webseiten bereitgestellt. Die App zeigt die letzten Beiträge in einer UICollectionView an. Dazu passen wir das UICollectionViewFlowLayout an. Der NSXMLParser bildet das Herzstück der XML-Verarbeitung, welche ebenfalls im Hintergrund stattfindet. Auch Bilder werden abgerufen und in der CollectionView anzeiget. Außerdem kommt ein UITabBarController zum Einsatz, Du lernst auf Geräte-Rotation zu reagieren und eine WebView zu nutzen.
**Audiowiedergabe und Aufnahmen**
Das Soundboard nutzt vorbereitete Musikstücke und bietet Buttons, um sie abzuspielen. Insgesamt habe sind 9 Sounds von freesound (.org) zum Download bereit, die in der App genutzt werden. Ein wichtiger Part ist daher die Audiowiedergabe mit iOS. Darüber hinaus erstellst Du Audioaufnahmen mit dem Rekorder, spielst diese ab und lernst den Audiorecorder-Delegate kennen.
**Push-Notifications**
Viele Mannschaften bieten eigene Apps. Darüber stehen natürlich neueste Nachrichten bereit. Noch wichtiger sind aber Benachrichtigungen während der laufenden Spiele. Der aktuelle Spielstand wir abgerufen und der Benutzer per Push-Nachrichten bei Ereignissen sowie Anstoß und Abpfiff alarmiert. Diese Funktionalität bildet die LiveErgebnisse-App ab. Du lernst den Apple Push Notification Service (APNs) zu verstehen, verwendest eigene Push Notifications verwenden (per APN), wir erstellen die benötigten Zertifikate und versenden Push-Nachrichten. Der Spielstand wird per JSON abgerufen. Außerdem lernst Du NSNotifications kennen.
**In-App Einkäufe**
Über In-App Einkäufe werden viele Apps monetarisiert. Das Freemium Modell siehst vor eine kostenlose Basis bereitzustellen. Zusätzlich gibt es Premiuminhalte, die erst nach einer Zahlung freigeschaltet werden. In der PremiumRezepte-App lernst Du In-App Einkäufe anzubieten. Gemeinsam hinterlegen wir die kostenpflichtigen Inhalte, sperren aber den Zugang. Dieser wird schließlich per In-App Purchase (IAP) wieder freigeschaltet und der Einkauf gespeichert.
**CloudKit als Backend**
Cloudgram ist ein rudimentärer Clone von Instagram, der bewusst auf viel Funktionalität verzichtet. Im Vordergrund steht keine 1:1 Kopie, sondern das CloudKit Backend. Dieser populäre Service dient als Backend für die App. Du verwendest die Kamera und PhotoLibrary als Quelle für Bilder. Die werden hochgeladen und auf den Servern von Apple gespeichert. Darüber hinaus lernst Du Pull-To-Refresh in eine UITableView zu integrieren und Asset zu verwenden.