Schlagwort-Archive: Android

App-Dev mit Cordova

Aufgabe ist, eine App für Smartphone bzw. Tablet zu erstellen. Erste Hürde ist die Entscheidung für eine native Anwendung oder für eine Webapp. Der Unterschied zwischen diesen beiden Typen ist, dass eine native App speziell für ein Betriebssystem entwickelt wird (in der entsprechenden Programmiersprache: Objective-C für iOS, C/C++ für Android), eine Webapp aber in den bekannten Internettechnologien HTML5, CSS, Javascript. Letztere muss am Ende lediglich für das entsprechende Endgerät gepackt werden (wofür Programme wie PhoneGap eingesetzt werden können), kann aber auch ohne Anfassen in jedem HTML5-fähigen Browser benützt werden.

Die Entscheidung ist letzlich pro Webapp gefallen, auf Grund des geringeren Entwicklungsaufwandes für eine möglichst breite Palette an Endgeräten.

Grundlage für die hier durchgeführten Schritte bildet der Leitfaden auf cordova.apache.org. Apache Cordova ist ein Open-Source-mobile-Entwicklung-Framework.

$ sudo npm install -g cordova
$ cd <path>/
$ cordova create -d app de.ibsefehse.app myApp
    -d                  => verbose (Detail-Informationen zeigen)
    app                 => Verzeichnis (wird neu erstellt und sollte noch nicht vorhanden sein)
    de.ibsefehse.app    => project-identifier
    myApp               => Applications display title
$ cd app/
$ cordova platform ls
$ cordova platform add ios

An dieser Stelle hakt es zum ersten Mal: die entsprechenden SDK (Software Development Kit) müssen natürlich auf der lokalen Maschine vorhanden und installiert sein. Also geht’s auf die Suche …

Da der MAC noch unter OS X 10.7 läuft, können XCode (die SDK für iOS benötigt mindestens OS X 10.10) bzw. Android Studio (benötigt mindestens OS X 10.8.5) nicht installiert werden. Vielleicht funktioniert ja die alleinige Installation der Android-SDK-Tools (ohne IDE):

  1. Installing the Android SDK
  2. Stand-Alone SDK Tools
  3. zip-Datei entpacken und irgendwo ins home-Directory verschieben, z.B. ~/Development/android-sdk/
$ cd ~/Development/android-sdk/tools/
$ ./android update sdk --no-ui
    => mehrere Lizenzen abnicken und warten
$ cd <path>/app/
$ cordova platform add android

Die umzuwandelnde Website muss nun unter <path>/app/www/ vorhanden sein und wird danach mittels $ cordova prepare android an die jeweiligen Plattformen angepasst. Der Befehl $ cordova compile android schlägt unterdessen fehl, da ich die PATH-Variable noch nicht angepasst habe: android-sdk/platform-tools/ und android-sdk/tools/ müssen hinzugefügt werden (vgl. Post vom 10.06.2015). Doch auch danach stimmt die OS X-Version nicht und der Build-Prozess bricht ab.

Nach dem Update auf OS X 10.10 installiere ich Android Studio in voller Schönheit (IDE + SDK).

$ cordova build

Dabei wird Gradle heruntergeladen, eine Build-Umgebung, die das Erstellen und Ausführen von Android-Anwendungen per Kommandozeile erlaubt. Im Verlaufe des Build-Prozesses kommt es allerdings zum Fehler: „No installed build tool found. Please install the Android build tools version 19.1.0 or higher.“ Warum die vom Android-SDK mitgebrachten Build-Tools nicht eingebunden werden, bleibt schleierhaft.

Ein anderer Weg – Erstellen per Android-SDK:

$ cd website/
$ android create project --target 20 --name myApp --path /Applications/MAMP/htdocs/website/app/ --activity MyActivity --package de.ibsefehse.app
Die Angabe für --target erhält man durch "$ android list targets".

Nach dem Erstellen der apk-Datei (im Unterverzeichnis platforms/android/build/outputs/apk/) kann die App per $ adb install platforms/android/build/outputs/apk/myApp-debug.apk auf dem emulierten Device installiert und danach per $ cordova emulate android gestartet werden. Nach einem Neustart des Macs führt der Befehl „cordova build“ dann übrigens auch zum Erfolg 🙂

Letztenendes bleibt die Erkenntnis, dass nach erfolgter installation aller Abhängigkeiten (SDK, OS) das Erstellen einer Web-App kein allzugroßes Problem mehr darstellt. Mit einigen wenigen Terminal-Befehlen steht die Web-App als native App bereit:

$ cordova create myApp de.ibsefehse.app myApp
=> Quellcode im Unterverzeichnis www/ bearbeiten
$ cordova platform add android
$ cordova build
$ android avd => Device starten
$ cordova build android