Ich werde eine native (dh nicht im Browser) mobile App erstellen. Da ich ein Webentwickler bin, habe ich Schwierigkeiten zu entscheiden, ob ich Phonegap ausprobieren oder einfach eine native App in Java oder Objective-C erstellen soll.
Die App-Anforderungen sind einfach. GPS / WLAN-Standort, Facebook-Integration und ich denke, ich brauche eine Datenbank, um einige der anwendungsspezifischen Beziehungen zwischen Facebook und Freunden zu verwalten. Wie zum Beispiel die Highscores in einem Spiel - solche Sachen.
Ich bin ein Webentwickler und kenne weder Java noch Objective-C. Ich habe Phonegap noch nie zuvor verwendet, daher weiß ich nicht, ob es meine Anforderungen erfüllen kann.
Meine Frage lautet also wie folgt: Kann ich Phonegap für meine App verwenden oder muss ich in eine neue Sprache eintauchen?
Antworten:
Verbunden:
Eine größere Version dieses Artikels finden Sie auch HIER. Um transparent zu sein, ist es mein persönlicher Blog.
Hybrid vs Native Apps
Hybrid-Apps:
Profi:
Nachteile:
Native Apps:
Profi:
Nachteile:
In Ihrem Fall sollten Sie eine Hybrid-App wählen, wenn Sie über gute Webentwicklungs- / Designfähigkeiten und / oder einen guten Designer verfügen. Gehen Sie nur dann nativ, wenn diese App komplex sein wird. Alles, was Sie wollen, können Sie mit einer Hybrid-App erledigen. Und Sie werden eine großartige und unterstützende Community finden.
Hybrid-Apps
Was ich vorher nicht erwähnt habe, müssen Sie hier besonders vorsichtig sein. Selbst wenn Sie ein erfahrener Entwickler sind, werden Sie viele Probleme finden, die Sie nicht lösen können. Die hybride Entwicklung sollte nicht mit einer grundlegenden Webentwicklung verwechselt werden.
Jede mobile Plattform hat ihre eigenen Probleme, ganz zu schweigen davon, dass sich Mobiltelefone je nach Gerät unterschiedlich verhalten. Wenn möglich, erstellen Sie immer eine App, die auf langsameren Geräten funktioniert, da die native App auf fast jedem Gerät erfolgreich funktioniert.
Es gibt noch eine letzte Sache: Wenn Sie Hybrid-Apps erstellen, dauert die App-Entwicklung etwa 30% bis 50% Ihrer Zeit. Der Rest wird für das Debuggen und Lernen bestimmter Plattformen benötigt. Glauben Sie mir, selbst nach mehreren Jahren mobiler Entwicklung stehe ich manchmal vor Problemen, die ich nicht alleine oder schnell genug lösen kann.
Seien Sie also vorsichtig bei der Auswahl des mobilen Frameworks, wählen Sie 2-3 aus und lesen Sie mehrere Tage darüber.
Links
Hier sind einige Links, die Ihnen bei der Entscheidung helfen:
PhoneGap + jQuery Mobile 1.4-Tutorial - Dies ist ein schrittweises Tutorial für PhoneGap und die letzte Version von jQuery Mobile
PhoneGap + jQuery Mobile 1.4-Lernprogramm - MacOS-Version - Dies ist ein schrittweises Lernprogramm für die PhoneGap-Bereitstellung unter MacOS. Der Teil von jQuery Mobile wurde in einem früheren Artikel behandelt. Es macht keinen Sinn, Dinge zu wiederholen.
jQuery Mobile vs Sencha Touch - Vergleich von jQuery Mobile Sencha Touch
jQuery Mobile vs Kendo UI - Vergleich der jQuery Mobile Kendo UI
7 bekanntesten HTML5 Mobile Frameworks - Name sagt alles
7 weniger bekannte mobile HTML5-Frameworks - Name sagt alles
quelle
Wenn Ihre Anwendung keine Animationseffekte hat und einfach ist, ziehe ich es vor, sie in einem Web (Phonegap) cz in kürzerer Zeit zu erstellen. Wir können sie in mehreren Arten von mobilen Betriebssystemen starten. Wenn Ihre App mehr UI-Effekte und Animationen enthält, ist es am besten, native zu verwenden.
Obwohl Sie in Webview (Phonegap) entwickeln, müssen Sie einige grundlegende Schritte in Android und iOS lernen
Wie Phonegap in Geräten funktioniert
Ios Das Laden von Animationen und Ansichten in ios Webview ist gestrandet und gut, die Animationseffekte können klar beobachtet werden
Android
Wir müssen die Geräteversion und die Gerätefirma für Android berücksichtigen, während wir den HTML-Code ausführen. Einige Geräte mit hoher Konfiguration in Android bieten eine klarere und effizientere Animationsanzeige, aber einige Geräte (meistens alte Versionen und einige Geräte der Firma) können keine guten Animationseffekte liefern , Rendering-Effekt variiert von Gerät zu Gerät in Android,
quelle
Meiner bescheidenen Meinung nach kann man mit Phonegap einfach einfache Apps entwickeln, sonst nichts. Die Dokumentation reicht nicht aus und wie andere gesagt haben, werden Sie viel mehr Zeit damit verbringen, Fehler zu beheben und Plugins zu finden, als Ihre App zu erstellen. Ich würde mich bemühen, Android oder iOS oder was auch immer zu lernen, und es als Investition Ihrer Zeit betrachten. (Ja, mein Kommentar ist etwas voreingenommen).
quelle
Zuletzt habe ich mir das angesehen. PhoneGap bestand ausschließlich aus HTML, CSS und Javascript. So können Sie sich wie zu Hause fühlen. PhoneGap kann den GPS-Standort verarbeiten. Weitere Informationen finden Sie in diesem Artikel in der Dokumentation zu PhoneGap. Ob Sie Objective C erlernen möchten oder nicht, hängt davon ab, wie schnell Sie neue Sprachen erlernen, da dies eine gewisse Abweichung von der Webentwicklung darstellt.
quelle
Es hängt ganz von Ihren Bedürfnissen ab
Nachdem ich meine erste App mehrere Monate veröffentlicht hatte (natives Android, datenbankgesteuerte, erholsame Verbindungs-App), entschied ich mich, meine App mithilfe von Phonegap neu zu schreiben (da ich die App auf iOS klonen möchte, also nicht in ObjC, warum nicht Javascript? ?)
Unter Android kostete es mich, einen Java-Entwickler, 3 Wochen, alles von Grund auf zu lernen und zu programmieren. Ich schlug mehrmals mit dem Kopf gegen die Wand, um zu erfahren, wie der ListAdapter von meinem Server aus mit dem Restful Service synchronisiert wird und wie die App thematisiert wird (meiner Meinung nach ziemlich schwierig, insbesondere bei Spezialeffekten wie transparent, Rahmen, ... ) und auch, wie Sie Ihre Codebasis effektiv strukturieren können (wenn Sie mit Java vertraut sind, werden Sie feststellen, dass alle Klassen sehr stark miteinander gekoppelt sind, da die meisten Tutorials darüber schreiben).
Bei Phonegap ist alles in 1 Woche erledigt. CSS, HTML, mit
onsenui
undangular
machen die GUI-Entwicklung genau wie etwa die Aufgabe eines Studenten im ersten Jahr und das Thema ist nur ein Kinderspiel. Ich muss es nicht auf dem realen Gerät ausführen, sondern nur den Browser während der Entwicklung verwenden, den Code ändern und aktualisieren.Angular
Bietet eine bidirektionale Bindung mit dem DOM, was das Sammeln und Anzeigen von Daten sehr beeindruckend macht. Zum Beispiel:<ul ng-each="for sentence in sentences" > <li>{{ sentence.title }} </li> </ul>
Wenn die Variable
sentences
geändert (vom Server abgerufen) wird, wird auch das DOM automatisch geändert. Javascript ist jedoch nur Javascript. Beim Debuggen der App hatte ich viele Probleme, insbesondere beim Ausführen der MapReduce-Funktionen mit PouchDB (großer Fehler, ich musscordova-sqlite-plugin
heute Abend zurückkehren). Meistens muss ich das Protokoll lesen, um das Problem herauszufinden ( Die Tools von Chrome und Firebug können den Haltepunkt nicht erreichen. Außerdem ist es schwierig, Ihre App neu zu strukturieren (wieder Javascript). Wenn Sie also Ihre Codebasis beim ersten Anzeichen nicht sorgfältig organisieren, kann dies zu einem Durcheinander führen (und das Debuggen ist wieder ein echtes Problem). PhoneGap ist auch webbasiert, so dass Sie manchmal hören werden, dass "weil auf dieser Plattform dieses bla bla bla nicht unterstützt wird" (z.localStorage
) und du musst dafür stehen, wenn du kein gutes Plugin findest.Fazit Abgesehen von der Einschränkung des webbasierten Speichers funktioniert PhoneGap recht gut mit der datenbankgesteuerten, einfachen GUI-App (und die meisten datenbankgesteuerten Apps verfügen derzeit ohnehin über eine einfache GUI). Wenn Sie diese Art von App entwickeln wollen, bleiben Sie dabei
quelle
Überprüfen Sie mit ionic , unterstützt von angle.js, um einige der in der akzeptierten Antwort genannten Nachteile auszugleichen. Tutorial zum Starten einer Mitarbeiterverzeichnis-App: http://coenraets.org/blog/2014/02/sample-mobile-application-with-ionic-and-angularjs/
quelle
@Gajotres hat eine großartige Antwort geschrieben, aber die Leistung von Hybrid-Apps hat seit 2012 einen langen Weg zurückgelegt. Ich habe eine verwandte Frage beantwortet , die den Unterschied zwischen der Entwicklung von Hybrid- und nativen Apps im Jahr 2017 abdeckt.
Die Moral der Geschichte ist, dass sich die Entwicklung hybrider Apps in den letzten Jahren enorm verbessert hat, aber für bestimmte Anwendungsfälle immer noch nicht mit nativen übereinstimmen kann.
Mit Tools wie Ionic (erstmals 2013 veröffentlicht ) und React Native (erstmals 2015 veröffentlicht ) ist es einfacher als je zuvor, Hybrid-Apps mit nativen Komponenten zu erstellen. Hybrid-Apps sind jetzt schneller, weniger fehlerhaft und können intensiver mit der nativen Benutzeroberfläche interagieren.
Der Schwellenwert für die Leistung von Hybrid-Apps ist wesentlich höher als noch vor wenigen Jahren. Es gibt jedoch noch einen Punkt, an dem Sie Ihre App möglicherweise in einer Muttersprache entwickeln müssen.
Ursprüngliche Antwort:
quelle
Es gibt auch AppGyver-Steroide, die PhoneGap und Native UI sehr gut vereinen.
Mit Steroiden können Sie Ihrer PhoneGap-App Dinge wie native Registerkarten, native Navigationsleiste, native Animationen und Übergänge, native modale Fenster, native Schubladen / Panels (Facebook-Seitenmenü) usw. hinzufügen. Grundsätzlich greift Steroids überall dort, wo CSS + JS es nicht schneidet, in die native Ebene, um die Aktion auszuführen.
Außerdem können Sie mit Steroiden (obwohl Sie dies nicht müssen) eine mehrseitige Architektur (mehrere Webansichten) anstelle einer einzelnen verwenden. Bei Apps mit nur einer Seite sind alle Dinge wie Übergänge nur CSS-Problemumgehungen, und wie Mani sagte, sind selbst moderne Tablets und Telefone nicht schnell genug, um sie reibungslos zu machen. Es ist immer offensichtlich, wenn es sich um eine Phonegap-App handelt, insbesondere wenn eine Reihe von Prozessen ausgeführt wird oder wenn Sie einen Bildlauf durchführen, da JS-Prozesse blockiert sind (in iOS 8 behoben).
Mit der mehrseitigen Architektur Mittel Sie 100% nativer Leistung bekommen (weil diese tatsächlich Teile sind unkomprimiert). Und im Gegensatz zu Phonegap erhalten Sie ein konsistentes Verhalten der Benutzeroberfläche und ein einfacheres Debuggen (mit einer App mit nur einer Seite ist es oft schwierig, einen bestimmten Status in Ihrer App wiederherzustellen). Mit mehreren Seiten können Sie Ihre Apps viel einfacher entwickeln und warten, da Ihre Codebasis sauberer bleibt.
Überprüfen Sie die Demo: http://youtu.be/oXWwDMdoTCk?t=20m17s
quelle
Ich finde auch jeden guten Artikel hier http://www.comentum.com/phonegap-vs-native-app-development.html , es vergleicht diese beiden Möglichkeiten in verschiedenen Kategorien.
Die Zusammenfassung ist wie folgt:
quelle
Eine der großartigen Optionen, die hier übersehen werden, ist die Entwicklung mit Xamarin .
Obwohl es nicht hilft, die Fähigkeiten der Webentwickler von OP zu nutzen, hat es im Vergleich zu PhoneGap viele Vorteile und fast keine Nachteile.
Xamarin vs PhoneGap Vorteile:
Xamarin vs PhoneGap Nachteile:
Daher ist Xamarin heutzutage eine sehr solide Option für die plattformübergreifende Entwicklung.
quelle