Golem lernt's nie...
Werden die Apps die mit Phonegap erstellt werden nicht in native Apps kompiliert?
Nein, nicht direkt. Deine Anwendung wird in eine sogenannte WebView geladen, die nichts anderes als ein Fenster mit WebKit Engine darstellt. In dieser WebView wird dann der JavaScript Code ausgeführt, umhüllt mit einem Container der das ganze zu einer App zusammenkleistert. Titanium bietet zusätzlich aber die Möglichkeit native Kontrollelemente Buttons, Popups etc. mittels JavaScript anzusteuern.
( zumindest nach meinem Wissenstand )
PhoneGap kann auch native Controls ansteuern, ganz einfach per Plugin. So bekommt man native Tabbars, Browserwebviews (in der App) und Overlays hin.
Ich entwickle nur noch mit PhoneGap plus SenchaTouch, JQuery Mobile oder JQTouch. Sind mit etwas Optimierung genauso performant wie native Apps und die Vorteile sind einfach erdrückend.
Für was anderes als hardwarenahe Spiele braucht man m.E. keine nativen Apps mehr.
Tapsi schrieb:
--------------------------------------------------------------------------------
> Titanium bietet
> zusätzlich aber die Möglichkeit native Kontrollelemente Buttons, Popups
> etc. mittels JavaScript anzusteuern.
Mehr noch, bei Titanium laufen die Apps auch nativ und nicht in einer WebView.
Junior-Consultant schrieb:
--------------------------------------------------------------------------------
> PhoneGap kann auch native Controls ansteuern, ganz einfach per Plugin. So
> bekommt man native Tabbars, Browserwebviews (in der App) und Overlays hin.
Cool danke für den Hinweis :)
Ich wollte mir eh mal für ein Projekt statt Titanium Phonegap anschauen. Hat jemand schon Erfahrung mit den Windows und Mac Plugins gemacht, mit denen man auch Windows und Mac Programme packen kann ?
> Ich entwickle nur noch mit PhoneGap plus SenchaTouch, JQuery Mobile oder
> JQTouch. Sind mit etwas Optimierung genauso performant wie native Apps und
Genauso performant, mal ehrlich das geht nicht :P
Aber wenn du meinst dass die JavaScript Performance mittlerweile für die meisten Programme derart schnell ist, sodass subjektiv keine Unterschiede festzustellen sind, okay würde ich auch sagen.
> die Vorteile sind einfach erdrückend.
Für mich gibt es aber auch viele erdrückende Nachteile...
> Für was anderes als hardwarenahe Spiele braucht man m.E. keine nativen Apps
> mehr.
Neija ich würde immer noch behaupten das dynamische Sprache nicht so super geeignet für professionelle Apps wie Filterprogramme, Videoschnitt, Rendering etc. sind.
> Mehr noch, bei Titanium laufen die Apps auch nativ und nicht in einer
> WebView.
Kannst mir dass mal zeigen, ich habe es zumindest noch nicht gesehen? :)
Tapsi schrieb:
--------------------------------------------------------------------------------
>
> Kannst mir dass mal zeigen, ich habe es zumindest noch nicht gesehen? :)
Wie meinst du das? Lad' dir doch einfach Titanium Studio und mache eine einfache App. Die ist dann nativ und läuft nicht in einer WebView.
> Wie meinst du das? Lad' dir doch einfach Titanium Studio und mache eine
> einfache App. Die ist dann nativ und läuft nicht in einer WebView.
Hatte ich schon, aber wo denn ?
Win, Mac, Linux -> laufen alle in einer WebKit Instanz
iOS, Android -> Laufen auf einer WebView ( wobei Titanium laut der Doc einige Befehle auf native Funktionen verzweigt )
BTW: Wie definieren wir hier eigentlich nativ. Ich gehe bei nativ jetzt von kompilierten Objective C aus bzw. dass kein Code zur Laufzeit interpretiert wird.
Tapsi schrieb:
--------------------------------------------------------------------------------
> > Wie meinst du das? Lad' dir doch einfach Titanium Studio und mache eine
> > einfache App. Die ist dann nativ und läuft nicht in einer WebView.
>
> Hatte ich schon, aber wo denn ?
>
> Win, Mac, Linux -> laufen alle in einer WebKit Instanz
Richtig.
> iOS, Android -> Laufen auf einer WebView ( wobei Titanium laut der Doc
> einige Befehle auf native Funktionen verzweigt )
Falsch. Das ist der große Unterschied zwischen Phonegap und Titanium. Unter Titanium hast du ein natives UI und greifts generell auf native OS-Funktion zu, die über einen Wrapper JS-zu-OS übersetzt werden.
> BTW: Wie definieren wir hier eigentlich nativ. Ich gehe bei nativ jetzt von
> kompilierten Objective C aus bzw. dass kein Code zur Laufzeit interpretiert
> wird.
Soweit geht auch Titanium nicht. In einer Webview wird der Code aber nicht ausgeführt.
> Falsch. Das ist der große Unterschied zwischen Phonegap und Titanium. Unter
> Titanium hast du ein natives UI und greifts generell auf native OS-Funktion
> zu, die über einen Wrapper JS-zu-OS übersetzt werden.
>
Okay dass wusste ich noch nicht. Trotzdem kann nicht alles übersetzt werden, Geschäftslogik bleibt ja in JS und diese müsste ja trotzdem in einer WebKit Instanz ausgeführt werder, oder ?
> Soweit geht auch Titanium nicht. In einer Webview wird der Code aber nicht
> ausgeführt.
Wie denn sonst ? Man kann JS nicht einfach so in Objective C übersetzen... Naja gut doch, aber ob dass sich lohnt na ich weiß ja nicht. Sicherlich kann man einiges auf native Funktionen Wrappen, aber die Geschäftslogik bleibt doch als JS und diese muss doch interpretiert werden !? Oder wie setzt man das bei Tit Mobile um ?
Mit deiner Meinung liegst du Meilenweit daneben.
Tapsi schrieb:
--------------------------------------------------------------------------------
>
> Okay dass wusste ich noch nicht. Trotzdem kann nicht alles übersetzt
> werden, Geschäftslogik bleibt ja in JS und diese müsste ja trotzdem in
> einer WebKit Instanz ausgeführt werder, oder ?
In Titanium ist ein eigener JavaScript-Interpreter enthalten, der den Code über einen Wrapper/Bridge in native Aufrufe des OS übersetzt. Unter iOS wird JavaScriptCore und unter Android Mozilla Rhino verwendet. Webkit selbst wird dazu aber also nicht benötigt, da eben ein eigener Interpreter jeder App beiliegt.
> Wie denn sonst ? Man kann JS nicht einfach so in Objective C übersetzen...
Wird es auch nicht, siehe oben.
> Naja gut doch, aber ob dass sich lohnt na ich weiß ja nicht. Sicherlich
> kann man einiges auf native Funktionen Wrappen, aber die Geschäftslogik
> bleibt doch als JS und diese muss doch interpretiert werden !? Oder wie
> setzt man das bei Tit Mobile um ?
Ja, das muss alles während der Laufzeit interpretiert werden. Deshalb sind Titanium-Apps auch nicht so schnell wie (kompilierte) native Apps und müssen auch nicht schneller sein, als eine Phonegap-App. Allerdings sind die UI-Elemente eben 100%ig native und Titanium bietet auch eine viel bessere Unterstützung der Plattform-APIs. Außerdem lässt es sich über Module erweitern, wovon einige interessante schon von Appcelerator angeboten werden. Siehe dazu auch:
[appdevblog.de]
http://stackoverflow.com/questions/4217551/what-happens-to-javascript-code-after-app-is-compiled-using-titanium-mobile
:-)
Ja, die zitierte Antwort von Marshall Culpepper im zweiten Posting bringt es auf den Punkt. Warum aber dein Smiley?
Ja das Problem ist halt schon was wir unter nativ verstehen....
Neija Titanium ist ein bisschen nativ, darauf können wir uns alle doch einigen... ist genau die Mitte :P
Tapsi schrieb:
--------------------------------------------------------------------------------
> Ja das Problem ist halt schon was wir unter nativ verstehen....
>
> Neija Titanium ist ein bisschen nativ, darauf können wir uns alle doch
> einigen... ist genau die Mitte :P
Mitte ist ok. ;-) Titanium ist aber auf jeden Fall nativer als Phonegap.
Und JavaScript ist stellenweise 100 Mal langsamer als Objective-C und 50 Mal langsamer als Java. Zudem fehlt Multithreading-Unterstützung und Zugriff auf Quartz / CoreAnimation gibt's genausowenig.
Über langweiliges Standard-Zeugs kommt man also nicht hinaus. Weder mit PhoneGap, noch mit Titanium. Aber PhoneGab Entwickler sind ja bereits glücklich, wenn sie mit Ach und Krach die Qualität eines Standard-iOS-UIs erreichen, dass mittels Objective-C nur halb so aufwändig in der Umsetzung gewesen wäre.
Für den Kunden gibt es nur einen einzigen Grund für solche Lösungen: JavaScript-Entwickler sind billiger.
1 mal bearbeitet, zuletzt am 31.07.11 11:48 durch scrumm3r.
scrumm3r schrieb:
--------------------------------------------------------------------------------
> Und JavaScript ist stellenweise 100 Mal langsamer als Objective-C und 50
> Mal langsamer als Java. Zudem fehlt Multithreading-Unterstützung und
> Zugriff auf Quartz / CoreAnimation gibt's genausowenig.
Warum auch ? Das würde ja auch Android gar nicht gehen und Titanium / Phonegap wollen ja eine möglichst große gemeinsame API für alle Geräte anbieten. Extrem spezialisierte API's würden da eher hinderlich sein.
> Über langweiliges Standard-Zeugs kommt man also nicht hinaus. Weder mit
> PhoneGap, noch mit Titanium. Aber PhoneGab Entwickler sind ja bereits
> glücklich, wenn sie mit Ach und Krach die Qualität eines Standard-iOS-UIs
> erreichen, dass mittels Objective-C nur halb so aufwändig in der Umsetzung
> gewesen wäre.
HTML und CSS für Oberflächen sind auch nicht zu verachten :P ( man muss ja nicht immer mit nativen Kontrollelementen arbeiten )
> Für den Kunden gibt es nur einen einzigen Grund für solche Lösungen:
> JavaScript-Entwickler sind billiger.
Sicher? Ob JS, Java oder ObjectiveC... ich würde da nicht unterschiedlich bezahlt arbeiten. Mit JS geht das doch nicht schneller als mit ObjectiveC oder Java. Aber vielleicht meinst du auch nur dass es scheinbar unendlich viele Script-Kiddies gibt, die in JavaScript für ein Appel und ein Ei herumfrickeln xD
scrumm3r schrieb:
--------------------------------------------------------------------------------
> Und JavaScript ist stellenweise 100 Mal langsamer als Objective-C und 50
> Mal langsamer als Java.
Mal davon abgesehen, dass du diese Zahlen nur aus der Luft gegriffen hast, interessiert das in sehr vielen Fällen nicht die Bohne, da selbst 100 mal langsamer nicht auffällt und immer noch schnell ist.
> Zudem fehlt Multithreading-Unterstützung und
Lässt sich über Module native realisieren und wird ansatzweise sogar schon von JavaScript unterstützt.
> Zugriff auf Quartz / CoreAnimation gibt's genausowenig.
Natürlich bietet Titanium Mobile Zugriff auf CoreAnimation. Bleib’ mal bei den Fakten!
> Über langweiliges Standard-Zeugs kommt man also nicht hinaus. Weder mit PhoneGap, noch mit Titanium.
Da gehen möglicherweise unsere Meinungen von Standard-Zeugs und langweilig auseinander. Aber Recht hast du, dass sich nicht alles mit Titanium und Co. realisieren lässt und man immer von Fall zu Fall abwägen muss, was das bessere Entwicklungssystem ist.
> Aber PhoneGab Entwickler sind ja bereits
> glücklich, wenn sie mit Ach und Krach die Qualität eines Standard-iOS-UIs
> erreichen, dass mittels Objective-C nur halb so aufwändig in der Umsetzung
> gewesen wäre.
>
> Für den Kunden gibt es nur einen einzigen Grund für solche Lösungen:
> JavaScript-Entwickler sind billiger.
Diese beiden Aussagen widersprechen sich. Wenn es deiner Meinung nach mit Objective-C so viel einfacher ist, warum sind dann Objective-C-Entwickler teurer?
Kommentare: 172 | letzter Beitrag 22:36 Uhr
Kommentare: 94 | letzter Beitrag 26.05. 19:45
Kommentare: 79 | letzter Beitrag 22:43 Uhr
Kommentare: 71 | letzter Beitrag 22:20 Uhr
Kommentare: 63 | letzter Beitrag 23:15 Uhr
E-Mail an news@golem.de

Der japanische Spieldesigner Goichi Suda - Fans sagen schlicht "Suda 51" - ist für schräge Actionspiele bekannt. Sein nächstes Werk schickt ein scheinbar braves Schulmädchen in den Kampf gegen Zombies.

Weitgehend unbemerkt hat der US-Händler Tigerdirect die ersten Chromebox-Systeme von Google ausgeliefert. Für 330 US-Dollar bekommt der Nutzer recht gute Hardware in Nettop-Form, die sehr viel leistungsfähiger ist als die des Chromebook mit ChromeOS.

Der neue Chef der Piratenpartei steht im Verteidigungsministerium unter Druck. Elektronische Kommunikation für seine Partei ist ihm in der Dienstzeit untersagt. "Es gibt Leute im Ministerium, die darauf warten, dass ich Fehler mache", sagte Schlömer.

Renesas ist nach Elpida der zweite schwer angeschlagene japanische Chiphersteller. Renesas, das Hitachi, Mitsubishi Electric und NEC gehört, macht Verlust und will seine größte Fabrik verkaufen.

RIM soll in den kommenden Tagen erneut einen massiven Stellenabbau ankündigen. "Ich habe herausgefunden, welche Teile ich in meinem Puzzle nicht mehr benötige", sagte Firmenchef Thorsten Heins.

Ein britisches Blog will erfahren haben, dass Facebook den norwegischen Browserhersteller Opera Software kaufen will. Beide Unternehmen wollen sich dazu nicht äußern.