Při výběru technologie pro nové projekty neustále balancujeme mezi efektivitou a vhodností daného nástroje. Pro vývoj multiplatformní desktopové aplikace na zakázku jsme se rozhodli pro malý experiment – inovativní framework Tauri. Jak se nám s ním pracovalo a jaký byl výsledek?
U každého projektu při výběru technologie zvažujeme, co bude pro danou problematiku nejvhodnějším řešením. Zaměřujeme se na několik aspektů:
S novými nástroji rádi experimentujeme a právě taková příležitost se nám naskytla, když jsme od jednoho z našich dlouhodobých partnerů dostali zakázku na vývoj desktopové aplikace. Ta měla za úkol zefektivnit rutinní práci zaměstnanců. Jednalo se o interní nástroj používaný několika málo uživateli – a to byl právě ten prostor pro vyzkoušení něčeho nového.
Tauri je framework pro tvorbu štíhlých, bezpečných a rychlých aplikací nejen pro počítače ale i pro mobilní zařízení, který kombinuje webové technologie na frontendu a Rust na backendu.
Uživatelské rozhraní se vytváří pomocí webových technologií HTML, CSS a Javascript/TypeScript. Díky tomu lze při stavění aplikace použít každý webový frontendový framework.
Na backendu se v současné verzi 1 používá Rust, ale s verzí 2.0 přichází podpora pro jazyky Swift a Kotlin. Backend v Tauri spravuje webview a komunikuje s operačním systémem. Případně také obsahuje business logiku, kterou je také možné napsat přímo na frontendu v Javascriptu nebo TypeScriptu.
Tauri poskytuje užitečná backendová rozhraní pro interakci s operačním systémem, například pro práci se soubory. Tato rozhraní se pak dají jednoduše volat přímo z frontendu a vy tedy nemusíte opouštět svět Javascriptu a rovnou interagovat s operačním systémem pomocí poskytnutých rozhraní.
Když narazíte na „usecase”, pro který vám poskytnutá rozhraní nestačí, není problém si na backendu napsat vlastní command v jednom z podporovaných jazyků, který budete volat z frontendu.
Pokud se rozhodnete psát větší část logiky na frontendu, musíte si být vědomi toho, že váš kód poběží v prohlížeči. Prostředím je tedy browser a né Node.js.
Několikrát jsme narazili na to, že knihovny (např. pro šifrování souborů), které jsme chtěli použít, byly navrženy pro běh v Node.js a v prohlížeči nefungovaly, protože jim chyběly funkce poskytované v Nodu. Jednalo se například o funkce pro práci s filesystémem.
Tento problém má čtyři možná řešení:
Tauri dbá na to, aby velikost výsledné aplikace byla co nejmenší. Narozdíl od jiných frameworků, jako např. Electron, v sobě Tauri aplikace neobsahují prohlížečový engine, ale používají existující prohlížeč na systému uživatele.
Obsahují tedy pouze kód a assety specifické pro svůj běh. Nemusí navíc obsahovat prohlížeč. Velikost minimální Tauri aplikace tak může být i méně než 600 KB.
Jeden z důvodů zaměření se na velikost aplikace je její dopad na prostředí. Čím menší se nám aplikaci podaří udělat, tím méně bajtů zabírá na disku. Čím méně bajtů na disku, tím menší soubor si uživatel stahuje.
Čím méně si uživatel stahuje, tím rychlejší je proces. Hlavně se také méně bajtů posílá po síti, což snižuje spotřebu elektřiny. A nakonec, čím menší spotřeba elektřiny, tím méně CO2.
I pro ty, které životní prostředí tolik nezajímá, by měla být velikost aplikace důležitá. Jak jsme si ukázali, čím menší aplikace, tím méně spotřebované elektřiny – a ta není zadarmo.
Pro jednoho uživatele bude rozdíl v ceně mezi stahováním velké a malé aplikace zanedbatelný, ale pro společnost, jejíž aplikaci stahují miliony lidí měsíčně, může menší velikost významně snížit náklady na provoz.
Při tak velkém číslu stahování ušetříte pár milionů bajtů přenesených přes síť.
Tauri je ideální volbou pro vývojářský tým, který potřebuje pro klienta vytvořit nativní aplikaci a který má zkušenosti se stavěním uživatelských rozhraní pomocí webových technologií.
Nám toto experimentování s Tauri umožnilo vytvořit efektivní, výkonnou aplikaci a zároveň přijít s řešením, jak snížit energetickou zátěž a provozní náklady. Technologické trendy neustále sledujeme a těšíme se na další příležitosti pro využití inovativních řešení.