Crossplatform-App vs. native App

  • Antworten:8
Peter S.
  • Forum-Beiträge: 4

14.08.2010, 23:37:27 via Website

Ich beschäftige mich aktuell mit Appcelerator Titanium, mit dem man Apps für Android und iPhone mit JavaScript erstellen kann. Meine erste eigene kleine Demo-App habe ich gerade fertig gestellt. Eigentlich wollte ich ja iPhone-Apps schreiben, aber da ich keinen Mac habe (den man zur Entwicklung zwingend benötigt), habe ich nach Alternativen gesucht und aufgrund eines Artikels in der c't 16/2010 Appcelerator Titanium gefunden. Jetzt empfinde ich es als Vorteil, dass man damit Apps für Android und iPhone entwickeln kann, was die Verkaufschancen (wenn ich denn je soweit komme) doch deutlich erhöht.

Mich würde jetzt interessieren, wie diese App aussehen würde, wenn man die mit dem Android SDK und in Java implementieren würde. Sähen beide Apps gleich aus? Wären beide Apps gleich schnell? Wie unterscheidet sich der Aufwand bei der Programmierung?

Da ich nicht so fürchterlich viel Zeit und auch keine Ahnung von Java habe wollte ich hier im Forum mal fragen, ob jemand von euch Zeit und Lust hätte diese App in Java nachzuprogrammieren. Idealerweise könnte dieser jemand dazu einen Blogartikel schreiben und auf meinem Blog als Co-Autor veröffentlichen.

Hier der Link auf mein Blog, auf dem ihre alle weiteren Infos findet: http://crossplatform.blog.de/

Antworten
Daniel B.
  • Forum-Beiträge: 191

15.08.2010, 09:10:40 via Website

Peter S.
Wären beide Apps gleich schnell?

Gleich schnell sicher nicht, ist ja ein (unnötiger) Schritt mehr.
Wobei "native" auch JAVA nicht ist.
Schlagworte: Bytecode, Virtual Machine, Dalvik, Präprozessor


Peter S.
Wie unterscheidet sich der Aufwand bei der Programmierung?

Was unterscheidet den Aufwand zwischen Laufen und Radfahren?

Peter S.
Da ich [...] keine Ahnung von Java habe

Dann schmink dir das Geld verdienen am besten gleich wieder ab.

Peter S.
...wollte ich hier im Forum mal fragen, ob jemand von euch Zeit und Lust hätte diese App in Java nachzuprogrammieren. Idealerweise könnte dieser jemand dazu einen Blogartikel schreiben und auf meinem Blog als Co-Autor veröffentlichen.

Ja ne, is klar. Und das ganze am besten für Lau ne!? Da werden se Schlange stehen.
Aber ich hab tatsächlich eine Lösung für dich. Klick hier!

— geändert am 15.08.2010, 09:10:56

Gelöschter Account

Antworten
Peter S.
  • Forum-Beiträge: 4

15.08.2010, 16:38:06 via Website

Daniel B.
Gleich schnell sicher nicht, ist ja ein (unnötiger) Schritt mehr.
Warum nicht. Nur weil die Quellsprache eine andere ist, muss sich das Compilat doch nicht zwingend in der Laufzeit unterscheiden. Käme auf einen, oder besser gleiche mehrere, Tests an.

Daniel B.
Ja ne, is klar. Und das ganze am besten für Lau ne!?
Bezahlen kann ich dafür nichts. Ist mein privates Blog und ich kriege da auch kein Geld für. Natürlich kann der Co-Autor seinen eigenen Flattr-Button, einen PayPal-Spenden-Link oder was entsprechendes unter seine(n) Beitrag setzen. Ansonsten ist das, wie meine Frau so schön sagte: 'Für Ruhm und Ehre.'

Mich interessiert halt das Thema. Eine Weile lang werde ich das aus Spaß am Herausfinden weiter treiben und danach hängt es davon ab, wie das Feedback ausgefallen sein wird. Wenn das Thema keinen interessiert, wird das Blog vermutlich einschlafen. Wenn sich aber genug Leser finden... Ideen hätte ich für ein ganzes Buch.

Antworten
Daniel B.
  • Forum-Beiträge: 191

15.08.2010, 17:19:01 via Website

Peter S.

Warum nicht. Nur weil die Quellsprache eine andere ist, muss sich das Compilat doch nicht zwingend in der Laufzeit unterscheiden. Käme auf einen, oder besser gleiche mehrere, Tests an.

Es wird ja nicht von JS nach Bytecode sondern von JS nach Dalvik nach Bytecode konvertiert.
JAVA auf einer VM ist schon (wenn auch marginal) langsamer als Nativer Code. Macht sich aber erst bei Hardware-Ansteuerung bzw. bei wirklich zeitkritischen Anwendungen bemerkbar. Sonst gäbs nix anderes mehr als JAVA.
Auf nem Desktop bewegen wir uns im Millisekundenbereich. Wie das bei nem mobilen Gerät aussieht kann ich nicht sagen.

Prinzipiell ist ein Präprozessor/Compiler immer ne Bremse.

Ich kenn Titanium nicht. Man müsste sich anschaun wie die Hardware-Ansteuerung geregelt bzw. ob überhaupt vorhanden ist.

Peter S.

Bezahlen kann ich dafür nichts. Ist mein privates Blog und ich kriege da auch kein Geld für. Natürlich kann der Co-Autor seinen eigenen Flattr-Button, einen PayPal-Spenden-Link oder was entsprechendes unter seine(n) Beitrag setzen. Ansonsten ist das, wie meine Frau so schön sagte: 'Für Ruhm und Ehre.'

Mich interessiert halt das Thema. Eine Weile lang werde ich das aus Spaß am Herausfinden weiter treiben und danach hängt es davon ab, wie das Feedback ausgefallen sein wird. Wenn das Thema keinen interessiert, wird das Blog vermutlich einschlafen. Wenn sich aber genug Leser finden... Ideen hätte ich für ein ganzes Buch.

Da hab ich dich wohl falsch verstanden. Sorry für den harschen Ton.
Wir können ja dann an dem Buch zusammen schreiben.

Antworten
Andreas G.
  • Forum-Beiträge: 40

27.08.2010, 15:01:23 via Website

Daniel B.
Sonst gäbs nix anderes mehr als JAVA.
lol ... ohne hier eine Diskussion über Sprachen anzuzetteln, aber das halte ich für "minimal" überzogen ;-)

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

27.08.2010, 15:28:54 via Website

Ich denke nicht, dass so ein Interpreter wirklich etwas taugt, taugen im Sinne von ernsthafter Programmierung.

Hier gibt es einen Blog der relativ genau das wiedergibt, was im groben Daniel auch schon erwähnt hat.

Derartige Interpreterlösungen mögen für einfache kleine Schnellschüsse, die ich auf beiden Plattformen mal eben propagieren möchte genügen. Für mehr ist es einfach erforderlich sich vernünftig mit der jeweiligen Plattform auseinanderzusetzen. Und dazu gehört auch das Erlernen der jeweiligen Programmiersprache.

Bsp. Was machst Du, wenn es einen Wechsel, Update des Betriebssystems gibt und plötzlich Methoden deprecated sind oder nicht mehr länger unterstützt werden, die aber bislang von Titanium - Modulen genutzt wurden und in Deinem Projekt verwendet werden. Bis Appcelerator das angeglichen hat bist Du u.U. mit Deinem Projekt schon so sehr mit Negativkritik überschüttet ....

Ich kenne unzählige Dinge die, trotz gleicher Android Version, auf verschiedenen Handys unterschiedlich funktionieren. Wie geht Titanium damit um .. usw. usw.

lg Voss

Antworten
Peter S.
  • Forum-Beiträge: 4

27.08.2010, 17:15:54 via Website

Wenn es um performance-kritische Anwendungen (z.B. Spiele) geht, dann denke ich auch führt kein Weg an nativen Apps vorbei. Und natürlich hast Du recht, dass man bei Betriebssystemänderungen immer hinterher hinkt. Aber Hey, es werden immer noch Handys mit Android 1.6 oder gar 1.5 verkauft, also muss man bei der Entwicklung eh auf Abwärtskompatibilität achten.

Und sind Titanium-Apps wirklich soviel langsamer? Hat das mal jemand tatsächlich gemessen oder glauben das alle nur? Ich würde das gerne mal messen und zwei identische Apps (einmal Titanium, einmal Android nativ) mal im Videovergleich nebeneinander zeigen, so dass jeder sehen kann wo die Unterschiede wirklich liegen. Deswegen hatte ich diesen Thread gestartet.

Und was die Langsamkeit von Titanium-Apps angeht: ich habe gerade mal ein wenig mit 'To the bars' herumgespielt, dass laut diesem Tweet mit Titanium entwickelt wurde. Das läuft sauber und superflüssig auf meinem iPhone 3GS. Vielleicht gibt's das ja auch schon im Androidmarket?

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

27.08.2010, 17:25:30 via Website

Dann mach doch mal einfach ...

Hier ist ein Beispiel das du ja sicher ganz easy umsetzen kannst: Simples Live Wallpaper .. zum Bleistift :

http://developer.android.com/resources/samples/CubeLiveWallpaper/index.html

Dann kannst Du naitive gecodet mit dem Appcelerator vergleichen.

Das sind gerade mal zwei Klassen übrigens. Der Aufwand sollte sich also in Grenzen halten und in Javascript geht das ja ratz fatz.

— geändert am 27.08.2010, 17:26:40

lg Voss

Antworten
Peter S.
  • Forum-Beiträge: 4

27.08.2010, 19:43:32 via Website

Gute Idee in den Samples von Android nachzugucken und das mit Titanium nachzuprogrammieren. Hätte ich eigentlich selbst drauf kommen sollen. :)

Das CubeLiveWallpaper ist ein schönes Beispiel, was man mit Titanium nicht machen kann (zumindest habe ich in der Doku nix dergleichen gefunden). Ich habe aber auch nie behauptet, dass man mit Titanium jede Art von App umsetzen kann. Spezielle Sachen wird man immer in der nativen Entwicklungsumgebung machen müssen. Aber es gibt ja auch haufenweise Standard-Apps, wie ToDo-Listen, Notizbücher oder eine Budgetverwaltung. Und warum soll man die nicht mit Titanium machen können?!

Ich werde deine Anregung mal aufgreifen und mir die Notepad-App mal ansehen. Aber erst muss ich den nächsten Artikel für mein Blog fertig schreiben.

Antworten