Kennt sich jemand mit Python für Android aus ?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
mephisto-online
User
Beiträge: 167
Registriert: Sonntag 29. September 2013, 17:05

Hallo,

nachdem ich jetzt so viel über Python gelesen habe, denke ich darüber nach, meine Android-Apps in Zukunft mit Python zu programmieren. Windows möchte ich dafür aber nicht benutzen ! Meine Basis ist Linux (Mint Maya).

Kennt sich jemand schon damit aus und kann mir bei meiner Entscheidung helfen, ob ich in dieses kalte Wasser springen sollte (lernen tu ich gerne, aber nur, wenn es was bringt ?

LG
Zuletzt geändert von mephisto-online am Montag 30. September 2013, 20:11, insgesamt 1-mal geändert.
BlackJack

@mephisto-online: Ich würde sagen Python ist da nicht wirklich geeignet. Bei Apps verwendet man besser die „native” Sprache für die jeweilige Plattform, also Java bei Android, oder HTML+CSS+JavaScript+eine Bibliothek um die Brücke zur Hardware zu schlagen, wenn die App darauf Zugriff benötigt. Also zum Beispiel mit Apache Cordova.
mephisto-online
User
Beiträge: 167
Registriert: Sonntag 29. September 2013, 17:05

@BlackJack

Apache Cordova sieht ja wirklich interessant aus !

Nach so etwas hatte ich auch schon gesucht, um endlich von diesem Java wegzukommen. Ich mag es einfach nicht ! Ich konnte aber (ausser Eclipse) keine kostenfreie Community-IDE finden, mit der man HTML/CSS/JavaScript für Android machen kann. Obwohl ich ständig die IT-News verfolge, ist mir Cordova aber noch nicht über den Weg gelaufen, auch nicht beim "googeln".
Jetzt bin ich halt über Python gestolpert, weil mich mal interessiert hatte, womit denn Linux programmiert ist (C, C++ und Python). Und beim googeln bin ich dann auf die Kivy-Aktivitäten gestossen und habe auch schon ein wenig damit ausprobiert. Bislang macht das alles einen verdammt guten Eindruck ! :P

Jetzt würde ich halt gerne wissen, wie Leute, die es anwenden, damit klarkommen. :wink:
mephisto-online
User
Beiträge: 167
Registriert: Sonntag 29. September 2013, 17:05

@BlackJack

Apache Cordova, muss ich das erst compilieren ? Hast Du schon viel damit gemacht ?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Cordova hieß früher PhoneGap, vielleicht hast du ja deswegen noch nichts davon gehört.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
mephisto-online
User
Beiträge: 167
Registriert: Sonntag 29. September 2013, 17:05

Nun gut, HTML/CSS/JavaScript ist natürlich bestimmt auch nicht schlecht für Android-Apps und natürlich auch für die anderen Plattformen. Aber Python/Kivy macht auf mich einen besseren, noch übersichtlicheren Eindruck. Deshalb hatte ich ja mal nachgefragt ... :P

LG
Benutzeravatar
snafu
User
Beiträge: 6744
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Manchmal muss man aber auch mal mit nicht ganz so angenehmen Sprachen Vorlieb nehmen, wenn es aus rein technischen Gründen sinnvoll erscheint, finde ich.
Benutzeravatar
noisefloor
User
Beiträge: 3857
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

es gibt ja auch noch SL4A (http://code.google.com/p/android-scripting/), wobei das für größere Apps IMHO auch suboptimal ist. Eine ziemlich gute Einführung zu dem Thema bietet da Buch "Pro Android Python with SL4A". Das beschäftige sich aber zu über 50% damit, wie man SL4A und die späteren Skripte unter Android zum Laufen bekommt, weniger mit Programmierung an sich.

Wie schon gesagt wurde: wenn du eine nicht-nativ unterstützte Sprache nutzt kann der Overhead ziemlich groß sein.

Gruß, noisefloor
BlackJack

Den grossen Vorteil den ich bei HTML5+CSS+JavaScript sehe, ist dass das zu einem grossen Teil unabhängig vom System ist solange es dort einen aktuellen Browser gibt, während die „nativen” Programmiersprachen auf den Plattformen recht unterschiedlich sind (Android/Java, IPhone/ObjectiveC, Windows/C++, FirefoxOS/???, …). Man hat also die Chance mehr wiederverwendbaren Code für mehr Zielsysteme zu schreiben. Und wer weiss, vielleicht ist die App nicht nur praktisch auf dem Smartphone, sondern auch auf einem Tablet oder Desktop-PC.
Dami123
User
Beiträge: 225
Registriert: Samstag 23. Februar 2013, 13:01

@BlackJack
Sehe ich genauso. Solange man keine hardwarenahen Apps programmiert, ist die Kombination der browserausführbaren Sprachen viel geeigneter.
Man könnte das App in allen App-Stores anbieten und auch als Blackberry-App, zudem auch auf dem PC und auch direkt auf einer Website implementieren. Wenn es um Verbreitung und ggf. verbundenen Gewinn geht, ist diese Kombination zu empfehlen.
mephisto-online
User
Beiträge: 167
Registriert: Sonntag 29. September 2013, 17:05

Hallo, ist ja ein sehr hilfreiches Feedback hier ! :)

Momentan möchte ich eine App machen mit 2D-Grafiken (Fernziel 3D :P ) und diese per Touch (also auf Smartphone oder Tab) modifizieren können, in etwa à la Blender. Dafür brauch ich wahrscheinlich auch C++-Methoden. Wäre das denn mit HTML...JavaScript möglich ? Da ist mir ausser Cordova auch Sencha über den Weg gelaufen. Mit Python/Kivy wäre das jedenfalls (ebenfalls plattform-übergreifend) möglich. Wenn das aber mit HTML/CSS/JS auch geht, würde ich es damit versuchen. Mir ist egal, was ich jetzt Neues lerne, es sollte nur Sinn machen, auch für die Zukunft :wink: .

LG
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

@mephisto-online:
Das Canvas-Element beherrschen alle heutigen Browser, damit sind zumindest 2D-Grafiken möglich. Wie es um den 3D-Kontext auf Smartphones gestellt ist, weiss ich nicht. Die meisten heutigen Geräte können OpenGL ES 1.1 (die neueren auch 2.0) - damit man WebGL nutzen kann, muss der Browser dies aktiviert haben. Keine Ahnung, ob das bei heutigen Geräten schon Standard ist.
mephisto-online
User
Beiträge: 167
Registriert: Sonntag 29. September 2013, 17:05

Kann man das Ganze denn auch in eine App verpacken für die App-Stores oder geht das dann immer nur über den Browser ? :?

Mit welcher kostenfreien IDE habt Ihr denn da gute Erfahrungen gemacht ? Mit Eclipse geht es ja wohl. Wie ist das mit Cordova oder Sencha ? :?:

Hatte ich gerade noch vergessen: 3D ginge dann mit Qt, auch mit Python.

LG
Zuletzt geändert von mephisto-online am Montag 30. September 2013, 19:35, insgesamt 1-mal geändert.
Benutzeravatar
noisefloor
User
Beiträge: 3857
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
mephisto-online hat geschrieben:Kann man das Ganze denn auch in eine App verpacken für die App-Stores oder geht das dann immer nur über den Browser ? :?
Das eine schließt das andere ja nicht aus ;-) Bücher zu HTML/JS Apps für Smartphones gibt's haufenweise. Geh' doch mal zum Buchhändler deiner Wahl - oder eine größere öffentliche Bibliothek - und werf einen Blick in ein entsprechendes Buch.

Gruß, noisefloor
mephisto-online
User
Beiträge: 167
Registriert: Sonntag 29. September 2013, 17:05

Bücher habe ich schon eine Menge gelesen, das ganze Regal ist voll davon. Aber letztendlich bin ich mit Beispielen und Beiträgen aus dem Internet (Blogs, Stackoverflow, oder so) und "Learning by Doing" wesentlich schneller voran gekommen. Jeder lernt halt anders. Aber wenn meine Fragen zu blöd sind, muss ich halt mal selbst schauen...

Wenn ich in einem Forum eine Frage sehe, die ich beantworten kann, helfe ich jedenfalls gerne weiter und empfehle nicht, erst mal ein Buch zu lesen ... Eine Hand wäscht die andere. Nennt sich das Ganze nicht auch Community ?

Naja, wieder was gelernt !
BlackJack

@mephisto-online: Wenn man alle Fragen mal so eben einfach beantworten könnte, selbst wenn man das Wissen hat, dann bräuchte es ja gar keine Bücher mehr. Interessanterweise gibt es die trotzdem. Du kannst Dir die Informationen auch im Netz zusammensuchen, die in solchen Büchern kompakt in Kapiteln zusammengefasst sind.

Die Antwort auf Deine Frage(n) sind nicht nur ein zwei Sätze, sondern jemand müsste Dir den Inhalt eines Buchkapitels hier zusammenschreiben. Das erwartest Du hoffentlich nicht ernsthaft, und ich glaube auch nicht, dass Du das machen würdest. Zudem das jetzt wenig mit Python zu hat wie man mit HTML und JavaScript Smartphone-Apps erstellt. Im Grunde überhaupt nichts.

Ausserdem vermittelst Du den Eindruck als wenn Du ziemlich oberflächlich durch die Sprachen und Techniken huschst und keine Ahnung hast was Anwendungsentwicklung im allgemeinen ausmacht. Auch das lässt sich nicht in ein oder zwei Sätzen erklären. Und es sieht so aus als wenn Du Dich eh nur kurz mit jedem Thema beschäftigst bevor Du zum nächsten springst. Da bekommt man auch keine Lust ausführlicher zu antworten.
mephisto-online
User
Beiträge: 167
Registriert: Sonntag 29. September 2013, 17:05

@BlackJack
Ok, mal von vorne, scheinst Du ja nicht richtig verstanden zu haben oder ich habe mich nicht deutlich genug ausgedrückt, obwohl andere meine Frage doch sehr wohl richtig verstanden haben:

1. das hier ist ein Python-Forum

2. ich habe mich nach Python/Kivy für Android erkundigt und wollte einfach mal wissen, ob schon jemand damit ein bisschen Erfahrung hat, wobei ich nicht danach gefragt habe, wie das im Detail geht !.

3. Mir wurde dann zu HTML5/CSS/JavaScript geraten, was OK ist, werde ich also versuchen.

4.
Ausserdem vermittelst Du den Eindruck als wenn Du ziemlich oberflächlich durch die Sprachen und Techniken huschst und keine Ahnung hast was Anwendungsentwicklung im allgemeinen ausmacht
Irgendwie ist es doch nicht nötig, hier persönlich zu werden !

Ich programmiere seit Apple II in Assembler, Basic, Pascal, C, C# und Java und habe auch schon mehrere, etwas komplexere Programme geschrieben. Jetzt geht es halt hin zu Script-Programmierung, die ich bislang immer irgendwie umschifft habe.

5. Du machst mir einen ziemlich eingebildeten Eindruck, auf was ? Bücher gelesen zu haben ?
BlackJack

@mephisto-online: Es tut mir leid wenn der Eindruck den Du auf mich gemacht hast, Dir zu persönlich ist, aber den hast Du nun mal gemacht. Das sind halt Aussagen wie Linux wäre in C, C++, und Python programmiert. Oder das man für 3D auf Android wahrscheinlich C++-Methoden braucht. Dann die Frage ob man mit einer JavaScript-basierten Lösung auch Apps für die App-Stores erstellen kann, hätte ein durchlesen der Startseite von Cordova locker beantwortet. Dann kommt plötzlich 3D mit Qt und Python ins Gespräch. Ich dachte es ging um Smartphones.

Zu 5.: Macht sich immer gut darüber zu jammern andere würden persönlich werden und dann so etwas zu schreiben. ;-)

Und ja, ich kann lesen. Auch Bücher. Übrigens auch 6502-Assembler. Über Apple II-Besitzer haben wir damals mitleidig gelächelt, da hättest Du mich wahrscheinlich auch schon als eingebildet empfunden. :twisted:

Das was Du Script-Programmierung nennst ist ganz normale Anwendungsprogrammierung, denn Du meinst offenbar keine Script-Programmierung. Denn Du möchtest ja anscheinend Anwendungen entwickeln und keine Skripte schreiben. Was Du eigentlich meinst, ist das Du bisher dynamisch typisierte Programmiersprachen umschifft hast. Wobei man bei Assembler sicher argumentieren kann ob das statisch typisiert ist. :-)
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

@mephisto-online:
Achtung, den Längenvergleich in puncto Sprachen wirst Du nicht gewinnen ;)
Wenn Du schon lange dabei bist, sollte Dir die Plattformheterogenität mit all ihren Schwierigkeiten bekannt sein. Bei der Suche nach Anwendungsentwicklung auf Smartphones sind Skriptsprachen so ziemlich das letzte, was einem über den Weg läuft. Wirklich empfehlen wird es Dir keiner - also geht man auf den kleinsten gemeinsamen Nenner zurück. Was die Geräte alle können/haben, sind moderne Browser(-engines). Daher ist man im HTML5-Umfeld zunächst gut aufgehoben.
Will man jedoch mehr - schiere Rechenpower *hüstel*, Zugriff auf Systemlibs mit Funktion XY, dann kommt man um "native" Entwicklung nicht herum. Wobei man auch hier Teile des Frontends über Webview-Container der SDKs vereinheitlichen könnte bzw Teile des Backends und native C/C++-Bibliotheken auslagern könnte. Hängt dann von den genauen Anforderungen ab. Aber da erzähle ich Dir ja nix neues, das kennst du ja alles schon von Java und C#.
mephisto-online
User
Beiträge: 167
Registriert: Sonntag 29. September 2013, 17:05

@BlackJack
Linux wäre in C, C++, und Python programmiert
ok, ist noch einiges an Perl dabei, aber ansonsten stimmts. Kann auch sein, dass es da nunmehr kein reines C mehr gibt. Bei den ersten Linux-Disties (DLD Slackware zum Bleistift) war es noch C in Reinkultur.
...3D auf Android wahrscheinlich C++-Methoden...
Was ist da falsch ? Methoden ? Für 3D braucht man sowieso C++, siehe z.B. Blender und für Android (und auch alle anderen Plattformen) kann man in Python und Qt programmieren (PySide).
Macht sich immer gut darüber zu jammern andere würden persönlich werden und dann so etwas zu schreiben
Schon wieder ! Ok. Aber ich habe keinen Grund, über irgendwas zu jammern. So Leute gibt es wohl in jedem Forum.
Übrigens auch 6502-Assembler. Über Apple II-Besitzer haben wir damals mitleidig gelächelt
Warum das denn ? Apple II hatte einen 6402 (und einen 8080 oder auch Z80). Wenn man sich angestrengt hat, konnte man darauf auch Assembler programmieren. Du bist mir ja einer !
..Anwendungen entwickeln und keine Skripte schreiben
Python ist eine Scriptsprache, HTML4/5 auch ! (Siehe Wikipedia, gibt es aber nicht als Buch ...)
bisher dynamisch typisierte Programmiersprachen umschifft hast. Wobei man bei Assembler sicher argumentieren kann ob das statisch typisiert ist
Das wird mir jetzt hier zu theoretisch und philosophisch, bin immer schon ein Praktiker.

@jerch
den Längenvergleich in puncto Sprachen wirst Du nicht gewinnen
Nee, will und kann ich auch gar nicht ! Aber wenn mir jemand unterstellt, gar keine Ahnung zu haben...
also geht man auf den kleinsten gemeinsamen Nenner zurück. Was die Geräte alle können/haben, sind moderne Browser(-engines). Daher ist man im HTML5-Umfeld zunächst gut aufgehoben
Da war ich ja auch schon angekommen - Chrome, Firefox, Safari und Co läuft halt überall. Trotzdem hatte mich die Sache mit Python mit Kivy oder erst recht Qt ziemlich angefixt und ich wollt halt mal hören, was andere so denken.
Meine ersten Apps (immer mit dynamischen Grafiken), normal mit Java programmiert, hielt ich für ziemlich aufwendig, aufwendiger noch als Java mit Swing, womit ich vorher Grafikprogramme für Desktop gemacht habe (die laufen auch unter Win, Mac und Linux). Für die Android-Programmierung mit z.B. IntelliJ oder Eclipse braucht man auch mittlerweile einen ziemlich schnellen Rechner. Jetzt möchte ich halt einen neuen Weg versuchen, werde es dann erst mal mit HTML5 probieren.

LG
Antworten