Frage Schwierigkeiten zwischen Native und Phonegap, einfache App-Anforderungen


Ich werde einen Eingeborenen machen (das heißt; nicht im Browser) mobile App. Da ich ein Web-Entwickler bin, habe ich Schwierigkeiten zu entscheiden, ob ich Phonegap ausprobieren soll oder nur 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 Facebook-Freunde-Beziehungen zu behandeln. Wie die Highscores in einem Spiel zum Beispiel - solche Sachen.

Ich bin ein Webentwickler und kenne weder Java noch Objective-C. Ich habe Phonegap noch nie benutzt, daher weiß ich nicht, ob es meine Anforderungen erfüllen kann.

Also meine Frage ist wie folgt; Kann ich Phonegap für meine App verwenden oder muss ich in eine neue Sprache eintauchen?


75
2017-12-28 06:34


Ursprung


Antworten:


Verbunden:

Größere Version dieses Artikels kann auch gefunden werden HIERUm transparent zu sein, ist es mein persönlicher Blog.

Hybrid oder native Apps

Hybrid Apps:

Profi:

  • Schnellere Entwicklung, besonders wenn Sie ein langjähriger Webentwickler sind.
  • 1 Sprache kann auf jeder verfügbaren Plattform verwendet werden. Dies erfordert natürlich einen Phonegap-Wrapper. Sie müssen Objective C, Java oder C # nicht lernen, um eine Entwicklung durchzuführen. Sie müssen nur die Grundlagen der Phonegap-Implementierung verstehen. Sie werden ein wenig mit den oben genannten Sprachen spielen müssen, aber Sie müssen sie nicht verstehen.
  • Phonegap kann einige native Funktionen wie iOS native Tab-Leiste oder Android native Tab-Leiste und vieles mehr bieten.
  • Niedrigere Budgetkosten und eine riesige Gemeinschaft von Unterstützern und Entwicklern.
  • Eine Hybrid-App bietet viele der Vorteile beider Ansätze, Zugriff auf die gängigsten Geräte-APIs und eine breite Geräteabdeckung, ohne spezielle Fähigkeiten, größere Budgets und längere Markteinführungszeiten zu erfordern, die eher für vollständig native Apps typisch sind.

Nachteile:

  • Sie werden Blut nach einiger Zeit buchstäblich und metaphorisch pissen.
  • Mobiltelefone (auch die heutigen Tablets) sind nicht schnell genug, um eine Hybrid-App reibungslos zu betreiben, mobile JavaScript-Fähigkeiten sind bestenfalls Betten. Android-Plattform ist ein Albtraum, Seitenübergänge funktionieren nicht reibungslos, um fehlende CSS / CSS3-Implementierung zu erwähnen. Wenn Sie denken, dass native Android 2.X und 4.X Unterschiede haben, werfen Sie einen Blick auf eine Android 2.X-fehlerhafte JavaScript / CSS-Implementierung. iOS schneidet besser ab, hat aber immer noch eine mangelhafte CSS3-Implementierung. Um dies kurz zu machen, haben native Apps immer eine bessere Benutzererfahrung und ein allgemeines Gefühl.
  • Du wirst viel mehr Zeit damit verbringen, die App zu reparieren und dann zu bauen. Eine App für jede Plattform zu erstellen, ist eine Nervensäge. Browser auf verschiedenen Plattformen unterstützen nicht alle die neuesten HTML-Funktionen und APIs, was das Entwickeln und Testen zu einer Herausforderung macht.
  • Wenn Sie keinen guten Designer haben, versuchen Sie nicht einmal, eine App zu erstellen. Aussehen ist alles.
  • Wenn Sie nicht wissen, was Sie tun, besteht eine gute Chance, dass Ihre App keine Genehmigung für den Apple App Store erhält. Selbst im Google Play Store wird Ihre App gesperrt, wenn sie ein Phonegap PayPal-Plugin von Drittanbietern entdecken.

Native Apps:

Profi:

  • Eine native mobile App kann die beste Nutzererfahrung bieten - schnell und flüssig, bietet Ihnen den besten Zugriff auf Gerätefunktionen und kann in den App Stores gefunden werden.
  • Zweifelsohne haben native Apps vollen Zugriff auf die zugrunde liegende mobile Plattform. Native Apps sind normalerweise sehr schnell und ausgefeilt, was sie ideal für hochperformante Apps oder Spiele macht. Das ist mehr als genug.

Nachteile:

  • Größeres Budget, Sie benötigen mindestens eine Person / en mit Java und Objective C Kenntnisse, sogar C #, wenn Sie eine Windows Mobile App möchten. Ja, du kannst es selbst lernen, aber lebe nicht unter der Illusion, dass du es in kurzer Zeit tun wirst. Wenn Sie noch nie eine Entwicklung gemacht haben, wählen Sie Objective C (iOS ist immer noch eine bessere Plattform). In anderen Fällen wählen Sie Java. Java hat eine ähnliche Syntax wie andere verfügbare Sprachen, daher ist es einfach, von C # nach Java und umgekehrt zu springen. Ziel C ist eine eigene Welt. Es hat eine ziemlich ungewöhnliche Syntax.
  • Es kann eine längere Zeit dauern, um alle von ihnen zu entwickeln und Zeit ist Geld. Dies hängt von der Komplexität der Apps ab.

In Ihrem Fall, wenn Sie eine gute Web-Entwicklung / Design-Fähigkeiten und / oder einen guten Designer haben, sollten Sie eine Hybrid-App wählen. Nur nativ, wenn diese App eine komplexe ist. Alles, was Sie wollen, können Sie mit einer Hybrid-App erledigen. Und Sie werden eine großartige und unterstützende Gemeinschaft finden.

Hybrid-Apps

Was ich vorher nicht erwähnt habe, musst du hier besonders vorsichtig sein. Selbst wenn Sie erfahrener Entwickler sind, werden Sie viele Probleme finden, die Sie nicht lösen können. Hybrid-Entwicklung sollte nicht mit einer grundlegenden Web-Entwicklung 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 hybride Apps erstellen, dauert die Entwicklung von Apps ungefähr 30% -50% Ihrer Zeit. Der Rest entfällt auf das Debuggen und Lernen bestimmter Plattformen. Glauben Sie mir, auch nach mehreren Jahren der mobilen Entwicklung stehe ich manchmal vor Problemen, die ich alleine oder schnell genug nicht lösen kann.

Seien Sie also vorsichtig, wenn Sie sich für ein mobiles Framework entscheiden, wählen Sie 2-3 und verbringen Sie mehrere Tage damit, darüber zu lesen.

Links

Hier sind einige Links, die Ihnen bei der Entscheidung helfen sollen:

PhoneGap + jQuery Mobile 1.4 Anleitung - Dies ist eine Schritt für Schritt Anleitung für PhoneGap und die letzte Version von jQuery Mobile

PhoneGap + jQuery Mobile 1.4 Anleitung - MacOS-Version - Dies ist ein Schritt für Schritt Anleitung für PhoneGap Deployment auf MacOS. jQuery Mobile Teil ist in einem früheren Artikel behandelt, kein Punkt in der Wiederholung von Dingen.

jQuery Mobile vs Sencha Touch - jQuery Mobile Sencha Touch Vergleich

jQuery Mobile vs Kendo UI - jQuery Mobile Kendo UI Vergleich

7 bekannteste HTML5-Frameworks für Mobilgeräte - Name sagt alles

7 weniger bekannte HTML5 Mobile Frameworks - Name sagt alles


157
2017-12-28 12:59



Wenn Ihre Anwendung keine Animationseffekte hat und ich einfach in einem Web (Phonegap) cz erstellen möchte, können wir in verschiedenen Arten von mobilen Betriebssystemen starten. Wenn Ihre App mehr UI-Effekte und Animationen enthält, empfiehlt es sich, mit nativen Methoden zu arbeiten.

Obwohl Sie in Webview (Phonegap) entwickeln, müssen Sie einige grundlegende Schritte in Android und iOS lernen

Wie Phonegap in Geräten funktioniert 

Ios Die Animationen und das Laden von Ansichten in ios webview sind gestrandet und gut, die Animationseffekte können deutlich beobachten

Android
Wir müssen die Geräteversion und das Gerät Unternehmen für Android während der Ausführung des HTML-Codes, Einige High-Config-Geräte in Android geben mehr klare und effiziente Animation Anzeige, aber einige Geräte (meist alte Version und einige Unternehmen Geräte) kann nicht gute Animationseffekte geben, Rendering-Effekt variiert von Gerät zu Gerät in Android,


16
2017-12-28 06:44



In meiner bescheidenen Meinung mit Phonegap können Sie einfach einfache Apps entwickeln, mehr nicht. Die Dokumentation ist nicht genug 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, sehe es als an Investition deiner Zeit. (Ja, mein Kommentar ist ein wenig voreingenommen).


7
2017-10-23 08:13



Zuletzt habe ich in PhoneGap alles in HTML, CSS und Javascript geschaut. So können Sie sich zu Hause fühlen. PhoneGap kann mit dem GPS-Standort umgehen, siehe Dieser Artikel aus der Dokumentation von PhoneGap. Ob Sie Objective C übernehmen möchten oder nicht, hängt davon ab, wie schnell Sie neue Sprachen erlernen, da es sich von der Webentwicklung unterscheidet.


3
2017-12-28 06:46



Es hängt ganz von Ihren Bedürfnissen ab

Nachdem ich meine erste App mehrere Monate veröffentlicht habe (native Android, datenbankgestützte, erholsame Verbindungs-App), habe ich beschlossen, meine App mit phonegap neu zu schreiben (da ich die App auf iOS klonen möchte, also nicht in ObjC, warum nicht Javascript ?)

Bei Android hat es mich, einen Java-Entwickler, 3 Wochen gekostet, alles von Grund auf zu lernen und zu programmieren. Ich knalle meinen Kopf mehrmals an die Wand, um den ListAdapter von meinem Server mit dem Restful Service synchronisieren zu lassen, um die App zu gestalten (ziemlich schwer meiner Meinung nach, besonders wenn es um Spezialeffekte wie Transparent, Rand, ... geht). ) und auch, wie Sie Ihre Code-Basis effektiv strukturieren können (wenn Sie mit Java vertraut sind, werden Sie feststellen, dass alle Klassen sehr miteinander verbunden sind, da die meisten Tutorials darüber schreiben)

Bei Phonegap ist alles in 1 Woche erledigt. CSS, HTML, mit onsenui und angular Machen Sie die GUI - Entwicklung so wie etwa die Aufgabe eines Studenten im ersten Jahr, und das Thema ist nur ein Kinderspiel. Ich muss es nicht auf dem echten Gerät laufen lassen, benutze einfach den Browser während der Entwicklung, ändere Code und aktualisiere genug. Angular bietet 2-Wege-Bindung mit dem DOM, und das macht eine große Freude beim Sammeln und Anzeigen von Daten. Beispielsweise:

<ul ng-each="for sentence in sentences" >
   <li>{{ sentence.title }} </li>
</ul>

Wenn die Variable sentencesgeändert (vom Server abgerufen), wird das DOM automatisch ebenfalls geändert. Javascript ist jedoch nur Javascript. Ich habe beim Debuggen der App viele Probleme gehabt, besonders wenn ich die MapReduce Funktionen mit PouchDB gemacht habe (großer Fehler, gehe zurück zu cordova-sqlite-plugin heute Abend) und die meiste Zeit muss ich das Logbuch lesen, um das Problem zu lösen (Chrome 's Tools und Firebug können den Breakpoint nicht fangen). Außerdem ist es schwer, Ihre App neu zu strukturieren (Javascript, wieder). Wenn Sie Ihre Code-Basis beim ersten Zeichen nicht sorgfältig organisieren, könnten Sie am Ende ein Chaos haben (und das Debuggen ist wieder ein echter Schmerz). PhoneGap ist auch webbasiert, manchmal werden Sie das hören, weil "auf dieser Plattform das bla bla bla nicht unterstützt wird" (z. B. 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 datenbankbasierten, einfachen GUI-App (und die meisten datenbankgesteuerten Apps haben derzeit sowieso eine einfache GUI). Wenn du diese Art von App entwickeln willst, bleib dabei


3
2018-05-20 19:22



check out mit ionisch, unterstützt von angular.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/


2
2018-03-11 13:57



@Gajotres hat eine tolle Antwort geschrieben, aber die hybride App-Performance hat seit 2012 einen langen Weg zurückgelegt. Ich habe auf a geantwortet verwandte Frage das deckt den Unterschied zwischen hybrider und nativer App-Entwicklung im Jahr 2017 ab.

Die Moral der Geschichte ist, dass sich die hybride App-Entwicklung in den letzten Jahren enorm verbessert hat, aber immer noch nicht für bestimmte Anwendungsfälle geeignet ist.

Mit Werkzeugen wie Ionic (zuerst veröffentlicht in 2013) und React Native (zuerst veröffentlicht in 2015) Es ist einfacher als je zuvor, hybride Apps mit nativen Komponenten zu erstellen. Hybride Apps sind jetzt schneller, weniger fehleranfällig und können tiefer mit der nativen Benutzeroberfläche interagieren.

Der Schwellenwert für die Leistung von Hybrid-Apps ist deutlich höher als noch vor einigen Jahren. Es gibt jedoch noch einen Punkt, an dem Sie Ihre App in einer anderen Sprache entwickeln müssen.

Ursprüngliche Antwort:

Ja, das allgemeine Gefühl ist, dass hybride Apps dem Nativen unterlegen sind   Apps. Dies kann für Entwickler, die damit vertraut sind, frustrierend sein   Web-Technologien, kommt es aus gutem Grund:

  1. Unfähigkeit, mit nativen Komponenten zu interagieren: Obwohl Plugins wie cordova-plugin-statusbar existieren, gibt es Einschränkungen   Interaktion und Manipulation von nativen Komponenten mit Hilfe von Web   Technologien. Ein tolles (und frustrierendes) Thema, das ich selbst gemacht habe   In ist die Unfähigkeit, eine Eingabe an der Spitze der Tastatur als   Die Tastatur wird animiert. Das klingt wie ein Nicht-Problem, bis Sie schauen   in einer App, wo dies ein essentielles Feature wie in einer Chat-App ist   wie Slack.
  2. 300ms Verzögerung: Obwohl moderne Browser beginnen zu Phase dies   aus,   Der Bruchteil einer Sekunde Verzögerung bei Hybrid-Apps macht die App aus   fühle mich langsam und nicht nativ. Dieses Problem wird weniger ein Faktor als   Mehr Benutzer nehmen Workarounds wie    FastClick.js und einige   Frameworks wie Ionisch beseitige es   standardmäßig.
  3. Die Hasser haben recht (so): Während die Hybrid-App-Entwicklung einen langen Weg zurückgelegt hat, gibt es immer noch kleine Pannen und Laggy   Funktionen, die in einer Native App nicht vorhanden sind. Bildschirm   Übergänge, App-Switching und Akkulaufzeit sind immer noch gängige Bereiche   für Bugs erscheinen und wahrscheinlich werden für einige Zeit, auch wenn sie es sind   wird immer weniger bemerkbar.
  4. Es gibt einige großartige native Lösungen: Mit neueren Sprachen wie Apple's Schnell es wird leichter zu   Code in einer Muttersprache. Davon abgesehen, Werkzeuge wie Reagieren   Muttersprache in ein Grau fallen   Bereich zwischen Native und Hybrid, indem Entwickler Code einspielen können   freundliche Technologien wie JavaScript, aber kompilieren in nativen Code.

Die Moral der Geschichte ist, dass es wirklich darauf ankommt, was wichtig ist   Ihr spezifischer Anwendungsfall. Hybrid-Apps sind zu einer realisierbaren Option geworden   sind nicht länger eine peinliche Nebenshow. Umgekehrt gibt es immer noch   kleinere Aspekte der Interaktion mit der Native UX, die noch nicht sind   möglich, außer mit einer Native App.

Insgesamt empfehle ich, Ihr Projekt zu planen und zu bestimmen, ob Sie das tun   App benötigt alle Vorteile einer Native App. Mit Werkzeugen wie z    Ionenansicht app ist es einfach, ein a   grundlegende Nachbildung Ihrer App und testen Sie auf einem echten Gerät, ob a   Hybrid-App wird für Sie arbeiten.


1
2018-05-09 22:09



Es gibt auch AppGyver Steroide, die PhoneGap und Native UI sehr gut vereinen.

Mit Steroids können Sie Dinge wie native Tabs, native Navigationsleiste, native Animationen und Übergänge, native modale Fenster, native Schublade / Panel (Facebooks-Seitenmenü) usw. zu Ihrer PhoneGap App hinzufügen. Grundsätzlich, überall wo CSS + JS es nicht schneiden, greift Steroids in die native Ebene um die Aktion auszuführen.

Auch mit Steroiden können Sie (obwohl Sie nicht müssen) mehrseitige Architektur (mehrere Webansichten) anstelle von einzelnen verwenden. Bei Einzelseiten-Apps sind alles wie Übergänge nur CSS-Problemumgehungen, und wie Mani sagte, sind auch moderne Tablets und Telefone nicht schnell genug, um sie flüssig zu machen. Es ist immer offensichtlich, wenn es sich um eine Phonegap-App handelt, vor allem, wenn eine ganze Reihe von Prozessen läuft oder wenn Sie scrollen, da JS-Prozesse belohnt werden (behoben in iOS 8).

Wenn Sie die mehrseitige Architektur verwenden, erhalten Sie 100% native Leistung (weil diese Teile tatsächlich sind sind nativ). Im Gegensatz zu Phonegap erhalten Sie ein konsistentes Verhalten der Benutzeroberfläche und ein einfacheres Debugging (mit einer einzelnen Seiten-App ist es oft schwierig, einen bestimmten Status in Ihrer App wiederherzustellen). Multi-Page macht es viel einfacher, Ihre Apps zu entwickeln und zu pflegen, da Ihre Codebasis sauberer bleibt.

Überprüfen Sie die Demo: http://youtu.be/oXWwDMdoTCk? t = 20m17s


0
2017-08-01 10:22