Hlavní navigace

Zbavujeme se fragmentace s Librem 5

16. 12. 2020
Doba čtení: 5 minut

Sdílet

 Autor: Purism
Fragmentace je zásadní problém ve světě vývoje počítačového softwaru, který se jen zhoršil s příchodem mobilních počítačů. Fragmentací se myslí nekompatibilní platformy, které nutí vývojáře spravovat oddělené větve jejich kódu.

Článek je volně přeložen z blogu Purism.

Pokud jste chtěli před dvaceti lety napsat software pro koncového uživatele, museli jste se rozhodnout, zda podporovat Windows, Mac nebo Linux. Každá z těchto platforem vyžadovala sestavení, testování a údržbu jiné větve vašeho softwaru.

V dnešní době však vývojář musí při nejmenším rozhodnout, zda vyvíjet mobilní či aplikaci pro desktop. V závislosti na této volbě dále rozhodnout zda podporovat Android nebo iOS (a pokud chce být in, všechny forky Androidu a rozdílné mobilní linuxové systémy) nebo Windows, macOS a Linux, případně všechny zmíněné možnosti!

Každá platforma znamená separátní vývoj, rozdílnou sadu knihoven a v některých případech je třeba vyvinout aplikaci v odlišném jazyku v kombinaci s naprosto rozdílným frameworkem! Pro vývojáře znamená fragmentace nutnost dělit svůj omezený čas a pozornost mezi rozdílný kód a rozumět rozdílům každé platformy. Fragmentace plýtvá hodnotným časem vývojáře. Protože mnoho těchto aplikací je uzavřených (zejména mobilní aplikace), vývojáři obvykle nemohou spoléhat na podporu komunity v portování aplikace na jiné platformy a její podpoře.

Fragmentace Androidu

Ekosystém Androidu je ještě o poznání více fragmentován, a to jak snahou výrobců distribuovat vlastní verze Androidu, ale i tím že výrobci po uplynutí roku či dvou přestanou systém aktualizovat – pokud zařízení vůbec dostane nějaké aktualizace. Když vezmete v úvahu tento stav s zpětně nekompatibilními vlastnostmi nových verzí, vývojáři aplikací pro Android musí podporovat širokou škálu vydaných operačních systémů a stále sledovat, kolik starších systémů má významný tržní podíl, aby věděli, kolik uživatelů aplikace již nebude schopno aktualizovat na novou verzi.

„Mobilní“ Linux a jeho fragmentace

Během posledních let tu bylo mnoho pokusů vytvořit „mobilní“ linuxový operační systém s vidinou tradičnější linuxové distribuci běžící na mobilním hardware. Tyto operační systémy kombinují linuxové jádro (často linuxové jádro upravené pro potřeby Androidu) s vlastním uživatelským prostředím a pokračují v odkazu Androidu (který je pouze mobilní OS, běžící na linuxové jádře též s vlastním uživatelským prostředím), dále odloučené větve (forks) Androidu které přidávají bezpečnostní prvky, Androidy, které odstraňují všechny proprietární komponenty, až po to, co si většina lidí vybaví pod pojmem „mobilní Linux“ – operační systémy, které zahrnují velké množství různých a nekompatibilních uživatelských rozhraní.

Na neštěstí, většina snah o „linuxový mobil“ problém s fragmentací zvětšila. Proč? Protože vývojář, který by rád, aby jeho software fungoval na některém z těchto systémů nenabízejících prostředí Androidu, musí přenést svůj software na další platformu. To platí, i pokud vývojář již podporuje Linux na desktopu.

Více než jiné faktory, fragmentace vedla k velmi omezené adopci mobilních linuxových systémů (nebo i jakékoli jiné alternativě k Androidu či iOS). Je to jeden z důvodů, proč každá konverzace končí slovy „kolik aplikací dokážete nabídnout?“ Pokud musíte portovat každou aplikaci na svou platformu, budete čelit velice náročnému úkolu.

Počet aplikací hrál velkou roli na Androidu a iOS, protože aplikace musely být portovány (a zásadně přepsány) z existujících prostředí. Pokud by všechny aplikace pro macOS „prostě fungovaly“ na iOS, „mnoho aplikací“ nemuselo být nikdy součástí konverze. Stejně jako weboví vývojáři odpověděli na záplavu mobilních uživatelů responzivním web designem během pár let, vývojáři aplikací pro Mac by postupovali stejně, aby zajistili funkčnost svých aplikací na iOS. Proto Librem 5 běží na PureOS.

Librem 5 a PureOS

Kromě otázky „kolik aplikací podporujete?“ další často kladená otázka v souvislosti s Librem 5 je „proč jste nepoužili Android/fork Androidu/jiný čistě-mobilní Linux OS?“. Přemýšlíme-li o Librem 5 jako o přenosném, víceúčelovém počítači a ne jako o „chytrém telefonu“ – potom by měl používat běžný víceúčelový operační systém. Chtěli jsme předejít fragmentaci, starostem s portováním a chybám ostatních platforem, a to použitím stejného operačního systému jako na našich noteboocích.

Místo přemlouvání vývojářů k podpoře dalšího mobilního operačního systému – uvědomili jsme si, že nejlepší cesta k úspěchu poskytnutí alternativy k Androidu a iOS je využití platformy, která je již známá a nabízí podporu: PureOS. Místo trávení času nad portováním aplikací jsme mohli investovat do existujícího ekosystému linuxového desktopu a přizpůsobit ho mobilním zařízením.

Protože vycházíme z prostředí linuxového desktopu, již teď máme k dispozici tisíce aplikací. Tak jako weboví návrháři vytvářejí responzivní webové stránky, my jsme konvertovali aplikace na adaptivní design, aby aplikace vypadali dobře na malých obrazovkách. Pro tento účel jsme vyvinuli knihovnu libhandy, abychom zjednodušili přidávání adaptivních vlastností k existujícím aplikacím psaných v GTK. Také jsme kromě ostatních nástrojů vyvinuli phosh, phoc a squeekboard, abychom mohli vytvořit desktopové prostředí, které funguje dobře s zařízením velikosti telefonu.

Díky našemu přístupu, Librem 5 může využívat běžný Firefox pro desktop a ani jsme nemuseli žádat Mozillu o port na naši platformu. Též spolupracujeme s upstreamem abychom adaptovali čím dál více desktopových aplikací jako Epiphany (webový prohlížeč), Geary (e-mail), Lollypop (hudební přehrávač) a množství základních GNOME aplikací na malé obrazovky.

Co PureOS na Librem 5 znamená pro vývojáře

Co to pro vás znamená, pokud jste vývojář a chcete napsat aplikaci pro Librem 5? Znamená to, že můžete napsat aplikaci stejně, jako byste ji psali pro notebook Librem, stejné vývojářské nástroje. Aplikaci můžete vyvíjet buď na běžném linuxovém notebooku (např. Librem s PureOS) nebo přímo na samotném Librem 5. Není třeba udržovat separátní vývojovou větev pro Librem 5 – jen se ujistěte, že vaše standardní linuxová aplikace pro desktop stále funguje, když je zmenšena velikost okna na velikost obrazovky Librem 5, prvky jsou přijatelné pro dotykový display a jste hotovi.

Vyhýbáním se fragmentaci a adaptací ekosystému určeného pro desktop na telefon, šetříme cenný čas vývojáře. Aplikace vyvinuté pro Librem 5 nebudou fungovat pouze na Librem 5, ale budou fungovat i na Librem 5 v doku s velkou obrazovkou stejně jako na noteboocích Librem a Librem Mini.

DT2021 tip

V tento moment bych přirovnal linuxový ekosystém pro desktop k ekosystému vývoje webu než „responzivní web design“ zpřístupnil prohlížení na mobilních obrazovkách. Všechny aplikace fungují, jen některé prostě nevypadají dobře. Práce potřebná k adaptování webové stránky na responzivní je podobná, jako adaptace desktopové aplikace. V obou případech je to lepší design a jednodušší než spravovat mobilní port aplikace.

Předejděte fragmentaci a přiveďte své aplikace do PureOS a na Librem 5 – víceúčelový počítač ve vaší kapse.

Autor článku

Zapálený řečník, občasný přicmrndávač svobodného softwaru a hrdý člen linuxové komunity.