Mobilna aplikacija za Android tvrtke Sprout Social moćna je izvorna aplikacija koja održava naše klijente uključenima u njihovu prisutnost na društvenim medijima dok su u pokretu. Kao dio naše aplikacije za Android, održavamo više od 35 ovisnosti kojima upravlja zajednica otvorenog koda, a koje pružaju korisne blokove za izgradnju naše aplikacije.



Naše ovisnosti pružaju bezbroj funkcija kao što su okviri za upućivanje mrežnih poziva, asinkrono učitavanje slika, alati za testiranje i druga postojeća rješenja koja rješavaju uobičajene razvojne izazove za Android. Neke od ovih ovisnosti potrebne su za iskorištavanje temeljnih Android biblioteka, dok druge pomažu u rješavanju uobičajenih softverskih izazova bez potrebe da se cijeli kod piše ispočetka. Svaka ovisnost omogućuje nam da iskoristimo funkcionalnost bez ponovnog izmišljanja kotača.



U isto vrijeme, svaki dolazi s odgovornošću da ih održava ažurnima kako bismo bili sigurni da znamo za nove performanse, sigurnost i ažuriranja značajki. Ovo zvuči sjajno na papiru, ali kao što svaki mobilni programer zna, ručno praćenje ovih ažuriranja može biti pravi teret.

Jedna od naših vrijednosti Sproutov inženjerski tim je djelovati sa svrhom i fokusom. U tom smo duhu odlučili implementirati pametnije rješenje kako bismo mogli potrošiti više vremena na izgradnju značajki koje će dojmljivo koristiti našim korisnicima. Da bismo to postigli, upotrijebili smo dodatak prve strane za automatizirano upravljanje ovisnostima, Dependabot. Dependabot smanjuje našu količinu zastarjelih ovisnosti, pojednostavljuje trud potreban za njihovo ažuriranje i usmjerava naš cjelokupni proces razvoja.

Udaljavanje od ručnog održavanja ovisnosti

U izvornom Android razvoju, ovisnosti se deklariraju u build.gradle datoteci. Određivanjem ovisnosti koja nam je potrebna s njegovom verzijom, Gradle će je razriješiti iz središnjeg repozitorija i dohvatiti je kako bismo je mogli koristiti unutar aplikacije. Ako je Android aplikacija s više modula, svaki modul ima vlastitu datoteku build.gradle koja deklarira ovisnosti za taj modul.

Učinkovito održavanje ovih ovisnosti ključno je za nesmetan proces razvoja i pružanje korisnicima učinkovite aplikacije za upravljanje društvenim medijima koja može pratiti brzinu društvenih mreža. Ali održavanje ovisnosti ažurnim postaje zastrašujući zadatak koji zahtijeva procjenu rada, provjere kompatibilnosti verzija, potencijalne promjene koda i testiranje.

Prije Dependabota imali smo ručni proces upravljanja ovisnostima. Kako je složenost naše aplikacije rasla, tako je raslo i naše vrijeme provedeno na upravljanju ovisnostima. Timu je bio potreban značajan napor da identificira potrebu za ovisnošću, a zatim je obradi kroz naše agilne razvojne tijekove rada kako bi joj se odredio prioritet i ažurirala. Često bismo otkrili da su ovisnosti trebale ažurirati tijekom razvoja značajki, što je uvelo uvijek strašno puzanje opsega projekta. Trebao nam je bolji način.




značenje 544

Predstavljamo: Dependabot

Upravljanje ovisnošću nije nov koncept. S obzirom na to da je većina posla potrebnog za upravljanje ovisnostima ponavljajuća i monotona, naš je tim smatrao da bi ovo bio savršen kandidat za nešto što bi se moglo automatizirati (a da ne upadnemo u zamku da sami pišemo automatizaciju).


značenje broja 27

Utvrdili smo da Dependabot dobro odgovara našim potrebama—to je GitHubov alat prve strane koji automatski otkriva novije verzije ovisnosti i uzima u obzir sve probleme s kompatibilnošću koji mogu biti uzrokovani njihovom nadogradnjom. Prikazuje sve nadogradnje verzije čim postanu dostupne i stvara zahtjeve za povlačenjem (PR) koji sadrže informacije o nadogradnji, a koje smo uspjeli neprimjetno integrirati u naš uobičajeni tijek inženjerskog rada. Odjednom, nismo morali provoditi duge sate ručno provjeravajući je li sve aktualno.

Provedba

Dependabot inteligentno analizira naše build.gradle datoteke kako bi odredio naše stablo ovisnosti i stvara PR-ove za sve ovisnosti koje je potrebno ažurirati. Kako bi implementacija bila uspješna, trebao nam je način da pažljivo pregledamo svaki PR i pojednostavimo spajanje PR-ova.



  Grafika stabla odlučivanja koje Dependabot koristi za identificiranje ovisnosti koje je potrebno ažurirati.

Tijekom bilo kojeg izdanja naše aplikacije za Android dodjeljujemo upravitelja izdanja. Odlučili smo integrirati ovu odgovornost u proces upravitelja izdanja, s očekivanjem da se dovrši do pet nadogradnji ovisnosti tijekom svakog ciklusa izdanja. Upravitelj izdanja pregledava ažuriranja ovisnosti koje je otkrio Dependabot, osigurava da naši kontinuirani integracijski testovi na PR-u prolaze i da nema pogrešnih promjena biblioteke, zatim pregledava nadogradnje koje pruža ova verzija i donosi popis PR-ova timu na odobrenje. biti spojen.

Prednosti automatizacije

Automatizirano upravljanje ovisnostima moćan je alat koji značajno poboljšava naš razvojni proces i kvalitetu života naših inženjera. Korisnicima također pruža visoku vrijednost i najnovije značajke unutar naše izvorne mobilne aplikacije. S alatom kao što je Dependabot, pojednostavili smo dohvaćanje, integraciju i verziju ovisnosti, smanjujući količinu ručnog napora koji inženjeri moraju potrošiti i smanjujući mogućnost sukoba u našem stablu ovisnosti.

Kako složenost Android projekata nastavlja rasti, usvajanje automatiziranog upravljanja ovisnostima bio je korak visoke vrijednosti kako bismo osigurali razvojni proces svjetske klase za naš tim i Android aplikaciju svjetske klase za naše klijente.

Da biste saznali više o Sproutovom inženjerskom timu i kulturi, posjetite našu stranicu za karijere .

Podijelite Sa Svojim Prijateljima: