Clojure на Android [закрито]


78

Чи можна програмувати програми для Android в Clojure? Хтось може запропонувати хороший підручник чи книгу, якщо це можливо?

Відповіді:


29

Так, ось головний проект, який мені відомий: https://github.com/remvee/clojurehelloandroid

І ось невеликий підручник http://riddell.us/ClojureAndAndroidWithEmacsOnUbuntu.html, хоча я не здивуюся, якщо цей підручник застарілий, як це було більше року тому, коли я грав із кодом, що слідував за цим посібником, і код remvee має з часу оновлення.

EDIT: див. Оновлення тут від Стюарта Сьєрри та групи Clojure / core: http://groups.google.com/group/clojure/browse_thread/thread/876c90d3ae353c61

"Clojure 1.2.0 працює" нестандартно "на Android, але час запуску все ще залишається проблемою. Деякі учасники Clojure / core експериментували із способами покращення цього, переважно шляхом вибіркового видалення речей, які не потрібні під час виконання .

Слідкуйте за новинами за посиланням http://dev.clojure.org/display/design/Android+Support . Останнє оновлення було зроблено Аароном Бедрою, членом Clojure / основного учасника, у грудні 2010 року. Я б не сказав, що це зараз є пріоритетом, але ніхто з них не втратив інтересу.

Я особисто не рекомендую писати програму для Android у Clojure, якщо ви маєте намір її негайно випустити. Але якщо вам цікаво поекспериментувати з Clojure на Android і зробити його кращим, тоді йдіть на це ".


17

Clojure отримує велику вигоду від компілятора Android 2.2 JIT, що значно покращує час завантаження класу. Clojure створює безліч невеликих класів, яким потрібно було "назавжди" завантажувати попередні версії Android.

ознайомтесь із цією "незавершеною" роботою над плагіном Swank для android з clojure


3
хе, я думав, що "swank" тут - це просто черговий прикметник.
Метью Вілліс,

3
Я бачу, я спробую знайти, куди це переїхало. Хоча досить круто 404 :)
Arthur Ulfeldt

14

Новим варіантом Clojure на андроїд є ClojureScript .

ClojureScript компілює Clojure у JavaScript, який потім можна обернути в програму. Це повністю обходить Dalvik-VM і дозволяє уникнути проблем із часом завантаження, якщо ваш додаток підходить для JavaScript. багато програм, які шукають більш щільної інтеграції з платформою, не можуть використовувати цей підхід. Якщо ваш додаток може жити з жорсткою інтеграцією платформи, це може заощадити вам багато часу.


шкода, що ви не можете написати java на clojurescript
gtrak

8

Я знаю, що це трохи давно, але на випадок, якщо хтось натрапить на це, clojure на Android пройшов довгий шлях з моменту відповідей вище. Lein-дроїд в і Neko проекти роблять його набагато простіше написати повний андроїд програми з використанням Clojure від початку до кінця.


7

На це вже відповідали раніше . Так, це можливо за допомогою декількох незначних хакерів. Однак минулого разу, коли я спробував, це було надзвичайно повільно і дуже голодно. Це було з Clojure 1.1 та Android 2.1. З тих пір ситуація могла б покращитися.


13
здається, що кожного разу, коли це запитання ставлять, він отримує кращі відповіді :) (оскільки у відповіді це ближче до "так, це працює" і далі від "це може колись спрацювати"), можливо, наступного разу, коли його зададуть, ми отримаємо справді "хороший 'відповідь
Arthur Ulfeldt

1

Шукайте "Clojure REPL", "Clojure" або "Sattvik Software" на Android Market, і ви знайдете чудовий REPL. Я використовував його у своєму планшеті XOOM 1, спочатку з Android 3, а тепер з Android 4.0 без проблем.

Якщо пошукати досить важко, ви знайдете програми для Java (Java IDE), Ruby (Ruboto IRB), Python, Lua, Perl, Javascript (SL4J для останніх чотирьох, також SigmaScript для Lua), ISLisp (tiny-ISLispdroid), OCaml (OCaml Toplevel), Scheme, C, C ++, C #, Pascal, Basic і навіть Forth!

Я шкодую, що у них досі немає такого для Скали!


3
Це питання було не стільки, скільки "Як я можу запустити код Clojure на пристрої Android", а скоріше "як я можу писати програми для Android на Clojure"
RR
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.