Bruke Clojure Å Bygge Innfødte Android Apps
Clojure utvikling På Android-plattformen har vært framdrift bemerkelsesverdig i de siste årene, slik at utviklere å bruke den i fullverdige apps som SwiftKey Klarhet Tastatur. Her vil vi gjennomgå gjeldende status for verktøy som støtter Clojure På Android-plattformen.
Historisk Har Clojure På Android lidd av langsom oppstart, noe som kan vare opptil 4-10 ganger lengre enn Java når du bruker standard oppstrøms Clojure. Dette problemet er løst Av Skummet, En clojure gaffel som optimaliserer Clojure kompilatoren slik at den produserer mer kompakt, raskere å laste bytekode. Foruten å gi en optimalisering kompilator, Skummet inneholder også en optimalisert versjon Av Clojure runtime som er bygget av den tidligere.
Skummet har som mål å sikre maksimal kompatibilitet, og selv om det kan være problemer med kode som er avhengig av å referere til Vars
direkte, bør de fleste Clojure-koden være kompatibel ut av boksen, ifølge Skummets skaperen Alex Yakushev.
Totalt Sett Er Skummet i stand til å bringe en 4x reduksjon i lastetiden på en enkel benchmark app første lansering, og 2x krymper i BÅDE APK størrelse og heap bruk. Ifølge SwiftKey ‘S Adam Clements Og Ben Leavett har Bruk Av Skummet tillatt Dem å holde Clarity Keyboard’ s lastetid rundt 1,5-2 sekunder, og ytterligere forbedringer er mulige.
andre nyttige verktøy For Clojure utvikling På Android er pakket under paraplyprosjektet Av Clojure-Android Initiative og inkluderer:
- lein-droid: En lein plugin som fungerer som en bygge verktøy For Clojure-Android prosjekter og omhandler prosessen med emballasje ressurser, lage EN APK-fil, signere den, etc.
- Neko: En verktøykasse som bryter noen deler Av Android Java API for å gjøre dem mer idiomatisk å bruke Fra Clojure.
Zach Oakes, forfatter Av Nightweb-appen For Android, sier At Clojure kan gjøre en apps kodebase” sjokkerende ” mindre ved å aktivere tette idiomer, samt forbedre appresponsen ved å gjøre det lettere for programmereren å kjøre asynkrone oppgaver.
Ifølge swiftkey ingeniører, bruk Av Clojure å bygge En Android app kan ha en stor innvirkning på app design. Spesielt I Clarity Keyboard saken, det gjorde det mulig å vedta en fullt “hendelsesdrevet” design, som kombinert med bruk av uforanderlige datastruktur gjør det mulig å enkelt lagre og” spille ” noen brukerhandlinger. Bruk av uforanderlige data bidro også til å bygge en svært modulær app og gjøre hver operasjon asynkron som standard.