# iPhone/iPod/iPad und Java?



## Jayva (14. Okt 2010)

Hallo. Weiß jemand, ob man auf dem iPhon/iPod/iPad Apps mit Java für den Apple Store programmieren? Oder geht nur xCode für diese "apple" Geräte?


----------



## Noctarius (14. Okt 2010)

Es geht nicht nur XCode aber gerade Java geht nicht (außer über xmlvm). Wobei es mal Ankündigungen für JavaME für's IPhone gab, ob das aber fertig wurde, keine Ahnung.


----------



## Geeeee (15. Okt 2010)

Und auch wenn es existieren sollte, muss es noch von Apple akzeptiert werden, damit du in den AppStore kommst. Sind die nicht vor ~6 Monaten dazu übergegangen, dass man nur noch (objective) C Programme offiziell einreichen darf? Also auch wenn ein Compiler aus java ein Pseudo-Objective-C Programm erstellt, kann es sein, dass du es auch nicht in den Store bekommst.


----------



## Sonecc (15. Okt 2010)

Geeeee hat gesagt.:


> Und auch wenn es existieren sollte, muss es noch von Apple akzeptiert werden, damit du in den AppStore kommst. Sind die nicht vor ~6 Monaten dazu übergegangen, dass man nur noch (objective) C Programme offiziell einreichen darf?


Diese Einschränkungen sind diesen Monat aufgehoben worden.

Dennoch gibt es keine Java-fähigkeit im iOS, egal welcher Version


----------



## Geeeee (15. Okt 2010)

Sonecc hat gesagt.:


> Diese Einschränkungen sind diesen Monat aufgehoben worden.
> 
> Dennoch gibt es keine Java-fähigkeit im iOS, egal welcher Version



Ne, dass war auch auf die "Programmiersprachen-Cross-Compiler" bezogen und danke für die Info bzgl. der Restriktion.


----------



## MarderFahrer (15. Okt 2010)

Es gibt zwar nicht direkt "Java" als Möglichkeit für iOS Geräte zu proggen, aber dafür eine ähnliche Alternative.

Titanium Mobile von Appcelerator.

Auch wenn nicht auf Java, sondern auf JavaScript gesetzt wird, macht das Programm einem dennoch Nativen Code. Und das nicht nur für die iOS Platform, sondern auch für Android. (Und ich hab mal Gerüchteweise was von Blackberry gehört). Aber Android und iOS funktionieren jetzt schon.

Man kann sich also eine einzige Codebase schaffen und diese für beide Platformen builden. Vorrausgesetzt man achtet auf die Unterschiede zwischen den Platformen und fängt diese im Code ab, damit der Complier da nicht ins stocken gerät. Wäre z.b schwierig die iAD Implementierung zu verwirklichen wenn man einen Android Build machen möchte.

Die Oberflächen Gestaltung ist zwar nicht ganz so komfortabel wie mit dem InterfaceBuilder von xCode, aber ansonsten kann man damit schon ne Menge machen. Besonders wenn einem JavaScript  vertrauter ist als objC.

Um die Business Logik dennoch in Java schreiben zu können käme mir da noch die Idee dies mittels GWT zu probieren. Da kann man ja (so ziemlich) reinen Java Code schreiben und dieser Code wird dann in JavaScript übersetzt. Ohne das jetzt getestet zu haben würde ich vermuten, dass dieser JavaScript Code dann auch in Verbindung mit Titanium funktionieren müsste.
Das ist, wie gesagt aber nur mal so ins Blaue geraten von mir. Hab ich noch nicht ausprobiert.
Bisher reichte es mir die Logik direkt in JavaScript zu schreiben.


----------



## Noctarius (15. Okt 2010)

Wenn wir schon bei JavaScript sind kann man da auch noch Sencha anmerken. Gerade in Verbindung mit GWT (bzw der ExtJS Erweiterung GXT) kann man da HTML/JS Sachen basteln wo Sencha automatisch ein natives GUI Feeling erzeugt.


----------



## MarderFahrer (15. Okt 2010)

Ja, angeguckt bzw. ein bisschen mit gespielt hab ich auch schon. Als inoffizieller Vorgänger kann man dann noch jQTouch erwähnen als Plugin für das jQuery Framework. 

Das sind dann alles Lösungen, die man im Web deployen kann. Wenn man das ganze dann noch in den App Store bringen will, braucht man noch so etwas wie PhoneGap.
Ich persönlich kann zwar noch keine Vergleiche ziehen, habe aber an manchen Stellen gelesen, dass die PhoneGap/Sencha/jQTouch Lösungen wohl nicht so performant sind wie Nativer Code. Was natürlich Sinn macht.

Wenn man also eine "schwere" Anwendung plant, sollte man wohl immer versuchen Native zu gehen.
Wer nur die 1001. BMI Rechner oder Taschenlampen Anwendung machen will, für den reicht auch PhoneGap.


----------



## ice-breaker (15. Okt 2010)

MarderFahrer hat gesagt.:


> Und ich hab mal Gerüchteweise was von Blackberry gehört


nicht nur Gerüchte, das wird die nächste unterstützte Platform. Kunden im Premium Programm von Appcelerator haben auf die Beta scheinbar schon Zugriff.



MarderFahrer hat gesagt.:


> Aber Android und iOS funktionieren jetzt schon.


und das wirklich sehr gut, wenn man eine Applikation hat, die mit Titanium Mobile baubar ist (es wird eben nicht alles unterstützt), dann sieht man keinen Unterschied zu einer Applikation, die mit Objective-C erstellt wurde.



MarderFahrer hat gesagt.:


> Um die Business Logik dennoch in Java schreiben zu können käme mir da noch die Idee dies mittels GWT zu probieren. Da kann man ja (so ziemlich) reinen Java Code schreiben und dieser Code wird dann in JavaScript übersetzt. Ohne das jetzt getestet zu haben würde ich vermuten, dass dieser JavaScript Code dann auch in Verbindung mit Titanium funktionieren müsste.


vermute ich eher weniger, du musst schon die Titanium Mobile Funktionen nutzen, die GWT ja nicht kennt. Also das das funktioniert, bezweifel ich sehr stark.



MarderFahrer hat gesagt.:


> Das ist, wie gesagt aber nur mal so ins Blaue geraten von mir. Hab ich noch nicht ausprobiert.
> Bisher reichte es mir die Logik direkt in JavaScript zu schreiben.


das meiste ist doch zutreffend und beschreibt es sehr gut.



MarderFahrer hat gesagt.:


> Ich persönlich kann zwar noch keine Vergleiche ziehen, habe aber an manchen Stellen gelesen, dass die PhoneGap/Sencha/jQTouch Lösungen wohl nicht so performant sind wie Nativer Code. Was natürlich Sinn macht.


nicht nur, dass es langsamer ist, wenn ich eine native Applikation habe, erwarte ich ehrlich gesagt auch die ganzen nativen UI-Elemente von iOs und nicht "selbst gemalte" von jqTouch, das ist denke ich mal ein riesen Kritikpunkt gegen das deployen von jqTouch als natives App.


----------



## Noctarius (15. Okt 2010)

ice-breaker hat gesagt.:


> nicht nur, dass es langsamer ist, wenn ich eine native Applikation habe, erwarte ich ehrlich gesagt auch die ganzen nativen UI-Elemente von iOs und nicht "selbst gemalte" von jqTouch, das ist denke ich mal ein riesen Kritikpunkt gegen das deployen von jqTouch als natives App.



Und genau hier setzt Sencha wohl an. Wie ich es verstanden habe nutzt es intern (wie auch immer) die nativen GUI Elemente des Betriebssystems, falls nicht sehen die "selbst gemalten" Digner täuschend echt aus und verhalten sich eben so. Groß was damit gemacht habe ich noch nicht, nur ein bisschen Spielerei, aber ich fand es schon echt beeindruckend.


----------



## ice-breaker (15. Okt 2010)

Hmm, also dass Titanium Mobile die nativen Elemente nutzt ist garantiert, aber bei Sencha Touch bin ich mir gerade echt nicht sicher. Die sagen man kann die Elemente über CSS3 stylen, aber die nativen Elemente haben eigentlich rein gar nichts mit CSS zu tun, es seidenn Sencha parsed das CSS und kann bestimmte Eigenschaften (color) auf die echten nativen Elemente anwenden.
Andererseits befindet sich aber ExtJs in der Dokumentation zu Sensa Touch, hmm

Edit: Das sind ja WebApps, damit sind es garantiert nicht die nativen UI-Elemente sondern teilweise wirklich gut nachgebaute.


----------



## Noctarius (15. Okt 2010)

Keine Ahnung, wie gesagt wenn die gefaked sind, haben die das richtig gut gemacht, sogar dieser (wie heißen die) Slider, die iPad und Konsorten auch zum Entsperren nutzen, ist vorhanden und verhält sich wie gewohnt - vielleicht merke ich auch nur keinen Unterschied da ich iZeugs Verächter bin 
Sencha ist ExtJS (im Hintergrung irgendwie).


----------



## ice-breaker (15. Okt 2010)

Noctarius hat gesagt.:


> wie gesagt wenn die gefaked sind, haben die das richtig gut gemacht



jup, einige UI-Elemente sind verdammt gut kopiert, aber eben da, wo die angefangen haben eigene zu bauen, sieht man den Unterschied, erst daher habe ich es gemerkt.


----------

