Utilizarea Clojure pentru a construi aplicații Android Native
dezvoltarea Clojure pe platforma Android a progresat remarcabil în ultimii ani, permițând dezvoltatorilor să o folosească în aplicații cu drepturi depline, cum ar fi tastatura Clarity SwiftKey. Aici vom examina starea actuală a instrumentelor care acceptă Clojure pe platforma Android.
din punct de vedere istoric, Clojure pe Android a suferit de pornire lentă, care ar putea dura până la 4-10 ori mai mult decât Java atunci când se utilizează Clojure standard în amonte. Această problemă este abordată de Skummet, o furcă Clojure care optimizează compilatorul Clojure, astfel încât să producă un cod bytecode mai compact, mai rapid de încărcat. Pe lângă furnizarea unui compilator de optimizare, Skummet include și o versiune optimizată a runtime-ului Clojure, care este construită de primul.
Skummet își propune să asigure compatibilitatea maximă și, deși ar putea exista probleme cu codul care se bazează pe referențierea directă Vars
, Majoritatea codului Clojure ar trebui să fie compatibile din cutie, potrivit creatorului lui Skummet Alex Yakushev.
în general, Skummet este capabil să aducă o reducere de 4 ori a timpului de încărcare la prima lansare a unei aplicații de referință simple și o scădere de 2 ori atât în dimensiunea APK, cât și în utilizarea heap. Potrivit lui Adam Clements și Ben Leavett de la SwiftKey, utilizarea Skummet le–a permis să păstreze timpul de încărcare al Clarity Keyboard în jur de 1,5-2 secunde și sunt posibile îmbunătățiri suplimentare.
alte instrumente utile pentru dezvoltarea Clojure pe Android sunt ambalate sub proiectul umbrelă al Clojure-Android Initiative și includ:
- lein-droid: un plugin Leiningen care funcționează ca un instrument de construire pentru proiectele Clojure-Android și se ocupă de procesul de ambalare a resurselor, crearea unui fișier APK, semnarea acestuia etc.
- Neko: un set de instrumente care împachetează unele părți ale API-ului Java Android pentru a le face mai idiomatice de utilizat de la Clojure.
Zach Oakes, autorul aplicației Nightweb pentru Android, spune că Clojure poate micșora “șocant” baza de cod a unei aplicații, permițând expresii concise, precum și îmbunătățirea capacității de reacție a aplicației, facilitând programatorului să ruleze SARCINI asincrone.
potrivit inginerilor SwiftKey, utilizarea Clojure pentru a construi o aplicație Android poate avea un impact imens asupra designului aplicației. Mai exact, în cazul Clarity Keyboard, a făcut posibilă adoptarea unui design complet “condus de evenimente”, care, împreună cu utilizarea structurii de date imuabile, permite stocarea și “reluarea” cu ușurință a oricăror acțiuni ale utilizatorului. Utilizarea datelor imuabile a ajutat, de asemenea, la construirea unei aplicații extrem de modulare și la fiecare operație asincronă în mod implicit.