Eine Einführung in Cordova Grundlagen

In diesem Artikel werde ich Ihnen Cordova vorstellen, ein Framework für die Entwicklung mobiler Anwendungen. Wenn Sie Cordova noch nicht kennen oder wissen möchten, ob es das richtige Werkzeug für Ihr nächstes Projekt ist, dann sind Sie hier genau richtig. In diesem Artikel möchte ich folgende Fragen beantworten:

  • Was ist Cordova??
  • Wie funktioniert es unter der Haube??
  • Was kann ich mit Cordova bauen??
  • Wie fange ich mit Cordova an und was brauche ich??

Lass uns weitergehen und eintauchen.

1. Was ist Cordova??

Cordova ist ein Framework für die Entwicklung mobiler Anwendungen, das hauptsächlich für Webentwickler gedacht ist. Webentwickler können Web-Technologien wie HTML, CSS und JavaScript verwenden, um mobile Anwendungen zu erstellen. Wie jede andere Technologie hat auch Cordova seine Vor- und Nachteile.

Pros

  • Leicht zu lernen Wenn Sie ein Webentwickler sind, hat Cordova eine sanfte Lernkurve. Sie können Ihre Fähigkeiten als Webentwickler leicht anwenden, um eine App mit Cordova zu erstellen. Sie müssen sich nur mit der Befehlszeile vertraut machen, um mit Cordova arbeiten zu können.
  • Zugriff auf native Funktionen Mit Cordova haben Sie Zugriff auf systemeigene Gerätefunktionen wie Kamera, Kontakte, Standortbestimmung, Medien, SMS und viele andere.
  • Kostenlos Für die Verwendung von Cordova müssen Sie nichts bezahlen.
  • Open Source Jeder kann zum Quellcode von Cordova beitragen, um ihn zu verbessern. Plugins sind auch Open Source und jeder kann eigene Plugins erstellen. Dies bedeutet, dass Entwickler wie Sie diese Plugins problemlos installieren und verwenden können. Oder Sie können ein eigenes Plugin erstellen und mit der Community teilen.
  • Große Gemeinschaft Viele Entwickler verwenden Cordova. Bei Stack Overflow gibt es beispielsweise fast 40.000 Fragen, die mit gekennzeichnet sind Cordova. Dies bedeutet, dass Sie niemals alleine sein werden, um seltsame Fehler zu lösen (falls Sie jemals auf sie stoßen). Die Leute in der Community sind immer bereit zu helfen, alles, was Sie tun müssen, ist zu fragen.
  • Einmal schreiben, überall bereitstellen Cordova kompiliert Ihre App in einer Paketdatei, die von den meisten App-Stores benötigt wird. Dies bedeutet, dass mit Cordova erstellte Apps problemlos im App Store Ihrer Wahl bereitgestellt werden können. Bei der Bereitstellung auf Android erstellt Cordova eine APK (Android Application Package) -Datei. Wenn Sie unter iOS bereitstellen, wird Cordova unter kompiliert IPA. Für Windows ist es APPX.

Cons

  • Schlechte Dokumentation Es ist schwierig, Informationen zu wirklich spezifischen Dingen zu finden, z. B. welche Pakete Sie mit dem Android SDK Manager installieren müssen. Und wenn Sie etwas nachschlagen, deuten die Ergebnisse auf Informationen zu verschiedenen Versionen von Cordova hin. Für Anfänger ist dies manchmal verwirrend, da möglicherweise eine andere Version von Cordova installiert ist und die Dokumentation für eine andere Version von Cordova betrachtet wird.
  • Langsam als einheimisch Da mit Cordova erstellte Apps im Wesentlichen Web-Apps sind, die in einer Webansicht enthalten sind, funktionieren sie nicht so gut wie ihre nativen Pendants. Dies bedeutet, dass es eine Beschränkung gibt, welche Art von Apps Sie erstellen können. Beispielsweise ist eine Videobearbeitungsanwendung nativ besser gebaut, da sie bei der Arbeit stark von der CPU und der GPU abhängig ist.
  • Frameworks Da Cordova nur ein Wrapper für eine Webanwendung ist, enthält es keine Komponenten der Benutzeroberfläche, Animationen und andere nützliche Elemente, die Sie in den meisten nativen Anwendungen finden. Das bedeutet, dass Sie diese alle selbst implementieren müssen. Aus diesem Grund verlassen sich viele Entwickler beim Erstellen der Benutzeroberfläche ihrer Anwendungen auf Frameworks wie Ionic oder Onsen UI.
  • Fehler in Plugins Nicht jedes Plugin ist gleich. Es gibt solche, die Fehler haben oder nicht wie erwartet funktionieren.
  • Nicht jedes Gerät ist gleich Der Zugriff auf native Gerätefunktionen erfolgt über Plugins. Cordova stellt eine API zur Verfügung, damit diese Plugins in der Webansicht verwendet werden können, aber nicht jedes Gerät ist dasselbe. Auf jedem Gerät gibt es Macken. Einfach ausgedrückt: Nicht jede Option, die Sie für ein Plugin festlegen können, funktioniert auf jedem Gerät. Zum Beispiel auf Android die cameraDirection Der Wert ergibt immer ein mit der rückwärts gerichteten Kamera aufgenommenes Foto.

2. Cordova und PhoneGap

Bei der Arbeit mit Cordova stößt man oft auf den Begriff PhoneGap. PhoneGap ist der Name des ursprünglichen Projekts, das 2009 von einem Startup namens Nitobi erstellt wurde. Im Jahr 2011 wurde das Unternehmen von Adobe übernommen.

Beachten Sie, dass Adobe nicht die eigentliche Codebase gekauft hat, sondern nur den Namen und die Mitarbeiter von Nitobi. Der Open Source-Kern wurde an die Apache Software Foundation gespendet, die jetzt als Cordova bekannt ist.

Eine gängige Analogie, die von Entwicklern verwendet wird, ist, dass Cordova PhoneGap mit WebKit und Safari verbindet. Mit anderen Worten, PhoneGap ist eine Distribution von Cordova, die von Adobe verwaltet wird. Wenn Sie mehr über die Geschichte erfahren möchten, finden Sie diesen Artikel im PhoneGap-Blog von Brian LeRoux.

In der Praxis sind PhoneGap und Cordova grundsätzlich gleich. Sie können beim Starten eines Projekts zwischen PhoneGap oder Cordova wählen. Der einzige Unterschied ist die CLI (Command Line Interface). Die CLI von PhoneGap lässt sich in Adobe PhoneGap Build integrieren. Mit diesem Dienst können Entwickler ihre Apps auf der Plattform ihrer Wahl zusammenstellen, indem sie sie auf die PhoneGap Build-Website hochladen.

3. Wie funktioniert Cordova unter der Haube??

Die Benutzeroberfläche von Cordova ist eine Webansicht. Sie können sich die Webansicht als Registerkarte in einem Browser vorstellen. Wenn Sie eine Cordova-Anwendung kompilieren, wird Ihr HTML-, CSS- und JavaScript-Code nicht tatsächlich verwendet und automatisch in nativen Code konvertiert, der für jede Plattform spezifisch ist.

Cordova fungiert als Container für die App, die Sie mit Webtechnologien schreiben. Wenn die App kompiliert wird, bleibt Ihr Code tatsächlich erhalten. Der Compiler nimmt nur Ihren Code und stellt ihn der Webansicht zum Rendern zur Verfügung.

Wenn Sie jemals eine HTML-Datei in einem Browser geöffnet haben, ist das grundsätzlich dasselbe. Bitte beachten Sie, dass diese Webansicht auf jedem Gerät anders implementiert ist. Dies bedeutet, dass es bestimmte Funktionen gibt, die auf einigen Plattformen nicht verfügbar sind oder anders implementiert sind.

4. Native Device-Funktionalität

Mit Cordova haben Sie Zugriff auf native Gerätefunktionen durch die Verwendung von Plugins. Plugins sind Add-Ons, die eine JavaScript-API für native Komponenten verfügbar machen. Sie ermöglichen den Zugriff auf native Gerätefunktionen, indem die von ihr bereitgestellte JavaScript-API verwendet wird.

Wie Sie vielleicht vermuten, sind Plugins in nativem Code geschrieben. Dies bedeutet, dass Sie das SDK für die verschiedenen Plattformen installieren müssen, auf denen Sie die Bereitstellung durchführen möchten. Nur dann können Sie den nativen Code für jede dieser Plattformen schreiben. Anschließend rufen Sie den nativen Code über die JavaScript-API auf, sodass in der Webansicht darauf zugegriffen werden kann.

Es gibt zwei Arten von Plugins, die Sie im Cordova-Plugin-Ökosystem finden können. Zuerst sind die offiziellen Plugins. Diese werden von der Cordova-Gemeinschaft gepflegt. Sie wissen, dass ein Plugin offiziell ist, wenn es das hat Cordova-Plugin Präfix.

Die andere Art von Plugins sind benutzerdefinierte Plugins. Diese werden von Entwicklern wie Ihnen und mir gebaut. Häufig werden sie dazu entwickelt, ein sehr spezifisches Problem zu lösen, z. B. das Anschließen einer App an Facebook oder das Ionic Keyboard Plugin, um die Interaktion mit der Tastatur zu erleichtern.

Wenn Sie mehr darüber erfahren möchten, welche Plugins Sie mit Cordova verwenden können, besuchen Sie die Cordova Plugins-Website.

5. Was kann man mit Cordova bauen??

Während Sie mit Cordova so ziemlich jede Art von App erstellen können, gibt es einige Einschränkungen, über die wir später sprechen werden. Lassen Sie uns zunächst einige Beispiel-Apps durchgehen, die Sie mit Cordova erstellen können.

  • TripCase TripCase ist eine Reise-App, die Sie durch jede Etappe Ihrer Reise führt.
  • FruitSalad FruitSalad ist ein Puzzlespiel ähnlich wie Bejeweled.
  • Panasonic World Heritage Calendar Dies ist eine Kalender-App, die Ihnen wunderschöne Fotos von Welterbestätten zeigt. Es enthält auch Wissenswertes über Kultur und Natur, die mit den Stätten in Verbindung stehen.
  • HealthTap HealthTap ist der Stapelüberlauf für Gesundheitsfragen.
  • Wikipedia Die offizielle Wikipedia-App wurde mit Cordova erstellt.

Basierend auf den oben aufgeführten Apps sollten Sie jetzt eine Vorstellung davon haben, welche Art von Apps Sie mit Cordova erstellen können. Wenn Sie Entwickler sind, haben Sie möglicherweise bemerkt, dass alle diese Apps das Internet nutzen. Sie alle kommunizieren mit einem Remote-Server, um Daten abzurufen. Das ist, was Cordova gut kann: Daten von einem Server abrufen, dem Benutzer präsentieren und auf Eingaben des Benutzers warten und darauf antworten.

Dies bedeutet jedoch nicht, dass Sie mit Cordova keine eigenständigen Apps erstellen können. Es gibt viele clientseitige Datenbanklösungen, die Sie problemlos verwenden können. Ein beliebtes Beispiel ist LokiJS, ein schneller, dokumentenspezifischer Datenspeicher für Node.js, den Browser und Cordova. In einer Fotogalerie-App können Sie beispielsweise diese Bibliothek verwenden, um die Pfade von Fotos zu speichern und sie bei Bedarf aus dem Speicher zu holen.

Mit Cordova können Sie nahezu jede CSS- oder JavaScript-Bibliothek verwenden, die Sie in cdnjs finden können, da der von Ihnen geschriebene Code im Browser ausgeführt wird. Sie müssen jedoch vorsichtig sein, nicht alle Browser sind gleich. Und das bringt uns zum nächsten Abschnitt.

6. Einschränkungen

Wie bei allem anderen im Leben gibt es immer Einschränkungen. Cordova ist keine Ausnahme. In diesem Abschnitt werde ich über die Einschränkungen von Cordova sprechen.

Was auch immer Sie mit nativem Code erreichen können, können Sie auch mit Cordova erreichen. Es gibt jedoch zwei häufige Einschränkungen, Performance und Plugin-Verfügbarkeit.

Performance

Cordova greift über Plug-Ins auf native Gerätefunktionen zu. Dies ist mit Kosten verbunden, die für native Apps nicht anfallen. Wie ich bereits in diesem Tutorial erwähnt habe, ist es keine gute Idee, Apps mit Cordova zu erstellen, die stark auf die CPU oder GPU angewiesen sind. Solche Apps sind nicht so leistungsfähig, wie Sie es sich wünschen, insbesondere wenn Sie mit einheimischen Kollegen verglichen werden.

Plugin-Verfügbarkeit

Eine weitere Einschränkung ist die Verfügbarkeit von Plugins. Wenn eine bestimmte Funktionalität nicht über ein vorhandenes Plugin im Repository verfügbar ist, können Sie das Plugin nur selbst erstellen.

Webansicht

Standardmäßig verwendet Cordova die Webansicht der Plattform zum Rendern der Benutzeroberfläche. Dies bedeutet, dass Sie auf jeder Plattform, auf die Sie abzielen, mit einer anderen Webansicht interagieren.

Darüber hinaus können verschiedene Versionen des Betriebssystems der Plattform eine andere Webansicht oder eine andere mit unterschiedlichen Features aufweisen. Beispielsweise kann auf modernen Android-Geräten eine Variante von Android ausgeführt werden, auf der WebRTC aktiviert ist, während ältere Versionen von Android diese Funktion nicht aufweisen.

Für Cordova-Entwickler ist es eine gute Sache, dass Projekte wie Crosswalk zur Rettung kommen. Mit Crosswalk können Sie eine benutzerdefinierte Webansicht in Cordova-Apps verwenden und die Unterschiede zwischen den Plattformen normalisieren. Später in diesem Tutorial werde ich Ihnen zeigen, wie Sie Crosswalk in einem Cordova-Projekt verwenden können.

Erfahren Sie mehr in unserem Cordova-Kurs

Wenn Sie mehr über Cordova erfahren möchten, besuchen Sie den Kurs von Reggie Dawson über Cordova. Reggie stellt Ihnen die Plattform vor und hilft Ihnen, eine Cordova-App von Grund auf zu erstellen. Schauen Sie sich das Video unten an, um einen Vorgeschmack auf den Kurs zu bekommen.

Fazit

Sie sollten jetzt eine gute Vorstellung davon haben, was Cordova ist und wie es seine Magie ausübt. Ich hoffe, dieser Artikel hat die Frage beantwortet, ob Cordova das richtige Werkzeug für Ihr nächstes mobiles Projekt ist.

Im nächsten Artikel machen wir uns die Hände schmutzig, indem wir mit Cordova eine mobile Anwendung erstellen. Fühlen Sie sich frei, Fragen oder Kommentare in den Kommentaren zu hinterlassen.