Google je dodao API koji omogućuje pokretačima trećih strana kao što je Nova Launcher da pokažu fluidnije animacije prijelaza. Sada ga imaju samo Pixel telefoni.
U prošlosti su aplikacije pokretača trećih strana često pružale superiorno iskustvo u odnosu na standardni pokretač koji se nalazi na većini Android telefona. Međutim, s preuređenjem nedavnog zaslona aplikacija i uvođenjem pokreta u Android 9 Pie, pokretači trećih strana stavljeni su u nepovoljan položaj jer su ta nova iskustva integrirana u zalihu aplikacija za pokretanje. S vremenom je Google pokušao učiniti iskustvo pokretača treće strane ne tako strašnim pri korištenju gesta, a nedavno su u tome zapravo počeli uspijevati.
Ako ste koristili nedavno beta izdanje programa Nova Launcher na Google Pixel telefonu u posljednjih nekoliko mjeseci, možda ste primijetili tečne animacije pri korištenju navigacije gestama. Nažalost, nećete vidjeti te iste animacije kada koristite Nova Launcher na bilo kojem drugom uređaju, barem za sada. Da bismo razumjeli zašto prvo moramo ukratko objasniti što razlikuje pokretače trećih strana kao što je Nova Launcher od zaliha pokretača kao što je Googleov Pixel Launcher.
Google je prvi predstavio navigaciju gestama u Androidu 9 Pie. Kako bi geste bile što fluidnije moguće, Google je trebao učiniti da prijelazi aplikacija izgledaju besprijekorno. Također su željeli omogućiti korisnicima pristup cijelom popisu aplikacija sa zaslona nedavnih aplikacija. Kako bi učinio oboje, Google je odlučio premjestiti kod koji upravlja zaslonom nedavnih aplikacija s Androida SystemUI do Launcher3, Androidove aplikacije za pokretanje otvorenog koda od koje se račva većina OEM pokretača. Dakle, QuickStep komponenta je rođena, a zbog svoje povlaštene prirode, Android dopušta samo postavljanje unaprijed instalirane aplikacije pokretača kao davatelja nedavnih aplikacija. Ovo može biti nadjačan root pristupom ako pokretač treće strane to podržava, ali za većinu korisnika to znači da će se aplikacija pokretača treće strane uvijek oslanjati na standardni pokretač za rukovanje pokretima i zaslonom nedavnih aplikacija. Rezultat, kao što je većina vas vjerojatno iskusila, može biti pomalo trzav, s prijelazima koji ne izgledaju tečno i besprijekorno. Osim ako ne koristite Google Pixel telefon.
Na većini Google Pixel telefona postoji API koji pokretači trećih strana mogu koristiti kako bi prijelaz s aplikacije natrag na početni zaslon izgledao mnogo prirodnije. Neke aplikacije za pokretanje trećih strana poput Niagara lanser i gore spomenuti Nova Launcher koriste prednosti ovog API-ja, iako ga potonji uključuje samo u svoj verzije v7 u razvoju. Kada se koristi ovaj API, aplikacija za pokretanje treće strane prima namjeru i povratni poziv od QuickStepa svaki put kada korisnik izvede gestu prijelaza za povratak kući. Pokretač treće strane tada može nagovijestiti sustavu pokreta kako animirati prozor dok se minimizira na ikonu aplikacije.
Evo primjera kako to izgleda u Niagara Launcheru, zahvaljujući razvojnom programeru pokretača 8bitpit:
A evo i usporedbe koja pokazuje kako animacija izgleda na ASUS ROG telefon 5 i Google Pixel 4, oba pokreću Nova Launcher v7.0.25 (najnovije beta izdanje u trenutku objavljivanja) i Android 11:
\r\n https://www.youtube.com/watch? v=equ-8yDw_Do\r\n
Sada se možda pitate: Je li ovaj API ekskluzivan za Google Pixel telefone? Odgovor je ne, nije. API je dio Launcher3/QuickStep i može se naći u AOSP-u, što znači da je otvoren za bilo koju OEM aplikaciju za pokretanje. Dok je API bio je posvećen Launcheru3 interno 21. srpnja 2020., čini se da jest spojen u AOSP master granu s izdanjem Android R QPR1 u prosincu.
Kevin Barry, programer Nova Launchera i jedan od prvih koji je uočio ovaj API, rekao nam je da sumnja da dio razlog zašto proizvođači originalne opreme ne koriste ovaj API u svojim račvama Launcher3 je taj što je došao malo kasno u izdanju Androida 11 ciklus. Potrebno je dosta truda da se spoje velike AOSP promjene, a Android R QPR1 ažuriranje definitivno je sadržavalo mnogo toga. Prošlih godina bismo ta ispuštanja koda nazvali "izdanjem za održavanje", ali Google to zapravo više ne radi nakon odbijanja OEM-a (ili sam barem tako čuo). Zbog toga LineageOS, popularni prilagođeni ROM za Android, svoje najnovije izdanje naziva "LineageOS 18.1" umjesto "LineageOS 18" kako bi se označilo da se ROM temelji na najnovijoj bazi koda za Android 11, a ne na početnom izdanju Androida 11.
Također je vrijedno napomenuti da je ovaj API dostupan samo na Google Pixel telefonima nakon Prosinac Pad Pixel Feature, što se poklapa s javnim Android R QPR1 izdanjem. I unatoč tome što je Pixel 2 dobio svoje konačno ažuriranje u prosincu, to ažuriranje nije uključivalo Android R QPR1 kodnu bazu, zbog čega vlasnici Pixela 2 koji koriste Nova Launcher v7 nemaju isto iskustvo kao drugi Pixeli. (Vlasnici Pixela 2 mogu sa strane učitati noviju verziju Pixel Launchera koja ima API s novijeg Pixel uređaja, ali pokazuju korisnička izvješća animacija je i dalje bugova iako radi s vremena na vrijeme. Kao podsjetnik, Pixel Launcher je izgrađen na Launcheru3 baš kao i većina standardnih pokretača, ali također uključuje neke značajke koje su ekskluzivne za Pixel.)
Dakle, što će biti potrebno da se ovaj API doda na druge Android uređaje? Nažalost, nema jednostavnog odgovora na to jer ne znamo točno kako svaki OEM razvija svoju aplikaciju za pokretanje. S obzirom na to kako Google strogo kontrolira navigaciju gestama preko cijelog zaslona, sumnjamo da većina OEM-ova ne modificira uvelike kod koji se odnosi na geste i/ili QuickStep. Osim ako se OEM ne potrudi poništiti predaju, razbiti kod ili odbiti ažuriranje Launcher3, onda bismo trebali vidjeti da se ovaj API dodaje OEM pokretačima kad god se ponovno baziraju na vrhu Nadolazeći Android 12 osloboditi. Zapravo, jedan OEM s kojim smo razgovarali, ASUS, rekao nam je da planiraju unijeti ovaj API u svoje ažuriranje za Android 12. Ne znamo je li Google ovu promjenu obavijestio OEM-ove, ali se nadamo da će više OEM-ova primijetiti ovu promjenu i odlučiti uključiti API u svoje račve Launcher3 kako bi poboljšali iskustvo korištenja trećih strana lanseri.
Međutim, posao tu neće završiti. Čak i nakon uključivanja ovog API-ja, potrebno je obaviti još posla kako bi se postigla ravnopravnost između pokretača trećih strana i pokretača OEM-a. Na primjer, neki OEM uređaji treperi kada korisnik dodirne zaslon prije nego što se pojavi animacija na početnom zaslonu. Ponekad se pojavljuje aplikacija za pokretanje sustava umjesto odabrane aplikacije za pokretanje treće strane (to mi se dogodilo nekoliko puta). Poboljšana animacija prijelaza je zgodna, ali nitko ne želi imati problema s pogreškama u aplikaciji za pokretanje ili na zaslonu s nedavnim aplikacijama, tako da slike koda pokreta trebaju malo čišćenja i/ili standardizacije.
Hvala Kevinu Barryju i Peteru Huberu na pomoći u ovom članku!