Спроут Социал мобилна апликација за Андроид је моћна изворна апликација која држи наше клијенте укључене у њихово присуство на друштвеним медијима у покрету. Као део наше Андроид апликације, одржавамо преко 35 зависности којима управља заједница отвореног кода које пружају корисне градивне блокове за нашу апликацију.



Наше зависности пружају безброј функционалности као што су оквири за упућивање мрежних позива, асинхронизовано учитавање слике, алати за тестирање и друга постојећа решења која решавају уобичајене изазове развоја Андроид-а. Неке од ових зависности су потребне да би се искористиле основне Андроид библиотеке, док друге помажу у решавању уобичајених софтверских изазова без потребе да се сав код пише од нуле. Свака зависност нам омогућава да искористимо функционалност без потребе да поново измишљамо точак.



У исто време, свако има одговорност да их одржава актуелним како бисмо били сигурни да знамо о новим перформансама, безбедности и ажурирањима функција. Ово звучи сјајно на папиру, али као што сваки мобилни програмер зна, ручно праћење ових ажурирања може бити прави терет.

Једна од наших вредности Спроутов инжењерски тим је деловати са сврхом и фокусом. У том духу, одлучили смо да имплементирамо паметније решење како бисмо могли да проведемо више времена у изградњи утицајних функција за наше клијенте. Да бисмо ово постигли, користили смо аутоматски додатак за управљање зависношћу, Депендабот. Депендабот смањује наш обим застарелих зависности, поједностављује напоре потребне за њихово ажурирање и поједностављује наш укупни процес развоја.

Удаљавање од ручног одржавања зависности

У изворном Андроид развоју, зависности се декларишу у датотеци буилд.градле. Одређивањем зависности која нам је потребна са његовом верзијом, Градле ће је решити из централног спремишта и преузети је да бисмо могли да је користимо у оквиру апликације. Ако је Андроид апликација са више модула, сваки модул има сопствену датотеку буилд.градле која декларише зависности за тај модул.

Ефикасно одржавање ових зависности је кључно за несметан развојни процес и пружање корисницима ефикасне апликације за управљање друштвеним медијима која може да прати брзину друштвених мрежа. Али одржавање зависности постаје застрашујући задатак који захтева процену рада, проверу компатибилности верзија, потенцијалне промене кода и тестирање.

Пре Депендабота, имали смо ручни процес управљања зависношћу. Како се сложеност наше апликације повећавала, тако је расло и наше време које смо потрошили на управљање зависношћу. Тиму је био потребан значајан напор да идентификује потребу за зависношћу, а затим је обради кроз наше агилне развојне токове како би она била приоритетна и ажурирана. Често бисмо открили да су зависностима потребна ажурирања током развоја функција, што је увело увек страховито смањење обима пројекта. Требао нам је бољи начин.



Представљамо: Депендабот

Управљање зависношћу није нов концепт. С обзиром на то да је већина посла потребног за управљање зависностима понављајућа и монотона, наш тим је сматрао да би ово био савршен кандидат за нешто што би се могло аутоматизовати (а да не паднемо у замку да сами пишемо аутоматизацију).

Открили смо да Депендабот добро одговара нашим потребама—то је ГитХуб алат прве стране који аутоматски открива новије верзије зависности и узима у обзир све проблеме са компатибилношћу који могу бити узроковани њиховом надоградњом. Појављује све надоградње верзије чим постану доступне и креира захтеве за повлачење (ПР-ове) који садрже информације о надоградњи, које смо могли неприметно да интегришемо у наш нормалан ток инжењеринга. Одједном, нисмо морали да проводимо дуге сате ручно да бисмо се уверили да је све актуелно.

Имплементација

Депендабот интелигентно анализира наше буилд.градле датотеке да би одредио наше стабло зависности и креира ПР за све зависности које треба да се ажурирају. Да би имплементација била успешна, био нам је потребан начин да пажљиво прегледамо сваки ПР и поједноставимо спајање ПР-а.



  График стабла одлучивања Депендабот користи да идентификује све зависности које треба ажурирати.

Током било којег издања наше Андроид апликације, додељујемо менаџера издања. Одлучили смо да интегришемо ову одговорност у процес менаџера издања, са очекивањем да до пет надоградњи зависности буде завршено током сваког циклуса издања. Менаџер издања прегледа ажурирања зависности која је открио Депендабот, осигурава да наши континуирани тестови интеграције на ПР-у прођу и да нема неограничених измена у библиотеци, затим прегледа надоградње које обезбеђује ова верзија бумп-а и доноси листу ПР-ова тиму на одобрење да се споје.

Предности аутоматизације

Аутоматско управљање зависношћу је моћан алат који значајно побољшава наш развојни процес и квалитет живота наших инжењера. Такође корисницима пружа високу вредност и најновије функције унутар наше матичне мобилне апликације. Са алатом као што је Депендабот, поједноставили смо проналажење, интеграцију и верзионисање зависности, смањујући количину ручног напора које инжењери морају да потроше и смањујући могућност сукоба у нашем стаблу зависности.

Како сложеност Андроид пројеката наставља да расте, усвајање аутоматизованог управљања зависношћу је био корак високе вредности како би се обезбедио процес развоја светске класе за наш тим и Андроид апликација светске класе за наше клијенте.

Да бисте сазнали више о Спроут-овом инжењерском тиму и култури, посетите наш сајт за каријеру .

Подели Са Пријатељима: