DAS SWIFT-HANDBUCH APPS PROGRAMMIEREN FÜR MACOS, IOS, WATCHOS UND TVOS BUCH-UPDATE: HANSER KUNDENCENTER

Die Seite wird erstellt Valentin Scharf
 
WEITER LESEN
DAS SWIFT-HANDBUCH APPS PROGRAMMIEREN FÜR MACOS, IOS, WATCHOS UND TVOS BUCH-UPDATE: HANSER KUNDENCENTER
Thomas Sillmann

  Das Swift-Handbuch
       Apps programmieren
für macOS, iOS, watchOS und tvOS
          Buch-Update:
            Kapitel 42
       „Einstieg in iPadOS“
DAS SWIFT-HANDBUCH APPS PROGRAMMIEREN FÜR MACOS, IOS, WATCHOS UND TVOS BUCH-UPDATE: HANSER KUNDENCENTER
Der Autor:
Thomas Sillmann, Aschaffenburg
www.thomassillmann.de

Alle in diesem Kapitel enthaltenen Informationen, Verfahren und Darstellungen wurden nach
bestem Wissen zusammengestellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz aus­
zuschließen. Aus diesem Grund sind die im vorliegenden Kapitel enthaltenen Informationen mit
keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autor und Verlag übernehmen
infolgedessen keine juristische Verantwortung und werden keine daraus folgende oder sonstige
Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen – oder
Teilen davon – entsteht.
Ebenso übernehmen Autor und Verlag keine Gewähr dafür, dass beschriebene Verfahren usw.
frei von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen,
Waren­be­zeich­­nungen usw. in diesem Buch berechtigt deshalb auch ohne besondere Kennzeich­
nung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-
Gesetz­gebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.

Bibliografische Information der Deutschen Nationalbibliothek:
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbiblio­
grafie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

Dieses Werk ist urheberrechtlich geschützt.
Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des Kapitels,
oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des
Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren) – auch nicht für
Zwecke der Unterrichtsgestaltung – reproduziert oder unter Verwendung elektronischer Systeme
verarbeitet, vervielfältigt oder verbreitet werden.

© 2020 Carl Hanser Verlag München, www.hanser-fachbuch.de

Lektorat: Sylvia Hasselbach

"Das Swift-Handbuch":
Print-ISBN:   978-3-446-45505-4
E-Book-ISBN: 978-3-446-45730-0
E-Pub-ISBN:   978-3-446-46107-9
DAS SWIFT-HANDBUCH APPS PROGRAMMIEREN FÜR MACOS, IOS, WATCHOS UND TVOS BUCH-UPDATE: HANSER KUNDENCENTER
Inhalt

42      Einstieg in iPadOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .              1
42.1    Änderung der Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .              1
42.2    Multitasking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    6
42.3    Multiple Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        8
42.4    Weitere Änderungen und Verbesserungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                            11
DAS SWIFT-HANDBUCH APPS PROGRAMMIEREN FÜR MACOS, IOS, WATCHOS UND TVOS BUCH-UPDATE: HANSER KUNDENCENTER
DAS SWIFT-HANDBUCH APPS PROGRAMMIEREN FÜR MACOS, IOS, WATCHOS UND TVOS BUCH-UPDATE: HANSER KUNDENCENTER
42                     Einstieg in iPadOS

Mit iPadOS erhielt das iPad letzten Herbst sein eigenes Betriebssystem. Das klingt
zunächst mächtiger, als es tatsächlich ist. Denn iPadOS basiert auf iOS und somit
jenem Betriebssystem, für das Entwickler seit Einführung von Apples Tablet be­
reits Anwendungen erstellen. Das hat zur Folge, dass sich für iOS-Entwickler zu­
nächst einmal im Grunde nichts ändert. iPadOS fußt weiterhin auf UIKit und ver­
wendet bekannte Elemente wie UIView​Controller und UIView.
Man muss iPadOS stattdessen als neue Schicht betrachten, die iOS übergestülpt
ist. So verfügt iPadOS über bestimmte Funktionen und technische Möglichkeiten,
die sich eben nur auf einem iPad und nicht auf einem iPhone bzw. iPod touch nut­
zen lassen.
Dieses Kapitel fungiert sowohl als Einstieg wie auch als kleine Übersicht für
iPadOS. Ich stelle euch im Folgenden die wichtigsten Neuerungen im Vergleich zu
iOS vor und gebe eine Einführung, wie ihr diese in euren eigenen Apps nutzen
könnt.

„„42.1 Änderung der Architektur
Zunächst einmal ist es wichtig, die Neuerungen in puncto App-Architektur zu ver­
innerlichen. Die gelten nämlich nicht nur für das neue iPadOS, sondern greifen
auch bei Apps ab iOS 13.
Werfen wir dazu zunächst einmal einen Blick auf den Aufbau einer iOS-App bis
iOS 12. Den Startpunkt stellt hier der App-Delegate dar, der für alle Belange rund
um den Lebenszyklus einer Anwendung verantwortlich ist. Er ist es auch, über den
eine UIWindow-Instanz erzeugt wird. Hierbei handelt es sich um das Fenster des
Programms, in dem typischerweise Views und View-Controller dargestellt werden.
Jenes UIWindow verfügt entsprechend über einen Root-View-Controller, jener An­
sicht, die das Fenster anzeigt.
DAS SWIFT-HANDBUCH APPS PROGRAMMIEREN FÜR MACOS, IOS, WATCHOS UND TVOS BUCH-UPDATE: HANSER KUNDENCENTER
2   42 Einstieg in iPadOS

    Mit iOS bzw. iPadOS 13 spielt der App-Delegate noch immer eine wichtige Rolle,
    jedoch wurde ein großer Teil seiner Aufgaben in ein anderes Element ausgelagert:
    dem sogenannten Scene-Delegate. Und hier kommen wir zugleich auch zu einer der
    größten Neuerungen in iPadOS, die erst dank des Scene-Delegate überhaupt mög­
    lich werden. Denn iPadOS erlaubt das Erstellen und Anzeigen mehrerer Fenster für
    eine einzige App (siehe hierzu auch Abschnitt 42.3, „Multiple Windows“).
    Um die Darstellung mehrerer Fenster zu ermöglichen, führt Apple in iOS und
    iPadOS 13 mehrere neue Elemente ein, die allesamt unter dem Begriff Scene fir­
    mieren. Eine Scene fasst alle Elemente genau eines Windows zusammen. Gleich­
    zeitig kann eine App unter iPadOS mehrere solcher Scenes besitzen. So lassen sich
    – wenn eine Anwendung das unterstützt – mehrere Fenster parallel öffnen.
    Innerhalb eines Xcode-Projekts machen sich diese Scenes vor allen Dingen durch
    eine neue Klasse bemerkbar, die automatisch bei neuen Projekten erzeugt wird.
    Sie trägt den Namen Scene​Delegate und stellt eine neue Ergänzung zur bereits
    bekannten App​Delegate-Klasse dar. Der Scene-Delegate für die Arbeit mit mehre­
    ren Fenstern verantwortlich. Zudem übernimmt er alle Aufgaben des App-Dele­
    gate, die im direkten Zusammenhang mit dem View-Lifecycle stehen. Und genau
    jener Aspekt ist auch für iPhone-Apps relevant. Sie unterstützen zwar nicht die
    Arbeit mit mehreren Fenstern, nutzen aber auch ab iOS 13 den Scene-Delegate.
    Der Scene-Delegate basiert auf dem neuen UIWindow​Scene​Delegate-Protokoll, das
    wiederum vom UIScene​Delegate-Protokoll abgeleitet ist. Tabelle 42.1 gibt eine
    kleine Übersicht verschiedener Methoden aus dem UIApplication​Delegate-
    Protokoll und dem jeweils zugehörigen Äquivalent des UIScene​Delegate. Die
    genannten Methoden wandern so ab iOS und iPadOS 13 vom App- in den Scene-
    Delegate.

    Tabelle 42.1 Auszug verschiedener UIApplicationDelegate-Methoden und deren UISceneDele-
    gate-Äquivalent
     Bisherige UIApplicationDelegate-Methode    Äquivalent im UISceneDelegate-Protokoll
     application​Will​Enter​Foreground(_­:)     scene​Will​Enter​Foreground(_­:)
     application​Did​Become​Active(_­:)         scene​Did​Become​Active(_­:)
     application​Will​Resign​Active(_­:)        scene​Will​Resign​Active(_­:)
     application​Did​Enter​Background(_­:)      scene​Did​Enter​Background(_­:)

    Unabhängig davon, ob man mehrere Fenster in einer App unterstützt, ist der
    Scene-Delegate die neue Anlaufstelle für alle Events rund um den View-Lifecycle.
    Ergänzend möchte ich euch zudem noch eine weitere und sehr wichtige Methode
    aus dem UIScene​Delegate vorstellen: scene(_­:will​Connect​To:options:). Sie
    ist der Startpunkt zum Erstellen einer Scene in iOS bzw. iPadOS. Das System ruft
    sie auf, sobald eine neue Scene und damit ein neues Fenster für eine Anwendung
42.1 Änderung der Architektur   3

erzeugt wird. Über diese Methode erfolgt dann die gewünschte Konfiguration für
die neue Scene.
In neu erstellten Xcode-Projekten, die auf SwiftUI basieren, findet sich bereits eine
passende (und zugleich sehr simple) Implementierung dieser Methode (siehe Lis­
ting 42.1). Darin erfolgt die Erstellung der Startansicht mittels SwiftUI sowie die
anschließende Zuweisung zu einem UIWindow. Letzteres wird mithilfe des neuen
Initializers init(window​Scene:) erzeugt, das eine Instanz vom Typ UIWindow​
Scene als Parameter erwartet; die wiederum mithilfe des scene-Parameters der
Delegate-Methode ermittelt werden kann.

 Listing 42.1 Standardimplementierung des SceneDelegate unter SwiftUI
 class SceneDelegate: UIResponder, UIWindowSceneDelegate {
     var window: UIWindow?
     func scene(_ scene: UIScene, willConnectTo session: UISceneSession,
 options connectionOptions: UIScene.ConnectionOptions) {
         let contentView = ContentView()
         if let windowScene = scene as? UIWindowScene {
              let window = UIWindow(windowScene: windowScene)
              window.rootViewController = UIHostingController(rootView:
 contentView)
              self.window = window
              window.makeKeyAndVisible()
         }
     }
 }

Die restliche Implementierung verhält sich ähnlich, wie man es bereits von der
Methode application(_­:did​Finish​Launching​With​Options:) des UIApplica-
tion​Delegate kennt. Dank des Scene-Delegate können nun jedoch mehrere Fens­
ter parallel für eine App genutzt werden.
Genau wie die App​Delegate-Klasse wird auch Scene​Delegate mittels der Info.
plist-Datei für eine App registriert. Dazu dient zunächst ein Schlüssel mit dem Na­
men Application Scene Manifest. Darin bringt man in Form eines Dictionaries pro
Scene die benötigten Infos unter. Dazu gehört der Name der zugehörigen Klasse,
die als UIScene​Delegate fungiert, sowie ein Bezeichner für jene Scene. Zusätzlich
kann ein Storyboard angegeben werden, dessen initialer View-Controller als Start­
punkt für die Scene dient; diese Einstellung kennt man auch vom Main storyboard
file base name-Schlüssel.
Erstellt man mittels Xcode ein neues iOS-Projekt, erhält man die genannten Ein­
stellungen out of the box. Ein Beispiel-Auszug aus der Info.plist mit dem beschrie­
benen Verweis auf den Scene-Delegate zeigt Bild 42.1.
4   42 Einstieg in iPadOS

    Bild 42.1 Zum UISceneDelegate-konforme Klassen werden – wie der App-Delegate – über die
    Info.plist-Datei registriert.

    Neben dem Scene-Delegate gibt es einige weitere Scene-Elemente, die den Aufbau
    von iOS-Apps mit Version 13 ändern. Im Folgenden findet ihr eine kleine Über­
    sicht der neuen Elemente.

    UIScene und UIWindowScene
    UIScene und dessen Subklasse UIWindow​Scene repräsentieren genau eine Scene
    eurer App. UIWindow​Scene besitzt hierbei einen Verweis auf das zugehörige Win­
    dow, das die Scene anzeigt.
    Instanzen beider Klassen werden generell vom System selbst erzeugt, sobald
    dieses eine Scene benötigt (sei es eine zentrale Scene für die Hauptansicht einer
    App oder eine neue Scene zum Einblenden eines neuen Fensters). Interaktionen
    mit diesen Elementen finden in der Regel über den Scene-Delegate statt.

    UISceneConfiguration
    Eine Instanz vom Typ UIScene​Configuration kommt bei der Erstellung neuer
    Scenes zum Einsatz. Die Konfiguration enthält Informationen über die zu erzeu­
    gende Scene. Dazu gehört beispielsweise, mit welcher Delegate-Klasse die Scene
    verknüpft ist oder optional der Verweis auf ein Storyboard, dessen initialer View-
42.1 Änderung der Architektur   5

Controller als Startpunkt einer neuen Scene auf Basis der Konfiguration dienen
soll.
UIScene​Configuration-Instanzen lassen sich auf zwei Arten erzeugen. Neben dem
„klassischen“ Weg über den Code könnt ihr alle gewünschten Konfigurationen
auch innerhalb der Info.plist-Datei registrieren und daraus auslesen. Letzteres ist
auch der von Apple präferierte Weg zum Erstellen von Konfigurationen.
Standardmäßig verfügt ein iOS-Projekt über exakt eine UIScene​Configuration, die
schlicht den initialen View-Controller aus dem Main-Storyboard lädt. Nutzt ihr
SwiftUI, entfällt der Verweis auf das Storyboard. Stattdessen wird die initiale View
im Code innerhalb des Scene​Delegate erzeugt.

UISceneScession
Eine UIScene​Session verwaltet eine UIScene und enthält Informationen darüber.
Ein solches Session-Objekt wird automatisch vom System für jede Scene erzeugt,
beide Elemente sind somit direkt miteinander verknüpft. Neue Scenes inklusive
zugehöriger Session lassen sich mithilfe der UIApplication-Klasse erstellen und
verwalten.
Neben einem eindeutigen Identifier besitzt eine UIScene​Session auch die zugrun­
deliegende Konfiguration in Form einer UIScene​Configuration-Instanz, die als
Basis für die Erstellung der Scene dient.
Zusammenfassend lässt sich sagen, dass die Einführung des Scene-Delegates in­
klusive all der vorgestellten neuen Klassen und Protokolle keine dramatischen
Auswirkungen auf bestehende Anwendungen hat. Auch für reine iPhone-Apps er­
gibt sich daraus nicht viel Neues. Stattdessen existiert jetzt eine weitere Schicht,
die sich um das Window-Management kümmert. Unterstützt eine App die Arbeit
mit mehreren Fenstern nicht, bedeutet das im einfachsten Fall, schlicht die Metho­
den des Scene-Delegate so zu implementieren, wie es zuvor entsprechend im App-
Delegate der Fall war. Statt application​Did​Become​Active(_­:) wandert der zuge­
hörige Code des App-Delegate nun in die scene​Did​Become​Active(_­:)-Methode
des Scene-Delegate, genau so verhält es sich mit den anderen genannten Metho­
den.
6   42 Einstieg in iPadOS

    „„42.2 Multitasking
    Eine der großen Stärken des iPad besteht darin, mehrere Apps parallel ausführen
    zu können. Dabei kommen vorrangig zwei Techniken zum Einsatz: Slider Over und
    Split View.
    Mit Slider Over legt sich ein Anwendungsfenster über eine andere aktive App und
    verdeckt so einen Teil von deren Ansicht (siehe Bild 42.2). Slider Over-Fenster sind
    sehr schmal und vergleichbar mit der Breite von iPhone-Apps im Hochformat.
    Diese Ansicht ist ideal, um schnell Informationen aus einer App auszulesen oder
    bestimmte Daten abzugleichen.

    Bild 42.2 Mittels Slide Over legt sich ein App-Fenster über ein anderes.

    Mittels Split View erfolgt die Darstellung zweier Fenster parallel nebeneinander
    (siehe Bild 42.3). Die Größe der beiden Fenster lässt sich mithilfe eines Schiebereg­
    lers in festen Stufen anpassen. So verlieren zwar die Apps, die via Split View dar­
    gestellt werden, einen Teil ihrer Anzeigefläche, dafür kann der Nutzer parallel mit
    beiden Anwendungen arbeiten und direkt zwischen ihnen wechseln.
42.2 Multitasking   7

Bild 42.3 Die Split View ermöglicht die parallele Nutzung zweier Apps.

Es ist auch möglich, beide Darstellungsmöglichkeiten miteinander zu kombinie­
ren. So lassen sich problemlos zwei Apps mittels Split View nebeneinander dar­
stellen, während via Slide Over zusätzlich eine dritte App über die beiden Fenster
gelegt wird.
Damit diese Multitasking-Funktionen des iPad funktionieren, müssen Apps an die
dynamische Größe der Fenster angepasst werden. Gleichzeitig muss die Checkbox
mit dem Titel „Requires full screen“ deaktiviert sein, andernfalls unterstützt die
App weder Slide Over noch Split View auf dem iPad (siehe Bild 42.4).
8   42 Einstieg in iPadOS

    Bild 42.4 Nur wenn die Checkbox „Requires full screen“ in den Target-Einstellungen einer
    iPad-App deaktiviert ist, unterstützt sie Multitasking-Funktionen wie Slide Over und Split View.

    „„42.3 Multiple Windows
    Neu mit iPadOS 13 ist die Möglichkeit, mehrere Fenster für eine App parallel zu
    öffnen. Das ist beispielsweise für dokumentenbasierte Apps eine wahnsinnig span­
    nende Funktion, da Nutzer so parallel mehrere Dokumente in jeweils einem eige­
    nen Fenster auf dem iPad darstellen und verwalten können. Zusammen mit den
    Multitasking-Funktionen Slide Over und Split View entstehen so ganz neue Mög­
    lichkeiten, um mit dem iPad effizient zu arbeiten.
    Es gibt zwei Vorgehensweisen, um aus einer iPadOS-App heraus neue Fenster zu
    erzeugen. Eine davon ist Drag & Drop. So lässt sich beispielsweise durch Einblen­
    den des Docks und Ziehen eines App-Icons auf die Bildschirmfläche jederzeit ein
    neues Fenster erstellen (natürlich vorausgesetzt, dass die App den Umgang mit
    mehreren Fenstern unterstützt). Auch Elemente innerhalb einer App wie Listen­
    einträge oder Symbole, die Drag & Drop unterstützen, können auf die beschriebene
    Art und Weise neue Fenster erzeugen. Alternativ gibt es die Möglichkeit, Fenster
    via Code zu erzeugen und einzublenden.
42.3 Multiple Windows     9

Damit eine App die Erstellung mehrerer Fenster unterstützt, muss zunächst die
Checkbox mit dem Titel „Supports multiple windows“ in den Target-Einstellungen
aktiviert werden (siehe Bild 42.5). Das führt zu einer Aktualisierung des Werts für
den Schlüssel „Enable Multiple Windows“ in der Info.plist-Datei. Jener Schlüssel ist
Teil des Application Scene Manifest-Dictionaries, in dem auch die Scene-Konfigura­
tionen unterkommen.

Bild 42.5 Über die Checkbox „Supports multiple windows“ aktiviert man die Unterstützung zur
Darstellung mehrerer Fenster.

Alleine auf Basis dieser Änderung ist es bereits möglich, mehrere Fenster für die
zugrundeliegende App zu erstellen. Dazu zieht man (wie bereits beschrieben) das
zugehörige App-Symbol aus dem Dock. Die App öffnet sich daraufhin in einem
neuen Fenster – ganz so, als hätte man sie ein zweites Mal gestartet.
Welche Ansicht bei Erstellung eines neuen Fensters erscheint, hängt von der je­
weiligen Konfiguration ab. Die Konfigurationen auf Basis der Klasse UIScene​Con-
figuration fügt man standardmäßig innerhalb der Info.plist-Datei hinzu. Dort fin­
det sich bereits ein Eintrag mit dem Namen „Default Configuration“, dem als
Delegate-Klasse Scene​Delegate zugewiesen ist (siehe Bild 42.6). Das bedeutet,
dass bei Einblenden eines neuen Fensters auf Basis dieser Konfiguration die Scene​
Delegate-Klasse bestimmt, welche Ansicht geladen und dargestellt wird.
10   42 Einstieg in iPadOS

     Bild 42.6 Über Konfigurationen steuert man, welche Delegate-Klasse für das Einblenden eines
     neuen Fensters verantwortlich ist.

     Es lassen sich beliebig viele weitere Konfigurationen innerhalb der Info.plist-Datei
     ergänzen. Durch Einsatz verschiedener Klassen, die konform zum UIWindow​Scene​
     Delegate-Protokoll sind, lässt sich so das Einblenden verschiedener Fenster steuern.
     Eine dokumentenbasierte App kann das beispielsweise nutzen, um über eine Kon­
     figuration eine spezifische Datei in einem neuen Fenster zu öffnen (statt einfach
     die App mit der initialen Startansicht ein zweites Mal einzublenden). Der in der
     Konfiguration definierte zugehörige Delegate regelt hierbei, welche View zu laden
     ist und versieht die mit allen notwendigen Informationen (zum Beispiel dem anzu­
     zeigenden Dokument). Zusätzliche Informationen lassen sich hierbei mittels einer
     NSUser​Activity speichern und weitergeben.
     Um Fenster im Code zu managen, kommen drei neue Methoden zum Einsatz, die
     allesamt Teil der UIApplication-Klasse sind:
     ƒƒ request​Scene​Session​Activiation(_­:user​Activity:options:error​Hand-
         ler:): Erzeugt ein neues Fenster und blendet es ein.
     ƒƒ request​Scene​Session​Refresh(_­:): Aktualisiert die Inhalte eines Fensters.
     ƒƒ request​Scene​Session​Destruction(_­:options:error​Handler:):                  Schließt
         ein Fenster.
42.4 Weitere Änderungen und Verbesserungen   11

„„42.4 Weitere Änderungen und
        Verbesserungen
Neben den genannten Besonderheiten, durch die iPadOS sich von iOS unterschei­
det, gibt es noch einige weitere Features speziell für iPadOS.

PencilKit
Unter dem Namen PencilKit fasst Apple verschiedene Funktionen rund um den
Apple Pencil zusammen. Anders, als es der Name vermuten lässt, handelt es sich
dabei nicht um ein eigenes Framework. Die gesamten unter diesem Begriff zusam­
mengefassten Funktionen sind Teil von UIKit, lassen sich aber (zumindest bisher)
nur im Zusammenspiel mit dem iPad nutzen (dem iPhone fehlt schlicht eine Unter­
stützung des Apple Pencil).

Fonts
Mit iPadOS ist es möglich, eigene Fonts auszuliefern, die sich systemweit nutzen
lassen (also auch außerhalb einer eigenen App). Dazu steht ein neues Font Picker
Interface zur Verfügung.

Desktop-Class Browsing
Safari macht unter iPadOS einen gewaltigen Sprung nach vorne. Der Browser ver­
hält sich nun so wie sein Desktop-Pendant auf dem Mac und fordert nicht länger
Mobilseiten an, sondern die eigentliche Website, so wie sie auch auf dem Mac ab­
gerufen wird.
Darüber hinaus verfügt Safari über neue Funktionen, unter anderem besitzt der
Browser nun – genau wie auf dem Mac – einen eigenen Download-Manager. Ent­
sprechend lassen sich nun Dateien direkt aus Safari in die native Dateien-App he­
runterladen.
Der Weg zum erfolgreichen
Online-Marketing

                               E-Book
                               inside

                                         Weller, Harmanus
                                         Content Design
                                         Durch Gestaltung die Conversion beeinflussen
                                         416 Seiten. Komplett in Farbe. Inklusive E-Book
                                         € 39,–. ISBN 978-3-446-44295-5
                                         Auch einzeln als E-Book erhältlich
                                         € 29,99. E-Book-ISBN 978-3-446-44535-2

Lernen Sie, Content und Design zusammenzuführen, um potenzielle Kunden
von Ihrem Angebot zu überzeugen. Die Autoren erklären Ihnen, wie Sie mit
psychologischen Triggern aus Besuchern Ihrer Website Newsletter-Abonnenten,
Leads und Kunden machen und wie Sie durch Content-Optimierung nachhaltig
Ihre Umsätze steigern.
Das Buch bietet Ihnen eine Übersicht über die Voraussetzungen für erfolgreiches
Content Design sowie eine klar strukturierte Einführung in die Gestaltung und
Konzeption digitaler Inhalte. Profitieren Sie nicht nur vom Expertenwissen der
Autoren, sondern auch von erfahrenen Marketingverantwortlichen bei Facebook,
Zalando, Pixum und LogMeIn.

Mehr Informationen finden Sie unter www.hanser-fachbuch.de
Sie können auch lesen