Umgang mit Cordova

  • 5 Antworten
  • Letztes Antwortdatum
N

Nemolus

Ambitioniertes Mitglied
1
Hallo Zusammen,
seit ein paar Jahren schreib ich hier und da mal eine kleine Android App. Aber immer in Java mit Eclipse.
Jetzt hatte ich eine Anfrage zwecks Cross-Plattform App. Grundsäztlich kommt mir da HTML5 in den Sinn und über PhoneGap bin ich auch schon öfters gestolpert. Nach einigem googlen und lesen bin ich jetzt bei Cordova hängen geblieben. Aus der Gewohnheit mit Eclipse und Java gibt es da jetzt noch ein paar offene Fragen, die ich bis jetzt auch nach der Suche hier im Forum nicht beantworten konnte.
Plattform spezifisch wird per Kommandozeile übersetzt. Für jede Plattform die ich adressiere benötige ich das entsprechende, zusätzliche SDK auf der Platte. Aber kann ich weiterhin in Eclipse entwickeln? Wenn ich das Cordova Projekt per Kommandozeile erstellen lasse, und dann in Eclipse als Android Projekt importiere, kann ich es dann später immer noch für iOS übersetzen (Kommandozeile).

Könnt Ihr mir da weiterhelfen?
 
Hallo Nemolus,

ich habe erst letztens zwei Apps mit Cordova erstellt. Beide sind jetzt auch im Store.
Du kannst ruhig in Eclipse entwickeln, aber ich finde die HTML-Unterstützung nicht mehr so gut in Eclipse.
Normalerweise solltest du die Dokumentenstruktur schon so lassen, wie sie mit dem Boilerplate mitkommt.
Also den www-Ordner im Root lassen.
Du kannst dann natürlich nicht mit Eclipse deine APK erstellen.
Falls du es aber doch machen möchtest, kannst du auch einen symbolischen Link erstellen, also dein www-Ordner ist irgendwo anders, aber Eclipse denkt, es ist im Eclipse-Projekt.

Wenn du nicht über die Phonegap-Build Funktion gehen willst, dann brauchst du aber einen Mac. Ich hoffe, dir ist das klar.
 
  • Danke
Reaktionen: Nemolus
Hi Kardroid, danke für Deine Antwort. Welche IDE verwendest Du, trotzdem Eclipse? Wenn ich Deine Antwort richtig verstehe, dann kann ich zwar Eclipse mit seinen Editoren Funktionen nutzen (aber nicht als echtes Android-Project), sollte aber immer per Kommandozeile bauen. Ist das richtig?
 
Als IDE hatte ich WebStorm benutzt. Dort finde ich die Code-Vervollständigung bei Javascript am Besten. Ist leider nicht kostenlos :(
Ich kann dir auch AngularJS für ein Cordova-Projekt empfehlen. Hat zwar eine sehr steile Lerncurve, aber für eine SinglePageApplication eine sehr gute Alternative zu eine Eigenentwicklung über mehrere "Ansichten".

Wichtig für das Builden unter iOs und Android mit der Kommandozeile ist die Ordnerstruktur des CordovaProjekts.
Im Projektverzeichnis gibt es dann beispielsweise die Ordner: www, plugins, plattforms.

Wenn du jetzt ein Plugin für iOs und oder Android installierst, (Beispielsweise cordova.file, um Dateien im Appspeicher zu erstellen) wird dieses Plugin in den Plugins Ordner installiert.

Wenn du jetzt mittels Kommandozeile für Android kompilierst, wird in dem Ordner platforms ein Eclipse-Projekt erstellt, der www-Ordner in das Eclipse Projekt kopiert und mittels config.xml die Parameter in der Manifest gesetzt.

Jetzt könntest du natürlich dieses Eclipse-Projekt in dein Eclipse importieren und weiter entwickeln. Aber dann ist dein www-Ordner eine Kopie des www-Ordners im Root-Verzeichnis.

Wenn du wieder ein neues Plugin installierst, müsste auh das Eclipse-Projekt neu erstellt werden etc.

Bei einem Projekt von mir, hatte ich es dann so gemacht, dass ich das Eclipse-Projekt wegkopiert hatte und den www-Ordner symblisch verlinkt hatte.
Ich hatte ihn also nur noch einmal auf der Platte, aber konnte ihn in dem Cordova-Ordner und in dem Eclipse-Projekt manipulieren und auslesen.
Nach einiger Zeit, hatte ich gemerkt, dass ich Eclipse nur noch dafür benutze um die APK Testweise zu erstellen und auf dem Endgerät auszuführen.

Da ein "cordova run android" oder so das Gleiche in der Kommandozeile macht, bin ich darauf umgestiegen.

Lange Rede kurzer Sinn:
Ja, du kannst Eclipse benutzen und trotzdem über die Kommandozeile die APK erstellen.
 
  • Danke
Reaktionen: Nemolus
Guten Morgen Kardroid. Danke für Deine Antwort und die Zeit, die Du Dir dafür genommen hast. Deine Antworten sind wirklich sehr hilfreich für mich und haben mir eine Idee gegeben, wie ich das ganze jetzt angehen kann.
Darf ich Dir noch eine letzte Frage stellen? Arbeitest Du mit Unit Tests? Beim googlen zu Cordova und Unit Test bin ich auf "karma" und "crosswalk-cordova" gestossen. Hast Du dazu noch Erfahrungen?

Ich war gerade noch auf der Seite von WebStorm. Dort wird das Unit Testing mit Karma erwähnt. Ich glaube das Geld ist in diesem Tool gut investiert. Hast Du noch ein paar Infos zu Debugging und Unit Testing per WebStorm? Wäre klasse, Danke ;-)
 
Hallo Nemolus,

meine persönliche Meinung zu Unit-Tests gefällt nicht jedem. Ich finde Unit-Tests nur bei großen und aufwändigen Projekten sinnvoll. Auch bin ich der Meinung, dass Unit-Tests eher in einer Middleware/Server sinnvoller sind, als damit Frontends zu testen.

Ich debugge normalerweise die Cordova-Apps mit dem iOs-Simulator und dem Safari. Man kann nämlich im Safari die WebView von Cordova anzeigen lassen und dort dann die HTML-Inhalte manipulieren, oder den JavaScript-Code debuggen.
Wenn es Probleme bei Android gibt, dann funktioniert es ähnlich mit dem Chrome-Browser und einem Android Endgerät ab 4.4.
 
Zurück
Oben Unten