Ich habe einige Anwendungen mit PhoneGap erstellt und für das, was es bietet, ist es großartig. Es gibt ein paar kurze Notizen, auf die ich hinweisen möchte, die Ihnen helfen könnten.
Disable device-based features you're not using
Die Beschleunigungsmesser- und Geolokalisierungsfunktionen sind standardmäßig aktiviert. Wenn Sie sie nicht verwenden, würde ich sie deaktivieren, da Ihre App schneller geladen (initialisiert) und reibungsloser ausgeführt wird.
onDeviceReady
- Dies ist die Methode, die aufgerufen wird, sobald Phonegap geladen und bereit ist. $ (document) .ready oder was auch immer Sie gewohnt sind, trifft hier nicht wirklich zu - es sei denn, Sie machen nur Interface / fest codiertes HTML-Zeug. Wenn Sie mit iPhone-Funktionen wie GeoLocation interagieren, müssen Sie alles tun, nachdem onDeviceReady aufgerufen wurde.
Pick a UI/library
Es gibt eine Vielzahl von Optionen für die Benutzeroberfläche / Bibliotheken, jquery-mobile, sencha touch, jqtouch usw. Diese bieten jeweils einen einzigartigen Ansatz und Funktionsumfang. Recherchiere und benutze eine, aber vermeide das Kombinieren. Weitere Optionen und Tools finden Sie hier: http://www.phonegap.com/tool (Link aktualisiert)
Also, more on just mobile development in general, with PhoneGap
Wenn Sie Apps erstellen möchten, die über den Android Market und den iPhone App Store vertrieben werden, würde ich deren ausführliche Listen lesen, um Richtlinien für die Entwicklung Ihrer App zu erhalten. Im obigen Tool-Link gibt es beispielsweise ein "Tool / Plugin" namens Easy APNS - dies ist zwar für Android nützlich - und auf dem iPhone technisch machbar. Es verstößt jedoch gegen die Entwicklungsvereinbarung, da angegeben wird, dass Sie die Apple-Benachrichtigung verwenden müssen Netzwerk usw. Dies ist nur ein Beispiel, aber wenn Sie sich diese Dinge ansehen, ersparen Sie sich viele Kopfschmerzen, wenn dies Ihr Endziel ist.
Alles in allem eignet es sich hervorragend für leichte Apps, insbesondere wenn Sie einen Webentwicklungshintergrund haben. LocalStorage, GeoLocation usw. funktionieren sehr gut. Ich hoffe das hilft ein wenig ... und habe das Gefühl, Fragen zu stellen.
Zusätzliche Bearbeitung:
Ich denke wirklich, es kommt darauf an, was Sie tun wollen und was Sie wissen, wie man es macht. Matt wies darauf hin, dass die Entwicklung nativer Apps für iOS usw. besser ist. Ja, wenn Sie die Zeit und das Wissen haben, dies zu lernen, ist native natürlich besser. PhoneGap wurde jedoch für Webentwickler entwickelt, die ihre vorhandenen Fähigkeiten nutzen und Apps erstellen können. Mit PhoneGap können Sie außerdem schnell Apps für iOS, Android, Symbian, Palm und Blackberry erstellen. Mit geringfügigen Anpassungen an Ihrer Codebasis für jede.
Hier sind die besten Leistungshandbücher, die ich für PhoneGap gelesen habe ... Es gibt viel zu beachten, um sicherzustellen, dass Sie eine solide, stabile Leistung haben ... aber Sie können alles an nur einem Abend des Lesens abholen.
Hier sind die besten Nuggets:
Tipps zur Leistung von PhoneGap / Mobile Web
http://forum.jquery.com/topic/ontouch-instead-of-onclick-event
http://wiki.phonegap.com/w/page/16494809/Performance-tips-for-device/
VIDEO-Leistungstipps für Sencha Touch: http://vimeo.com/17882927
Ereignisdelegation in Sencha Touch: So entwerfen Sie Listen mit einem einzigen Listener und nicht mit einem in jeder Zeile. http://www.sencha.com/blog/event-delegation-in-sencha-touch/
Neue Funktionen aktivieren
Die Architektur
Architektur Ihrer App in Ext JS 4: http://www.sencha.com/learn/architecting-your-app-in-ext-js-4-part-2
quelle
Bevor ich meine Meinung zu Phonegap zum Ausdruck bringe, muss ich einen kleinen Haftungsausschluss herausgeben, der besagt, dass ich keineswegs ein Webentwickler bin. Für mich ist das Schreiben von JavaScript und CSS wie das Ziehen von Zähnen. Trotzdem mag ich Phonegap nicht.
Es gibt einige sehr ansprechende Aspekte des Frameworks, hauptsächlich den Aufruf "Write-Once-Run-Anywere" und den "I-Don't-Have-To-Learn-Objective-C?" Beschwerde. Das Framework kann Ihnen sogar Zugriff auf einige Hardwarefunktionen wie den Beschleunigungsmesser geben. All dies gilt bis zu einem gewissen Grad.
Trotzdem wird keine der großartigen iOS-Apps mit einem plattformübergreifenden Framework erstellt. Es gibt so viele subtile und elegante Benutzeroberflächeninteraktionen, die von den nativen UIKit-Steuerelementen für Sie ausgeführt werden, dass viele Benutzer und Entwickler sie für selbstverständlich halten, bis sie fehlen, wie z. B. unglaublich detaillierte Ansichtsanimationskurven und nicht vorhandene Bildlauf-Bounces in der Webansicht-basierten Benutzeroberfläche. Sie könnten sich die Mühe machen, sie perfekt zu reproduzieren, aber für diese Zeitinvestition, warum nicht einfach einheimisch werden?
Ein zweiter zu beachtender Punkt ist, dass die Support-Community für von Phonegap erstellte iOS-Anwendungen drastisch kleiner ist als für nativ entwickelte Anwendungen. Wenn Sie sich bei Projekten auf die Community verlassen, sollten Sie auch eine Pause einlegen.
Am Ende kommt es auf die Qualität der Erfahrung an, die Sie liefern möchten. Die Obergrenze ist bei Phonegap niedriger. Wenn Sie bereit sind, eine weniger als hervorragende Benutzererfahrung im Austausch für kürzere Entwicklungszeiten und erhöhte Portabilität zu akzeptieren, ist dies ein sehr praktikables Framework.
Marco Arment und Dan Benjamin haben dieses Thema kürzlich als Subtext für alle Interessierten diskutiert. Sie können es hier anhören .
quelle
Das Installationsverfahren umfasst eine Reihe von Paketen (Java, Apache Ant, Ruby, iOS SDK, Android SDK und PhoneGap selbst), die alle korrekt installiert und eingerichtet werden müssen. Dies kann eine große Anstrengung sein. Um fair zu sein, haben sie etwas namens PhoneGap Build in der Beta, das dies viel einfacher machen sollte.
Wir verwenden es mit NS Basic / App Studio, um Apps zu erstellen, die für App Stores geeignet sind.
quelle
Wenn Sie weder ein Spiel noch ein Widget erstellen, sondern nur eine gut aussehende App, dann ist Phonegap Ihre Wahl.
Aber Sie sollten vorsichtig mit Ihrem JS sein, nichts in JS tun, zum Beispiel, wenn Sie eine Animation machen möchten, vermeiden Sie es, einen Timer mit kleinen Intervallen (z. B. 100 ms) einzustellen, vermeiden Sie Abfragen und ähnliche Animationen. Anstatt beispielsweise das Überblenden zu animieren, indem Sie einen Kurzzeit-Timer einstellen, der die Deckkraft an jedem Punkt Schritt für Schritt verringert (so funktioniert jquery fade), sollten Sie CSS3-Übergänge von Deckkraft 1 zu Deckkraft 0 verwenden.
Mein Rat ist, mit so etwas wie zeptojs.com zu gehen, schließlich läuft Phonegap nicht ie6 :-)
Sehen Sie sich ein Tutorial an, wie Sie Ihr JS leichter machen können
http://bcksp.blogspot.com/
quelle
Wenn Sie keine der Hardwarefunktionen oder -leistungen benötigen, die über HTML5 und Phonegap hinausgehen, ist eine gekapselte Web-App (plus eingeschränkter Zugriff auf andere Funktionen) eine großartige Lösung.
Viele Unternehmen stellen umfangreiche Webanwendungen bereit. Mit Phonegap (oder nur einem einfachen Webansicht-Steuerelement mit eingebettetem Inhalt) können Sie diese Webanwendungen offline ausführen (außer natürlich für alle erforderlichen Online-Daten).
quelle
Ein "Schmerz", der bei der Bereitstellung zwischen mehreren verschiedenen Geräten nicht erwähnt wird: Je mehr Geräte, desto größer die Lernkurve. Um mit PhoneGap auf iOS-Geräten bereitzustellen, müssen Sie die Grundlagen von Xcode auf einem Mac erlernen. Für die Bereitstellung auf Android müssen Sie Eclipse, das Android SDK usw. installieren und lernen. Die anderen Plattformen erfordern die Verwendung eigener SDKs. Das Erlernen von rudimentärem Xcode, Javascript und Java hilft mir, Fehler und die allgemeine Syntax zu verstehen.
"Einmal erstellen, überall bereitstellen" lässt viele Schritte aus!
quelle