Pomocí Clojure Vybudovat Nativní Aplikace pro Android
Clojure vývoj na platformě Android byl průběh pozoruhodně v posledních několika letech, což umožňuje vývojářům používat to v plnohodnotné aplikace, jako je například SwiftKey je Clarity Klávesnice. Zde přezkoumáme aktuální stav nástrojů, které podporují Clojure na platformě Android.
historicky Clojure na Androidu trpěl pomalým spouštěním, které by mohlo trvat až 4-10 krát déle než Java při použití standardního upstream Clojure. Tento problém řeší Skummet, vidlice Clojure, která optimalizuje kompilátor Clojure tak, že vytváří kompaktnější a rychlejší bytecode. Kromě poskytování optimalizačního kompilátoru obsahuje Skummet také optimalizovanou verzi Runtime Clojure, kterou vytvořil první.
Skummet si klade za cíl, aby byla zajištěna maximální kompatibilita a, ačkoli tam by mohlo být problémy s kódem, který se spoléhá na odkazování Vars
přímo, většina Clojure kód by měl být kompatibilní z krabice, podle Skummet tvůrce Alex Yakushev.
celkově je Skummet schopen přinést 4x snížení doby načítání při prvním spuštění jednoduché srovnávací aplikace a 2x zmenšení velikosti APK i využití haldy. Podle SwiftKey Adam Clements a Ben Leavett, používání Skummet jim umožnilo udržet čas načítání klávesnice Clarity kolem 1.5 – 2 sekundy a další vylepšení jsou možná.
Další užitečné nástroje pro Clojure vývoj na Android jsou baleny pod záštitou projektu Clojure-Android Iniciativu a patří:
- lein-droid: plugin Leiningen, který funguje jako nástroj pro vytváření projektů Clojure-Android a zabývá se procesem balení zdrojů, vytvořením souboru APK, jeho podpisem atd.
- Neko: toolkit, který obalí některé části Android Java API, aby byly více idiomatické používat od Clojure.
Zach Oakes, autor Nightweb aplikace pro Android, říká, že Clojure může aplikace codebase “překvapivě” menší, tím, že umožňuje strohé styly, stejně jako zlepšení aplikace reagovat tím, že je jednodušší pro programátora, aby spustit asynchronní úkoly.
podle inženýrů SwiftKey může mít použití Clojure k vytvoření aplikace pro Android obrovský dopad na design aplikace. Konkrétně v případě Klávesnice Clarity to umožnilo přijmout plně “event driven” design, který spolu s použitím neměnné datové struktury umožňuje snadno ukládat a” přehrávat ” jakékoli akce uživatele. Použití neměnných dat také pomohlo vytvořit vysoce modulární aplikaci a ve výchozím nastavení učinit každou operaci asynchronní.