App-Entwicklung mit iOS Grundkurs 2: Das User Interface

Die Logik

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
In diesem Video verfolgen Sie die Implementierung der App-Logik. Dabei werden verschiedene API-Strukturen wie DateFormatter oder Date vorgestellt und in Swift verwendet.

Transkript

Damit eine App etwas Vernünftiges tut, muss eine gewisse Programmierlogik implementiert werden. Das heißt, wenn ich hier einen Datepicker und ein Label habe und gewisse Werte aus den Datepicker sollen in das Label geschrieben werden, dann muss in einer passenden SWIFT-Methode genau diese Funktionalität, diese Logik bereitgestellt werden. Es gibt hier Verbindungen bereits zwischen dem GUI-Builder, den Komponenten darin und dem SWIFT-Code und es gibt eine Methode "PickerDidChange" die aufgerufen wird, sobald ein Change-Event auf dem Datepicker ausgelöst wird. und nun wollen wir gewissen Code nehmen und hier implementieren. Wir schaffen uns Platz, und programmiere das jetzt mal aus. Was wollen wir denn tun? Nun, wir wollen auf den Datepicker zugreifen. Das heißt, es ist sehr sinnvoll, eine Variable anzulegen, nennen wir Sie beispielsweise mal "Date", vom Typ "Date", das ist eine Standardklasse im API, die eben Datumsinformationen repräsentiert und der weise ich einen Wert zu und das ist eben genau das, was das Objekt "Picker" mir bereitstellt. Picker ist ja ein Datepicker und hier gibt es eine Eigenschaft "Date" und das liefert das aktuelle Datum, was gerade in diesem Datepicker bereitgestellt wird. Das ist jetzt natürlich Syntax, die sowohl Wissen aus dem API erfordert, als auch etwas SWIFT. Über das API bekommen Sie Informationen auf die übliche Art und Weise, Das heißt, Sie klicken ein Objekt, eine Klasse, irgendetwas aus dem API an, können dann hier diesen Hilfe-Button anklicken und bekommen dann alle Informationen. Hier sehen Sie, das ist eine Struktur namens "Date" und hier können Sie alles lesen, alles erfahren, was eben zu dieser Klasse, dieser Struktur oder sonst etwas an Informationen bereitgestellt wird in der Hilfe. Und Sie haben wieder die Hyperlinks und können gegebenenfalls auch auf weitere Informationen verzweigen. Überhaupt werden wir jetzt hier in dem weiteren Coding etwas SWIFT-Technologie benutzen und auch gewisse Dinge aus dem API. Das braucht man schlicht und einfach, damit wir eine gewisse Funktionalität haben. Das mag etwas nach Magie aussehen, aber es ist alles in der API-Dokumentation zu finden, was wir jetzt hier tun werden. Und genau diese Magie werden wir jetzt brauchen, denn das, was wir hier jetzt zur Verfügung gestellt haben, über den Datepicker und die Eigenschaft "Date", das können wir noch nicht direkt benutzen, denn in dem Label brauchen wir Text und das heißt, wir müssen erst mal aus diesem Datums-Objekt Text machen. Klar, es gibt, wenn man "Date" hinschreibt, jetzt, "Punkt", gewisse Methoden oder Eigenschaften beispielsweise "Description". Description liefert den gesamten Datums-String, allerdings wollen wir in dem Label nur den Tag notiert haben, der gerade jetzt von diesem Button repräsentiert wird. Das heißt, wir brauchen hier eine Einschränkung, sogar, wir müssen in gewisser Weise eine Formatierung vornehmen und dazu müssen wir eben aus dem API weitere Funktionalität uns zusammensuchen beziehungsweise ich stelle sie vor und Sie können dann in der Dokumentation nachschauen, warum dem so ist. Das heißt, warum benutze ich diese API-Syntax genau so. Um die Sache zu verdeutlichen, werde ich jetzt trotzdem einmal einen Schritt in die falsche Richtung machen. Mit anderen Worten etwas tun, was wir eigentlich nicht wollen, aber zumindest damit demonstrieren, worauf es letztendlich hinausläuft. Wie komme ich denn an das Label hier? Nun, das hat auch einen Namen. Es heißt "label", und es gibt eine Eigenschaft "text". Und wenn ich dann "date.description" zuweise, dann habe ich im Grunde zumindest schon mal die Situation, dass ich dynamisch etwas in das Label schreibe, sofern hier das Change-Event auftritt und das können wir uns ja mal ansehen, dafür haben wir ja den Simulator zu Verfügung. Die App läuft ganz offensichtlich. Und ich löse mal so ein Change-Event aus. Das heißt, ich verschiebe mal hier, das ist ein Rad, das sich so dreht, zumindest wird es so simuliert und sobald ich die Maustaste loslasse, wird hier etwas in das Label geschrieben und zwar genau das Datum, was ich ausgewählt habe. Wohl bemerkt, das ist funktional so, dass das Change-Event ausgelöst wird und es wird etwas in das Label geschrieben. Aber wir wollen ja eigentlich etwas anderes erreichen, das heißt, hier, wo noch "date.description" steht, da soll wirklich nur der Tag stehen, der an diesem ausgewählten Datum aktuell ist. Wir müssen also hier statt "date.description" irgendwie den Tag extrahieren und das ist eben etwas Magie, aber im Grunde werden hier einige Zwischenschritte noch erfolgen und dann wird eben "label.text" dieser Tag zugewiesen. Also, zuerst einmal führe ich einen sogenannten "Formatter" ein. Das heißt, es gibt im API einen "DateFormatter", und den muss ich erzeugen über Instanziierung des sogenannten "Constructors". Damit kann ich ein Datum so aufbereiten, dass ich daraus Teile über gewisse Pattern herausholen kann und das geht folgendermaßen. Es gibt eine Eigenschaft "dateFormat" und was man hier zuweisen muss, das zaubere ich hervor und verweise auf die API-Dokumention. Das heißt also, Sie würden gegebenfalls hier bei "dateFormatter" wieder anschauen, was gibt es hier alles an Informationen und dort ist auch beschrieben, was dieses Pattern hier bedeutet. Wie gesagt, das ist etwas Magie, aber wir wollen ja zu einem Resultat kommen. Mit diesem so aufgebauten Formatter können wir eine weitere Variable einbauen und die nennen wir mal "dayOfWeek". Die ist vom Typ "String". Wir wollen ja der Texteigenschaft von "label" einen String zuweisen und das ist von diesem Formatter bereitgestellt über eine Methode "string", die muss dann sagen, woher kommt diese Information "from" mein Datums-Objekt und das werden wir jetzt benutzen, indem wir hier einen String zuweisen. "Es ist", und an der Stelle möchte ich diese Variable "dayOfWeek" benutzen und das heißt, ich brauche ja bekanntlich dann einen Backslash und in Klammern den Namen der Variablen. So, und nun sollten wir dieses Programm wieder mal ausprobieren, diese App. Das heißt, wir öffnen sie wieder im Simulator. Und Sie sehen, es wird jetzt nur noch der Tag angezeigt. Sie erkennen natürlich, dass das jetzt englisch ist und so weit möchte ich die Sache auch einfach halten, es dabei belassen. Aber grundsätzlich haben wir unser gewünschtes Ziel erreicht. Es gibt noch eine Unschönheit. Beim Starten der App wird ja dieser Platzhalter angezeigt. Und das können wir allerdings auch beseitigen, indem wir diesen Code hier, direkt beim Rendern der Oberfläche beim Start ausführen lassen und dadurch dieser Platzhalter, der eigentlich nur zum Design-Zeitpunkt interessant ist, durch eben diesen dynamisch geschriebenen String ersetzen. Wir können dazu diesen Code nehmen und in die Methode "ViewDidLoad" kopieren. Aber viel sinnvoller wäre es, und das werden wir auch natürlich noch tun, wenn wir die hier deklarierte Methode dort einfach aufrufen. Und das heißt, "pickerDidChange" rufen wir auf und der Sender in dem Fall ist der Picker. Starten wir den Simulator erneut und Sie sehen, der Platzhalter ist ersetzt durch den dynamisch generierten Text. Wir haben also jetzt hier in diesem Video Funktionalität ausprogrammiert, die eine gewisse Komplexität hatte, bezüglich der Verwendung von API-Technologie als auch SWIFT. Im Wesentlichen haben wir allerdings auf die Eigenschaft von einem Objekt zugegriffen und die Eigenschaft eines anderen Objektes in der Oberfläche gesetzt.

App-Entwicklung mit iOS Grundkurs 2: Das User Interface

Entwickeln Sie das User Interface Design einer iOS-App.

1 Std. 19 min (16 Videos)
Derzeit sind keine Feedbacks vorhanden...
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:29.05.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!