A környezetbarát gyakorlatok beépítése a mobilalkalmazások fejlesztésébe számos hosszú távú előnnyel jár a vállalkozások, a társadalom és a környezet számára. A fenntartható alkalmazásfejlesztés kevesebb CO2-kibocsátást eredményez, valamint hatékonyabb és versenyképesebb informatikai megoldásokat kínál az ügyfeleknek, ami végül az általános felhasználói élmény javítását eredményezi. Ebben a cikkben Jane Bondar, a NIX mobilfejlesztési szakértője a leggyakoribb fenntartható alkalmazásfejlesztési gyakorlatok közül ismertet néhányat részletesen.
A fenntartható technológia megértése
A fenntartható technológia olyan szoftvert jelent, amely amellett, hogy a felhasználói igényeknek és értékeknek megfelel, a szén-dioxid-kibocsátást is minimálisra csökkenti. A fenntartható alkalmazásokba való befektetés nemcsak a vállalat társadalmi felelősségvállalási céljaihoz igazodhat, hanem a márkahűséget is erősítheti a környezettudatos fogyasztók körében. A vállalkozások a fenntartható alkalmazásfejlesztési gyakorlatokkal csökkenthetik karbonlábnyomukat, és hozzájárulhatnak egy zöldebb jövőhöz.
A fenntartható alkalmazások egy viszonylag új, sok éven át figyelmen kívül hagyott trendet jelentenek. A hagyományos felfogással ellentétben nemcsak a fizikai eszközök, de a szoftverek is jelentősen befolyásolhatják az energiafogyasztást. Azonban vákuumban semmi sem történik: a szoftverek iránti igény főleg a hardverek fejlesztését ösztönzi. Ráadásul az optimalizálás nélküli kódok haszontalan eszközök működéséhez, és ezáltal felesleges szén-dioxid-kibocsátáshoz vezetnek. Az energiatakarékossági követelmények figyelembevétele nélkül fejlesztett szoftverek valódi problémát jelenthetnek a környezet számára.
A fenntartható alkalmazások iránti kereslet a fogyasztók növekvő környezettudatosságának köszönhetően egyre emelkedik. A Green Software Foundation három kulcsfontosságú stratégiát javasol a szoftverek karbonlábnyomának csökkentésére:
- Energiahatékonyság: A villamosenergia-fogyasztás minimalizálása a kódolás optimalizálásával és hatékony hardverhasználattal.
- Hatékony berendezések: Energiahatékony szerverek és alacsony fogyasztású berendezések használata.
- Tiszta energiahasznosítás: A szoftverek működésének priorizálása olyan időszakokban, amikor a villamosenergia-termelés korlátozott üvegházhatású gázkibocsátással vagy minimális környezetszennyezéssel történik.
Ezek az alapelvek nem függenek az egyes technológiai stackektől, és akár a különböző stackek között is alkalmazhatók. A Green Software Foundation weboldalán tájékozódhatsz ezekről az alapelvekről, és arról, hogyan teszik lehetővé a környezetkímélőbb szoftverek fejlesztését.
Fenntartható megközelítések a mobilalkalmazás-fejlesztésben
A fenntartható alkalmazások fejlesztése esetén el kell hagyni a felesleges műveleteket, vizuális effekteket, API-hívásokat, stb. Az okostelefonok operációs rendszere az optimalizálás egy részét ugyan elvégzi, a felelősség nagy része a fejlesztőkre hárul. Sajnos nincs univerzális módszer arra, hogyan tehetünk egy megoldást energiahatékonnyá. A fenntartható alkalmazások fejlesztése személyre szabott megközelítést igényel, figyelembe véve az egyedi követelményeket, célokat és igényeket a használhatóság, rugalmasság és karbantarthatóság fenntartása érdekében.
A folyamatos optimalizálás és innováció segítségével a fejlesztők olyan fenntartható alkalmazásokat hozhatnak létre, amelyekben a teljesítmény és a környezeti felelősségvállalás képezi a prioritást. Ebben a cikkben a fenntartható alkalmazások fejlesztésének néhány leggyakoribb gyakorlatát vizsgáljuk meg.
A helymeghatározás optimalizálása
Fenntartható alkalmazások fejlesztése során minden mobilalkalmazás-fejlesztő tudja, hogy a helymeghatározás jelenti a legnagyobb terhelést az mobiltelefon-akkumulátorok számára. Bekapcsolt állapotban az okostelefon folyamatosan keresi és fogadja a műholdak, Wi-Fi hozzáférési pontok és mobiltornyok jeleit, majd ezt követően adatként dolgozza fel őket. Ez nemcsak a készülék akkumulátorát terheli le, de a felhőben tárolt és feldolgozott nagy mennyiségű adatok óriási forgalmát is jelenti. Számos olyan üzleti helyzet fordul elő, amikor a felhasználó pozíciójának nyomon követésére van szükség, azonban a frissítési sebesség és a helymeghatározás pontossága tekintetében mindenki egyedi igényekkel rendelkezik. Ezek kulcsfontosságú lehetőséget nyitnak az ilyen erőforrás-igényes műveletek optimalizálásában.
Gyakran előfordul, hogy a terméktulajdonosok a fejlesztőcsapattól állandó felhasználói helymeghatározást kérnek. Ilyen helyzetben a következő kérdést kellene feltenni: „Mért is van szükség erre a funkcióra?” Erre folyton azt a választ adják, hogy tudniuk kell arról, hogy a felhasználó egy adott üzlet közelében tartózkodik-e, vagy éppen mikor hagyja el az irodát. A folyamatos nyomon követés azonban többnyire szükségtelen. A mobil platformok speciális, hardveres szinten optimalizált geofencing funkcióval rendelkeznek, amely csak akkor indítja el az alkalmazást, amikor a felhasználó egy adott helyre belép, vagy elhagyja azt.
A fenntartható alkalmazások helymeghatározása és erőforrás-felhasználásának testreszabása a geofencingen túlmutat. A fejlesztőknek minden egyes üzleti esethez különböző lehetőségeket kell megvizsgálniuk, beleértve a helymeghatározás pontosságának csökkentését, a kizárólag jelentős helyváltozások lekövetésének beállítását, vagy a helymeghatározás bizonyos feltételek mellett történő követését (pl. csak akkor, ha a telefon éppen mozgásban van). Ez az elgondolás az energiahatékonyság és az üzleti célok megvalósulása közötti egyensúly megteremtésére nyújt lehetőséget.
A hálózat optimalizálása
A hálózati műveletek az alkalmazásfejlesztés másik energiaigényes területét jelentik. Ezt az okozza, hogy a hálózati hardvernek a műveletek befejezése után is aktívnak kell maradnia még egy ideig, amely végül az akkumulátor lemerüléséhez vezet.
Ennek megoldása érdekében a következő energiafogyasztási aspektusokat kell figyelembe venni a fenntartható alkalmazások kifejlesztéséhez:
- A mobilhálózatok több energiát fogyasztanak, mint a Wi-Fi.
- A gyenge jelek az adatok újraküldését eredményezhetik.
- A korlátozott sávszélesség a jelvevő hosszabb idejű aktivitását okozza.
- A felhasználó tartózkodási helye és a szolgáltató befolyásolhatja az energiafogyasztást.
A fenntartható alkalmazások hatékony hálózatkezelése meghosszabbíthatja az akkumulátor élettartamát.
A hálózatkezelés optimalizálásához több stratégia is alkalmazható. Az első – a minimalizálás – az üzleti követelmények és a rendszertervezés értékelésével segíti a felesleges forgalom elkerülését. Ezt oldhatják meg pl. a gyorsítótárak, az átvitt adatok tömörítése, valamint a médiafájlok minőségének és méretének a csökkentése. A streaming minőségét dinamikusan módosító videokonferencia-szoftver igencsak jó példa erre a törekvésre.
A tranzakciók csoportosítása jelenti a másik megfontolandó stratégiát. A tartalom letöltése fokozatosan tartja aktívan a rádiós modulokat, ami többletenergia-fogyasztáshoz vezet. Ezért, amikor csak lehetséges, az alkalmazásnak a hálózati műveleteket csoportosítania kell. Ha például egy alkalmazás hirdetéseket jelenít meg, több hirdetés egyidejű letöltése csökkentheti az energiafelhasználást.
A műveletek halasztása egy másik optimalizációs stratégiát jelent a fenntartható alkalmazások terén. Itt az iOS egyedülálló funkciójaként a halasztható hálózati műveletek ütemezése jöhet jól. Az ilyen műveleteket a folyamaton kívül hajtják végre, amely az alkalmazás reakciókészségét állandó futtatás nélkül tudja fokozni. Emellett a rendszer az ilyen műveletek indítását is képes automatikusan optimalizálni (például csak később, a jó kapcsolatot kivárva indítja el). Ez a biztonsági mentési vagy szinkronizálási funkciók esetében is hasznos lehet.
Végül pedig érdemes a hálózati tevékenységet korlátozni a mobilinternet használata alatt, különösen a nagy forgalmat igénylő műveletek esetében. Tartózkodni kell például a teljes könyvtárnyi nagyméretű képek letöltésétől mobilinterneten keresztül, kivéve, ha azt a felhasználó kifejezetten kéri. Ez energiát takarít meg, sőt, a felhasználó sem lesz ideges az elpazarolt adatok miatt.
Az időzítők helytelen használata
A szerverek energiahatékonyságának fenntartásához minimálisra kell csökkenteni az állásidőt, bár a személyes eszközök készenléti ideje elkerülhetetlen. A fejlesztőknek gondoskodniuk kell arról, hogy a fenntartható alkalmazások esetén ez a készenléti állapot ne szakadjon meg feleslegesen, mivel a rendszer készenléti üzemmódból történő felébresztése további energiát fogyaszt.
Ha az ismétlődő műveletek (pl. szinkronizálás, tartalom letöltésének vagy helyek frissítésének) ütemezésére használt időzítők a rendszert felébresztik, az gyakran egyenetlenné teszi az energiafogyasztást. Az alkalmazások amúgy sok esetben teljesen feleslegesen használnak időzítőket. Az időzítők szükségességét éppen ezért minden egyes termék esetében újra kellene értékelni.
Egy másik módszer alkalmazását is meg kell fontolni: a kiváltó eseményeket kellene priorizálni ahelyett, hogy a fix időintervallumokhoz ragaszkodnánk. Ez a szemléletváltás növelheti az energiahatékonyságot.
Dizájn
Ha alkalmazásunk túlnyomórészt szabványos dizájnelemekre támaszkodna, kevésbé kellene aggódnunk a szükségtelen tartalomfrissítések miatt. A rendszer-API-kat amúgy is kifejezetten az energiahatékonyság optimalizálására tervezték! A valóságban azonban a legtöbb projekt vonzó, egyedi dizájnokkal akar kitűnni a többi közül. Az energiahatékonyság biztosítása érdekében
1. Csak akkor aktiváljunk egy tartalmat, ha az ténylegesen látható lesz (nem takarja el más nézet és nem kerül a képernyőn kívülre).
2. Tartózkodjunk az átlátszóság-effekt (különösen a „blur” effekt) használatától, amikor csak lehetséges, vagy legalábbis csak akkor használjuk, ha az „átlátszóra állított” nézet háttere statikus marad.
3. Sötét üzemmód hozzáadása. Bár az alkalmazások sötét üzemmódban történő használata manapság divatos, esztétikus, a sötét üzemmód ennél sokkal fontosabb célt szolgál: kíméli az okostelefon erőforrásait a képernyő fényerejének csökkentésével.
Natív vagy keresztplatformos legyen?
A döntést a natív és a keresztplatformos fejlesztés között a projekt céljai, követelményei és korlátai határozzák meg, a költségeket, az időkorlátokat és a technológiai kompatibilitást is beleértve.
A natív megoldások általában jobb teljesítményt, gyorsabb reakciót és jobb energiahatékonyságot biztosítanak, mivel kifejezetten az adott platformra optimalizálták őket. Mindez zökkenőmentesebb felhasználói élményt és az eszköz akkumulátorának hosszabb élettartamát eredményezi, ami a fenntarthatósági célokkal is összhangban van. Ezzel szemben a keresztplatformos alkalmazások több erőforrást igényelnek.
Ez a cikk ugyan bepillantást nyújt a fenntartható alkalmazásfejlesztési gyakorlatokba, csupán a kezdete egy szélesebb körben folytatott kommunikációnak. A fenntartható technológiát felkaroló vállalkozások egy szebb jövőhöz járulhatnak hozzá, miközben vonzóbbá és hatékonyabbá teszik a termékeiket. Használjuk ki a fenntartható alkalmazásokban rejlő erőt egy zöldebb, fenntarthatóbb világ megteremtése érdekében.