Мобилното приложение за Android на Sprout Social е мощно естествено приложение, което поддържа нашите клиенти свързани с тяхното присъствие в социалните медии в движение. Като част от нашето приложение за Android поддържаме над 35 зависимости, управлявани от общността с отворен код, които предоставят полезни градивни елементи за нашето приложение.




значението на 7

Нашите зависимости предоставят безброй функционалности като рамки за извършване на мрежови повиквания, асинхронно зареждане на изображения, инструменти за тестване и други съществуващи решения, които решават общи предизвикателства при разработката на Android. Някои от тези зависимости са необходими, за да се използват основните библиотеки на Android, докато други помагат за решаването на често срещани софтуерни предизвикателства, без да се налага да пишете целия код от нулата. Всяка зависимост ни позволява да използваме функционалност, без да се налага да преоткриваме колелото.



В същото време всеки идва с отговорност да ги поддържа актуални, за да сме сигурни, че знаем за нови актуализации на производителността, сигурността и функциите. Това звучи страхотно на хартия, но както всеки мобилен разработчик знае, ръчното проследяване на тези актуализации може да бъде истинска тежест.

Една от нашите ценности Инженерният екип на Sprout е да действате с цел и фокус. В този дух решихме да внедрим по-интелигентно решение, за да можем да отделим повече време за изграждане на въздействащи функции за нашите клиенти. За да постигнем това, използвахме плъгина от първа страна за автоматизирано управление на зависимостите, Dependabot. Dependabot намалява обема ни от остарели зависимости, опростява усилията, необходими за тяхното актуализиране, и рационализира цялостния ни процес на разработка.

Отдалечаване от ръчната поддръжка на зависимости

В родната разработка на Android зависимостите се декларират във файл build.gradle. Чрез посочване на зависимостта, от която се нуждаем, с неговата версия, Gradle ще я разреши от централно хранилище и ще я извлече, за да можем да я използваме в рамките на приложението. Ако приложението за Android е многомодулно, всеки модул има свой собствен файл build.gradle, който декларира зависимостите за този модул.

Ефективното поддържане на тези зависимости е от решаващо значение за плавния процес на разработка и предоставянето на клиентите на ефективно приложение за управление на социални медии, което може да бъде в крак със скоростта на социалните мрежи. Но поддържането на зависимостите актуални се превръща в трудна задача, която изисква оценка на работата, проверки за съвместимост на версиите, потенциални промени в кода и тестване.

Преди Dependabot имахме ръчен процес на управление на зависимостите. С нарастването на сложността на нашето приложение се увеличи и времето ни, прекарано в управление на зависимостите. На екипа бяха нужни значителни усилия, за да идентифицира необходимостта от зависимост, след което да я обработи чрез нашите гъвкави работни процеси за разработка, за да я приоритизира и актуализира. Често откривахме, че зависимостите се нуждаят от актуализации по време на разработката на функции, което въведе винаги ужасяващото пълзене на обхвата на проекта. Имахме нужда от по-добър начин.



Представяме ви: Dependabot

Управлението на зависимостите не е нова концепция. Като се има предвид, че по-голямата част от работата, необходима за управление на зависимости, е повтаряща се и монотонна, нашият екип реши, че това ще бъде идеалният кандидат за нещо, което може да бъде автоматизирано (без да попадаме в капана да се налага сами да пишем автоматизацията).

Установихме, че Dependabot отговаря добре на нуждите ни – това е инструмент на първа страна на GitHub, който автоматично открива по-нови версии на зависимости и отчита всички проблеми със съвместимостта, които могат да бъдат причинени от надграждането им. Той показва всички надстройки на версията, когато станат налични, и създава заявки за изтегляне (PR), съдържащи информация за надстройката, която успяхме безпроблемно да интегрираме в нормалния ни инженерен работен процес. Изведнъж не трябваше да прекарваме дълги часове ръчно, за да се уверим, че всичко е актуално.

Внедряване

Dependabot интелигентно анализира нашите build.gradle файлове, за да определи нашето дърво на зависимостите и създава PR за всички зависимости, които трябва да бъдат актуализирани. За да бъде внедряването успешно, се нуждаехме от начин да прегледаме внимателно всеки PR и да рационализираме сливането на PR.



  Графика на дървото на решенията, което Dependabot използва, за да идентифицира всички зависимости, които трябва да бъдат актуализирани.

По време на всяка версия на нашето приложение за Android ние назначаваме мениджър на версиите. Решихме да интегрираме тази отговорност в процеса на мениджъра на версиите, като очаквахме до пет надстройки на зависимости да бъдат завършени по време на всеки цикъл на версия. Мениджърът на версиите преглежда актуализациите на зависимостите, разкрити от Dependabot, гарантира, че нашите непрекъснати тестове за интеграция на PR преминават и няма нарушаващи библиотечните промени, след това преглежда надстройките, осигурени от тази версия, и носи списъка с PR на екипа за одобрение да бъдат обединени.

Ползите от автоматизацията

Автоматизираното управление на зависимостите е мощен инструмент, който значително подобрява нашия процес на разработка и качеството на живот на нашите инженери. Той също така предоставя на потребителите висока стойност и най-новите функции в рамките на нашето собствено мобилно приложение. С инструмент като Dependabot рационализирахме извличането, интегрирането и версиите на зависимостите, намалявайки количеството ръчно усилие, което инженерите трябва да изразходват, и намалявайки вероятността от конфликти в нашето дърво на зависимостите.


какво означава 6666

Тъй като сложността на проектите за Android продължава да расте, приемането на автоматизирано управление на зависимости беше стъпка с висока стойност, за да осигурим процес на разработка от световна класа за нашия екип и приложение за Android от световна класа за нашите клиенти.

За да научите повече за инженерния екип и култура на Sprout, посетете нашия сайт за кариери .

Споделете С Приятелите Си: