App-Entwicklung mit Dart und Flutter 2
eBook - ePub

App-Entwicklung mit Dart und Flutter 2

Eine umfassende Einführung

  1. 255 Seiten
  2. German
  3. ePUB (handyfreundlich)
  4. Über iOS und Android verfügbar
eBook - ePub

App-Entwicklung mit Dart und Flutter 2

Eine umfassende Einführung

Angaben zum Buch
Buchvorschau
Inhaltsverzeichnis
Quellenangaben

Über dieses Buch

Ende 2018 veröffentlichte Google Flutter, ein neues Framework zur Programmierung von Apps für Android und iOS.
Das Buch gibt eine Einführung in die Programmiersprache Dart, der Sprache, in der für Flutter programmiert wird.
Danach werden die Grundlagen der App-Programmierung mit Flutter in der Version 2 beschrieben. Anhand von Praxisbeispielen wie einer Spiele-App, einer Chat-App und einer Zeichen-App werden wichtige Aspekte wie der Umgang mit Mediendateien oder die Anbindung von Cloud-Diensten erklärt.
Sowohl die Programmierung von mobilen als auch von Desktop-Anwendungen wird besprochen.Neue wichtige Funktionen von Dart 2.12 und Flutter 2 werden beschrieben:
- Nullsicherheit
- Desktop-AnwendungenZielgruppe sind Personen mit Vorkenntnissen in der Programmierung, z. B. Studenten oder Entwickler.- Einführung in die Grundlagen der Sprache Dart und der Programmierung mit Flutter 2
- Fortgeschrittene Konzepte werden anhand eines größeren Beispiels in Form eines Spiels erklärt

Die Beispiel-Projekte aus dem Buch sind auf folgendem GitHub-Repository zum Download verfügbar: https://github.com/meillermedia

Im Verlauf der Zeit könnten weitere Branches hinzukommen. Die Standard-Branches sind allerdings die, die den Stand im Buch entsprechen.

Häufig gestellte Fragen

Gehe einfach zum Kontobereich in den Einstellungen und klicke auf „Abo kündigen“ – ganz einfach. Nachdem du gekündigt hast, bleibt deine Mitgliedschaft für den verbleibenden Abozeitraum, den du bereits bezahlt hast, aktiv. Mehr Informationen hier.
Derzeit stehen all unsere auf Mobilgeräte reagierenden ePub-Bücher zum Download über die App zur Verfügung. Die meisten unserer PDFs stehen ebenfalls zum Download bereit; wir arbeiten daran, auch die übrigen PDFs zum Download anzubieten, bei denen dies aktuell noch nicht möglich ist. Weitere Informationen hier.
Mit beiden Aboplänen erhältst du vollen Zugang zur Bibliothek und allen Funktionen von Perlego. Die einzigen Unterschiede bestehen im Preis und dem Abozeitraum: Mit dem Jahresabo sparst du auf 12 Monate gerechnet im Vergleich zum Monatsabo rund 30 %.
Wir sind ein Online-Abodienst für Lehrbücher, bei dem du für weniger als den Preis eines einzelnen Buches pro Monat Zugang zu einer ganzen Online-Bibliothek erhältst. Mit über 1 Million Büchern zu über 1.000 verschiedenen Themen haben wir bestimmt alles, was du brauchst! Weitere Informationen hier.
Achte auf das Symbol zum Vorlesen in deinem nächsten Buch, um zu sehen, ob du es dir auch anhören kannst. Bei diesem Tool wird dir Text laut vorgelesen, wobei der Text beim Vorlesen auch grafisch hervorgehoben wird. Du kannst das Vorlesen jederzeit anhalten, beschleunigen und verlangsamen. Weitere Informationen hier.
Ja, du hast Zugang zu App-Entwicklung mit Dart und Flutter 2 von Dieter Meiller im PDF- und/oder ePub-Format sowie zu anderen beliebten Büchern aus Informatik & Programmierung. Aus unserem Katalog stehen dir über 1 Million Bücher zur Verfügung.

Information

Jahr
2021
ISBN
9783110753172
Auflage
2

1Einleitung

Dieses Buch befasst sich mit einer innovativen Technologie zur effizienten Entwicklung von Apps für Mobilgeräte. Damit wird es möglich, native Apps plattformübergreifend in nur einer Programmiersprache zu verwirklichen. Verschiedene praxisnahe Beispiele führen in die neue Technologie mit dem Namen „Flutter“ ein. Hauptteil ist die Beschreibung einer komplexeren App, eines 2D-Spiels mit dem Namen „Chicken Maze“. Ziel des Spiels ist es, ein Huhn durch mehrere Level zu navigieren, dabei kann man Punkte sammeln und muss sich Feinden stellen.
Als Steve Jobs Anfang 2007 das iPhone präsentierte, war das eine Zäsur in der digitalen Welt. Er demonstrierte auch eine neuartige Art von Software, die man auf dem neuen Gerät laufen lassen kann, die sogenannten Apps. Das Wort ist eine Abkürzung für „Applications“, also Anwendungen. Die Abkürzung sollte vermutlich suggerieren, dass es sich hierbei um kleinere Programme handelt. Tatsächlich waren die ersten Apps kleinere Spielereien, beispielsweise die Biertrinker-App: Man konnte das Handy an den Mund führen und kippen, ein auf dem Display zu sehender Bierpegel wurde langsam weniger, am Ende ertönte ein Rülpsgeräusch. Verblüffend daran war, dass der Pegel immer die horizontale Ausrichtung beibehielt, da das Programm die Neigung des Gerätes mithilfe eines eingebauten Sensors bestimmen konnte. Die App konnte und kann man über den App-Store beziehen, eine für damalige Zeiten revolutionäre Cloud-basierte Software-Verkaufsplattform von Apple, exklusiv für die Mobilgeräte von Apple.
Die Leute standen Schlange an den Apple-Stores, um ein iPhone zu erwerben, und waren gierig nach neuen Apps. Auch die Entwickler stürzten sich auf das neue Gerät, es war eine Art neuer Goldrausch. 2008 kam dann das erste Konkurrenz-Handy mit einem Android-Betriebssystem heraus. Das Betriebssystem wurde vor allem von Google entwickelt. Damit stellte Google den Herstellern von Mobilgeräten eine fertige Systemsoftware zur Verfügung. Dort integriert wurde ebenfalls ein Store, der Google Play-Store. Kurzzeitig gab es weitere Konkurrenz-Systeme wie Windows Mobile oder webOS, die sich jedoch nicht etablieren konnten und schließlich wieder verschwanden. Übrig geblieben sind iOS und Android, heutige Entwicklungs-Werkzeuge konzentrieren sich deshalb ausschließlich auf diese beiden. Der Goldrausch ist schon lange vorbei, und mittlerweile muss man viel Aufwand als Entwickler treiben, um kommerziellen Erfolg durch die Entwicklung von Apps zu haben.

1.1Cross-Plattform Entwicklung

Oft werden Apps zweimal entwickelt und individuell auf die jeweilige Plattform portiert. Native Apps1für die iOS-Umgebung, also für Apple-Mobilgeräte, werden mithilfe der Programmiersprachen Objective-C oder Swift und Apple-eigenen Frameworks programmiert. Android-Apps basieren dagegen meist auf der Java-Plattform mit den Programmiersprachen Java oder Kotlin. Will man mit der hauseigenen Technologie der konkurrierenden Firmen arbeiten, muss man den Code mühselig von Hand in die anderen Sprachen übersetzen.
Der Bedarf für eine plattformübergreifende Lösung war deshalb schon bald vorhanden, verschiedene Technologien wurden entwickelt. Grundsätzlich kann man zwischen zwei Ansätzen unterscheiden: Zum einen gibt es Frameworks, die mittels Web-Technologien arbeiten. Das sollte man allerdings nicht mit Web-Apps verwechseln. Diese sind lediglich Webseiten, die sich an das Mobilgerät möglichst gut anpassen. Für App-Entwicklung gibt es das Vorgehen, dass man Webseiten in die App einbettet und diese über eine Browser-Komponente, die den gesamten Bildschirm ausfüllt, präsentiert. Der eigene Code wird in JavaScript programmiert. Über ein API kann man mit nativen Komponenten sprechen, die dann die spezielle Hardware des Gerätes ansprechen kann. Diese Vorgehensweise hat zwei Nachteile: Man kann nur solche Features nutzen, die auf beiden Plattformen verfügbar sind. Zudem ist die Performance eingeschränkt, da man es schließlich mit einer Browser-Anwendung zu tun hat. Der Vorteil ist, dass sich auch Web-Entwickler an die App-Programmierung wagen können. Bekannte Frameworks dieser Art sind React Native von Facebook und Apache Cordova (ehemals PhoneGap von Adobe).
Der andere Ansatz ist folgender: Man programmiert mit Plattform-unspezifischen Sprachen und Frameworks, die dann in die gewünschte Umgebung cross-kompiliert werden und deshalb performanter sind. Ein bekannter Vertreter dieser Technologie ist Xamarin von Microsoft. Dort wird mit C# programmiert. Auch das Flutter-Framework mit der Programmiersprache Dart fällt in diese Kategorie.

1.2Motivation

Der Hype um Flutter setzte 2018 ein, als bekannt wurde, dass Google an einem neuen Betriebssystem mit dem Namen Fuchsia arbeitet und es Spekulationen gab, dass dieses neue Betriebssystem Android ersetzen solle. Mittlerweile hat Google dies dementiert und verkündet, dass das neue Betriebssystem auf zukünftigen neuartigen Geräten zum Einsatz kommen soll. Fuchsia ist Open Source und frei verfügbar, man kann es ausprobieren und installieren[35]. Bei der Oberflächenprogrammierung kommt Flutter zum Einsatz. Im Buch wird auf Fuchsia selbst nichtweiter eingegangen, allerdings kann man die im Buch vermittelten Kenntnisse ebenso bei der Anwendungsentwicklung für Fuchsia anwenden. Die grafische Benutzeroberfläche wird mit einer Render-Engine namens Skia visualisiert, programmiert wird diese in Flutter. Das Framework war nach der ersten Veröffentlichung in der Alpha- bzw. Beta-Phase und erlaubte bereits die Programmierung von nativen Apps für iOS und Android-Systeme. Zudem gab es Empfehlungen von Google, dass man seine Apps besser mit Flutter realisieren soll, da dieses das Google Material-Design realisiert. Das Interesse an Flutter war dadurch auch beim Autor geweckt, der zu dieser Zeit eine Lehrveranstaltung für Medieninformatiker zur App-Programmierung plante.

1.3Zielgruppe

Die Zielgruppe für das Buch sind dementsprechend interessierte App-Enwickler*innen, die sich für die neue plattformübergreifende Programmierung von Apps interessieren. Hierbei kann es sich um professionelle Programmierer*innen oder Studierende von Studiengängen mit Informatik- oder Medienbezug handeln. Alle diese Personen sollten über gewisse Grundkenntnisse in der Programmierung verfügen. Das Buch gibt keine grundlegende Einführung in die Programmierung. So wird nicht auf den Sinn von Variablen, Schleifen und Kontrollstrukturen eingegangen. Zwar wird auch für diese die Syntax für Dart erklärt, aber der Zweck der Konstrukte sollte klar sein. Auch Kenntnisse der objektorientierten Programmierung sollten vorhanden sein. Idealerweise sollten sich die Leser*innen auch mit Programmbibliotheken und der Kommandozeile bereits auseinandergesetzt haben. Kenntnisse in Java, C#, JavaScript oder C++ als erste Programmiersprache wären ideal.

1.4Aufbau und Ziel des Buches

Das Buch will auf Fallstricke hinweisen, in die man zwangsläufig gerät, wenn man sich auf das Abenteuer einlässt, eine neue Programmiersprache und ein neues Framework zu lernen. Das Buch besteht aus einem Grundlagen- und einem Praxisteil. Im ersten Teil werden die wichtigsten Konstrukte der Sprache Dart erklärt. Im Anschluss gibt es eine Einführung in die App-Programmierung mit Flutter. Dort werden schon einfache Beispiele gezeigt. Im Praxis-Teil folgen komplexere Beispiele, beginnend mit einer Messenger-App, die die Verbindung der App mit der Cloud demonstriert. Es folgt ein komplexeres Beispiel, ein 2D-Spiel mit dem Namen „Chicken Maze“, bei dem ein Huhn der Spielcharakter ist. Das Spiel ist nicht zu komplex, aber mehr als eine Demo-App. Es verfügt über Features, die auch professionelle Anwendungen benötigen. Der Code der Beispiele wird im Detail erklärt, dabei werden spezifische Programmiertechniken von Flutter und Dart beschrieben.

Teil I: Grundlagen

Im ersten Teil wird zuerst auf die Syntax und die Besonderheiten der Programmiersprache Dart eingegangen. Danach wird das Framework Flutter vorgestellt: dessen Philosophie, Konventionen und Struktur.

2 Grundlagen von Dart

Im Folgenden wird die Sprache Dart kurz vorgestellt und eine vollständige Einführung in die Programmiersprache Dart gegeben. Allerdings werden hier keine Grundlagen der Programmierung vermittelt. Grundkenntnisse in der imperativen sowie der objektorientierten Programmierung sollten bei den Leser*innen vorhanden sein. Im Kapitel wird versucht, Besonderheiten der Sprache im Vergleich zu anderen Sprachen und Grundlagen zu vermitteln, die wichtig sind, um den Umgang mit dem Flutter-Framework zu verstehen. Behandelt wird Dart in der Version 2.12
Zur Erläuterung von Teilen der Syntax wird die erweiterte Backus-Naur-Form (BNF) genutzt, eine Meta-Syntax. Hierbei wird allerdings nicht eine vollständige korrekte Beschreibung der Dart-Sprache geliefert, wie es für Compiler oder Standards nötig wäre. Manche Nicht-Terminale werden auch nicht weiter aufgelöst. Es sollte klar werden, was beispielsweise mit <Bedingung> (ein boolescher Ausdruck) gemeint ist.

2.1 Die Sprache Dart

Dart ist eine Programmiersprache, die von Google entwickelt wird. Neben Dart wurden von Google zahlreiche andere Programmiersprachen entworfen, etwa Groovy. Diese Sprache ist kompatibel zu Java und erzeugt Code für die Java Virtual Machine. Zeitgleich zu Dart wurde die Sprache Go herausgebracht. Go ist eine hardwarenahe Sprache, die zur Systementwicklung eingesetzt werden kann, ähnlich C und C++. Go soll eine moderne Version dieser Sprachen sein und auch schneller kompilieren.
Dart, im Gegensatz dazu, wurde als Sprache zur Anwendungsentwicklung entworfen. Ursprünglich wurde Dart als Sprache für den Web-Browser Chrome entwickelt. Der Ruf von Dart war deshalb in der Entwicklergemeinde umstritten, da es eine direkte Konkurrenz zu JavaScript darstellte und den Bestrebungen der Vereinheitlichung und Kompatibilität von Web-Browsern zuwiderlief. Man fürchtete einen neuen Browserkrieg wie in den 2000er Jahren, als Microsoft Visual Basic als Browsersprache in Konkurrenz zur damaligen Netscape-Sprache JavaScript einführte. Deshalb war die Akzeptanz der Sprache Dart eher gering und es wurde ruhig um Dart.
Anfang 2018 kündigte Google ein neues Framework zur Entwicklung von Apps an: Flutter (siehe Kap. 4). Die Entwicklung in Flutter sollte ausschließlich in Dart erfolgen. Zum Start von Flutter wurde auch Dart modernisiert und liegt nun in...

Inhaltsverzeichnis

  1. Title Page
  2. Copyright
  3. Contents
  4. Dank
  5. 1 Einleitung
  6. Teil I: Grundlagen
  7. Teil II: Praxis
  8. Abbildungsverzeichnis
  9. Stichwortverzeichnis