Clojure auf Android [geschlossen]

78

Ist es möglich, Android-Apps in Clojure zu programmieren? Kann jemand ein gutes Tutorial oder Buch vorschlagen, wenn es möglich ist?

JaneNY
quelle

Antworten:

29

Ja, hier ist das Hauptprojekt, das mir bekannt ist: https://github.com/remvee/clojurehelloandroid

Und hier ist ein kleines Tutorial http://riddell.us/ClojureAndAndroidWithEmacsOnUbuntu.html, obwohl ich mich nicht wundern würde, wenn dieses Tutorial veraltet wäre, wie es vor über einem Jahr war, als ich mit dem Code gespielt habe, der diesem Tutorial folgt, und Remvees Code hat seitdem aktualisiert.

BEARBEITEN: Siehe das Update hier von Stuart Sierra und der Clojure / Kerngruppe: http://groups.google.com/group/clojure/browse_thread/thread/876c90d3ae353c61

"Clojure 1.2.0 funktioniert" sofort "unter Android, aber die Startzeit ist immer noch ein Problem. Einige Mitglieder von Clojure / Core haben mit Möglichkeiten experimentiert, dies zu verbessern, hauptsächlich durch selektives Entfernen von Dingen, die zur Laufzeit nicht benötigt werden .

Folgen Sie http://dev.clojure.org/display/design/Android+Support für Neuigkeiten. Das letzte Update wurde von Aaron Bedra, einem Clojure / Kernmitglied, im Dezember 2010 veröffentlicht. Ich würde nicht sagen, dass es momentan eine hohe Priorität hat, aber die Leute haben auch nicht das Interesse verloren.

Ich persönlich würde nicht empfehlen, eine Android-App in Clojure zu schreiben, wenn Sie beabsichtigen, sie sofort zu veröffentlichen. Aber wenn Sie daran interessiert sind, mit Clojure auf Android zu experimentieren und es besser zu machen, dann machen Sie es. "

rplevy
quelle
17

Clojure profitiert stark vom Android 2.2 JIT-Compiler, der die Ladezeiten der Klassen erheblich verbessert. Clojure erstellt viele kleine Klassen, deren Laden auf früheren Android-Versionen "ewig" gedauert hat.

Schauen Sie sich diese 'in Bearbeitung' Arbeit an einem Swank-Plugin zum Androiden mit Clojure an

Arthur Ulfeldt
quelle
3
heh, ich dachte 'swank' hier war nur ein weiteres Adjektiv.
Matthew Willis
3
Ich sehe, ich werde versuchen herauszufinden, wohin sich das bewegt hat. Ziemlich cool 404 obwohl :)
Arthur Ulfeldt
14

Eine neue Option für Clojure auf Android ist ClojureScript .

ClojureScript kompiliert Clojure in JavaScript, das Sie dann in eine App einbinden können. Dies umgeht die Dalvik-VM vollständig und vermeidet Probleme mit der Ladezeit, wenn Ihre App für Javascript geeignet ist. Viele Apps, die eine engere Integration in die Plattform suchen, können diesen Ansatz nicht verwenden. Wenn Ihre App ohne enge Plattformintegration auskommt, können Sie viel Zeit sparen.

Arthur Ulfeldt
quelle
Es ist schade, dass Sie Java nicht mit Clojurescript schreiben können
gtrak
8

Ich weiß, dass dies ein bisschen alt ist, aber für den Fall, dass jemand darüber stolpert, hat Clojure auf Android seit den obigen Antworten einen langen Weg zurückgelegt. Der Lein-Droide und die Neko- Projekte machen es viel einfacher, vollständige Android-Programme mit Clojure von Anfang bis Ende zu schreiben.

Roland
quelle
7

Dies wurde beantwortet vor . Ja, es ist mit ein paar kleinen Hacks möglich. Das letzte Mal, als ich es versuchte, war es extrem langsam und sehr speicherhungrig. Dies war mit Clojure 1.1 und Android 2.1. Die Dinge könnten seitdem verbessert worden sein.

Maurits Rijk
quelle
13
Es scheint, dass jedes Mal, wenn diese Frage gestellt wird, sie bessere Antworten erhält :) (da die Antwort näher an "Ja, es funktioniert" und weiter von "Es kann eines Tages funktionieren" liegt), werden wir vielleicht beim nächsten Mal eine wirklich gute Antwort bekommen 'Antwort
Arthur Ulfeldt
1

Suchen Sie im Android Market nach "Clojure REPL", "Clojure" oder "Sattvik Software" und Sie werden eine ausgezeichnete REPL finden. Ich habe es in meinem XOOM 1 Tablet verwendet, zuerst mit Android 3 und jetzt mit Android 4.0 ohne Probleme.

Wenn Sie hart genug suchen, finden Sie Programme für Java (Java IDE), Ruby (Ruboto IRB), Python, Lua, Perl, Javascript (SL4J für die letzten vier, auch SigmaScript für Lua), ISLisp (tiny-ISLispdroid), OCaml (OCaml Toplevel), Schema, C, C ++, C #, Pascal, Basic und sogar Forth!

Ich bedaure, dass sie noch keine für Scala haben!

Bruno Alessi
quelle
3
Diese Frage war nicht so sehr wie "Wie kann ich Clojure-Code auf einem Android-Gerät ausführen", sondern "Wie kann ich Android-Apps in Clojure schreiben"
RR