# Entwicklung von Smartphone programmen ohne selber eins zu besitzen



## seux (19. Jan 2012)

Hallo,
kann ich auch programme für Smartphones schreiben, ohne selber eines zu besitzen? Gibt es dafür einen Emulator, auf dem ich das dann testen kann, oder wie läuft sowas ab? Bin auf dem Gebiet total Unerfahren, daher gehe ich davon aus, dass die Frage hier für viele trivial ist.

lg
seux


----------



## pro2 (19. Jan 2012)

Also von Android weiß ich, dass dem Developer Kit ein Emulator dabei ist. Für andere Smartphones kann ich das nicht sagen.


----------



## XHelp (19. Jan 2012)

Um welche Smartphones geht es denn? Android? Im SDK ist ein Emulator mit dabei. Aber früher oder später kommst du nicht drumherum das mal an irgendeinem echten Telefon auszuprobieren.

Und es kommt natürlich darauf an WAS du überhaupt machen willst. Soweit ich weiß, kann der Android-Emulator nicht den Beschleunigungssensor emulieren etc.


----------



## Guybrush Threepwood (19. Jan 2012)

Ein Tipp: Lass die Finger davon. Diesen Fehler habe ich bereits gemacht. Sachen, die im Emulator laufen müssen nicht zwangsläufig auf dem Smartphone funktionieren. Du solltest die Software immer auf einem realen Gerät gründlich testen.


----------



## eRaaaa (19. Jan 2012)

Guybrush Threepwood hat gesagt.:


> Ein Tipp: Lass die Finger davon. Diesen Fehler habe ich bereits gemacht. Sachen, die im Emulator laufen müssen nicht zwangsläufig auf dem Smartphone funktionieren. Du solltest die Software immer auf einem realen Gerät gründlich testen.



Auch das ist kein Garant dafür, dass die App dann auf jedem Phone läuft?! Klar sollte man irgendwann es auch mal auf einem echten testen, aber wie willst du testen ob dein Layout auf allen Auflösungen läuft? Mit verschiedenen Android Versionen testen? Language-packs lassen sich so auch leichter testen finde und noch viele weitere Sachen. Also ich finde den Emu nicht schlecht, auch wenn der nicht alles kann, aber komplett zu sagen der taugt nix?! Mhm...


----------



## seux (19. Jan 2012)

Nun, ich bin kein besitzer eines Smartphones, deswegen wollte ich wissen, wie das gehandhabt wird. Ich wollte mich jetzt auch nicht auf ein bestimmtes System festsetzen. Aber bekomme ich dann nicht ohnehin eine .jar Datei? Die kann ich doch dann auch auf anderen Smartphones benutzen.


----------



## XHelp (19. Jan 2012)

Nein, du bekommst keine jar und nein, du kannst nicht mal eben irgendwas für alle Smartphones dieser Welt schreiben.


----------



## schlingel (19. Jan 2012)

Also unter Mac OS hast du für's iPhone einen "Simulator" und keinen Emulator. Da die iOS-App dann mit den Ressourcen deines Rechners läuft und nichts emuliert werden muss. Da hat man dann das Problem, dass die App im Emulator bzw. Simulator schneller läuft als am Gerät selbst. Vorraussetzung ist allerdings ein Mac und Objectiv-C.

Vorteil dabei: Bei Mac OS gibt's keine Fragmentierung weswegen man schon davon ausgehen kann, dass die App auf den Geräten läuft für die du deine App kompiliert hast. (je nach iOS-Version halt.)

Bei Android schaut es schon anders aus. Da läuft dann ein Emulator der tatsächlich die ganze Hardware emulieren muss und dementsprechend langsam ist. Zudem hast du das oben angesprochene Problem, dass du dir durch die Android-Fragmentierung nie sicher kannst auf wie vielen Geräten deine App denn läuft.

Ich hab einmal in einem Podcast gehört, dass das Dev-Studio von Angrybird z.B. auf 30 Geräten getestet hat damit sie alle relevanten Geräteklassen abdecken.

Bei Android hast du dafür den Vorteil des gewohnten Java-Toolsets (Eclipse, Ant, etc.) Du kannst sogar externe Jars einbinden die oft auch funktionieren. (Oft allerdings auch nicht ... Dalvik Compiler != certified Java Compiler)

Dritte Möglichkeit sind dann HTML 5 Apps.

Vierte Möglichkeit sind Frameworks wie Phonegap die das ganze dann wieder in native Apps kompilieren.


----------



## homer65 (20. Jan 2012)

seux hat gesagt.:


> Aber bekomme ich dann nicht ohnehin eine .jar Datei? Die kann ich doch dann auch auf anderen Smartphones benutzen.


Bei Android bekommst du keine .jar sondern eine .apk. Das hängt damit zusammen das der Bytecode im .jar nochmal übersetzt wird.


----------



## Evil-Devil (20. Jan 2012)

eRaaaa hat gesagt.:


> Auch das ist kein Garant dafür, dass die App dann auf jedem Phone läuft?! Klar sollte man irgendwann es auch mal auf einem echten testen, aber wie willst du testen ob dein Layout auf allen Auflösungen läuft? Mit verschiedenen Android Versionen testen? Language-packs lassen sich so auch leichter testen finde und noch viele weitere Sachen. Also ich finde den Emu nicht schlecht, auch wenn der nicht alles kann, aber komplett zu sagen der taugt nix?! Mhm...



Kommt darauf an was die Mindestvoraussetzung für die APp ist. Ob nun Android 2.3.2 oder 2.3.3 kann je nach verwendeten Funktionen einen erheblichen Unterschied ausmachen. Von daher Mindestversion festlegen und die Hardware Specs und dann muss man wirklich im Idealfall jedes Smartphone physisch haben. Andernfalls darf man sich auf Kritik gefasst machen, wenn es nicht funktioniert.

Oder man fragt nett und freundlich die Forumteilnehmer eine Demo auszuprobieren und Feedback zu senden


----------



## seux (23. Jan 2012)

Gehen wir jetzt mal davon aus, ich entwickle für Andoid. Wie bekomme ich denn meine App darauf? Kann ich sie einfach vom PC via USB rüberziehen und dann starten? Oder muss ich die App vorher auf den Market bringen?


----------



## eRaaaa (23. Jan 2012)

Nein die App muss nicht in den Market, aber signiert werden muss sie 
Signing Your Applications | Android Developers


----------



## schlingel (23. Jan 2012)

Du kannst die App - wenn das Handy per USB verbunden ist und im Festplattenmodus läuft - einfach raufschieben. Dann benötigst du noch eine Filesystemexplorer-App um das APK zu starten. 

Du schickst dir die App per Email.

Du pusht die APK per adb auf das Gerät. Das installiert dann auch gleich das APK.

Du installierst es über den Market.

Händisch signieren musst du die App allerdings nur wenn du nicht mit Eclipse oder einer anderen IDE entwickelst. Mit dem Debug-Key werden normalerweise alle Apps signiert wenn du den Play-Button drückst.


----------



## Evil-Devil (23. Jan 2012)

Oder über localhost downloaden. Android wird dann den Installations-Assi starten wollen.


----------



## TheDarkRose (23. Jan 2012)

Normalerweise sollte sogar Eclipse mit installierten ADT Plugin und Android SDK inkl. adb in Eclipse selbst das pushen auf das Gerät möglichs ein, wenn verbunden.


----------



## achilles (23. Jan 2012)

Außer dem kann man im Log-Cat auch schön alle Meldungen der Anwendung mitverfolgen, das vereinfacht das Debugging ganz ungemein.
Für die Dokumentation kann man auch aus Eclipse heraus Screenshots auch des Smartphones machen.

Ich muss sagen, dass die Anbindung an Eclipse schon ziemlich komfortabel ist - und man muss sich nicht als Entwickler registrieren und einen Obolus entrichten, wie beim IPhone...


----------



## schlingel (23. Jan 2012)

Die Integration des Android SDKs ist tatsächlich sehr komfortable im Eclipse gelöst - allerdings kann man diese ganzen Tools auch außerhalb der IDE verwenden. Das sind alles Konsolentools.


----------



## seux (24. Jan 2012)

Hört sich echt gut, danke für die Antworten. Ich werd das in nächster Zeit definitiv mal ausprobieren.


----------

