Как стать автором
Обновить
5

Gradle *

Система автоматизации сборки Java-проектов

Сначала показывать
Порог рейтинга
Уровень сложности

Как не свихнуться с кучей модулей в проекте

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1K

На данный момент я работаю с весьма ветвистыми проектами (один из них состоит из почти 120 градл модулей) и уже достаточно давно разные факторы подталкивали меня написать статью о том, как я организую свои проекты: стажеры и коллеги, чтение различных статей и книг. Понятное дело, что не существует серебряной пули, но я надеюсь, что эта статья поможет кому-то в понимании, как можно организовывать проекты. Добро пожаловать в комментарии для обмена опытом :)

Добро пожаловать :)
Всего голосов 6: ↑7.5 и ↓-1.5+9
Комментарии8

Новости

Современный способ организации зависимостей в Android. Version catalog и Gradle convention plugin

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров2.4K

Я — Денис, Middle Android-разработчик в «Лайв Тайпинге». В этой статье я расскажу о современном подходе организации зависимостей в Android. Вы узнаете как использовать version catalog и convention plugin в вашем проекте.

Читать далее
Всего голосов 14: ↑12 и ↓2+10
Комментарии5

AndroidFoodRecipesGuideTutorial

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.4K

В данной статье мы создадим простое приложение для отображения списков блюд на платформе Android с использованием языка программирования Kotlin.

Мы погрузимся в увлекательный мир мобильной разработки и научимся использовать различные технологии, включая RecyclerView для отображения списков, фрагменты для организации интерфейса, и многое другое. Наше приложение будет не только функциональным, но и простым в создании благодаря мощным инструментам, которые предоставляет нам Kotlin и Android SDK.

Давайте вместе разберемся, как создать этот простой, но полезный инструмент, который может быть использован в различных контекстах, будь то кулинарное приложение, список покупок или что-то еще. Погнали!

Погнали!
Всего голосов 6: ↑3 и ↓30
Комментарии3

Создание и использование BOM в Gradle

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров5.5K

В каждой компании (а если она крупная, то, скорее всего, в каждом подразделении) должна быть выстроена культура использования BOM (bill of materials) для управления версиями зависимостей. В этой статье я хочу поделиться своим видением того, как это может быть организовано, а также рассмотреть более сложные случаи создания и использования BOM в Gradle-проектах.

Читать далее
Всего голосов 13: ↑12 и ↓1+11
Комментарии9

Истории

Переход на Gradle 8 Android проекта

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров3.7K

Всем привет, меня зовут Карамышев Саша и я Android разработчик. Занимаюсь проектом связанным со страхованием.

На днях поступила моя любимая нетривиальная задача, перевести проект на 8ой градл, чтобы потренироваться на котиках на не большом проекте и столкнутся с основными проблемами.

И конечно документация мне не помогла.

Рассказываю, где документация меня запутывала и как я выпутался

Читать далее
Всего голосов 7: ↑5 и ↓2+3
Комментарии4

Как распараллелить тесты с базой данных

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров4.4K

Представьте проект, в котором уже написано несколько сотен тестов. Каждый тест настраивает базу под себя: добавляет данные, вызывает truncate по окончанию. Хочется запускать тесты параллельно, чтобы ускориться, но если два теста запустить одновременно, они почти наверняка друг другу помешают.

В данной статье поделюсь подходом, который позволил решить проблему без рефакторинга.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии20

Как мониторить здоровье вашей Gradle-сборки

Время на прочтение11 мин
Количество просмотров5.2K

Как себя чувствуют ваши Gradle-сборки? Рассказываем, как проверить их состояние и как «подлечить», чтобы CI работал чётко.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии2

Protobuf или Reflection в JNI

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров9.8K

Вы когда нибудь задумывались, на сколько grpc быстрый. Да в сети, ему равных нет. Если вы гоняете маленькие сообщения, которые надо быстро доставить, то лучше grpc попросту не найти ( найти, но по мнению автору protobuf остается движком сериализации, поддерживающим большее кол-во языков ). Но насколько он хорош? Сможет ли он к примеру сравнится просто с нативными вызовами?

Попробуем сравнить это, но так как в обычной жизни нам это может не пригодится, то добавим еще одно условие - сравниваем как лучший способ взаимодействия с jni библиотекой.

Читать далее
Всего голосов 12: ↑8 и ↓4+4
Комментарии14

Убираем дублирование конфигурации Gradle и при чём здесь косы и горы

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров2K

Хотите избавиться от дублирования конфигураций и зависимостей Gradle в многомодульном проекте? В данной статье я расскажу свой способ от этого избавиться и упростить себе конфигурацию новых модулей.

Статья больше ориентирована на специфику Android, но может пригодиться и другим пользователям Gradle.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии8

Gradle для тестировщика

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров6.4K

Всем привет. Меня зовут Ирек, и я в профессиональном IT с 2012 года. Прошел путь от специалиста службы поддержки до разработчика. На данный момент занимаюсь автоматизацией тестирования в компании РТК ИТ.

В статье хочу рассказать о полезных для автоматизатора возможностях Gradle.

Читать далее
Всего голосов 11: ↑10 и ↓1+9
Комментарии0

Как проверить наличие обновлений зависимостей в Gradle?

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.1K

Каждый раз, добавляя новую библиотеку в проект, встаёт вопрос о том, можно ли обойтись без неё. И не удивительно, ведь нам, разработчикам, и так приходится поддерживать зоопарк библиотек в наших проектах. Каждая новая добавляет рутинной работы по поиску, обновлению и миграции библиотек на новые версии. И если миграцию на новые версии за нас никто не выполнит, то поиск обновлений можно автоматизировать.

Именно об этом, Я и расскажу в этой статье.

Читать далее
Всего голосов 12: ↑10 и ↓2+8
Комментарии9

Автоматизация публикации Android приложений в Google Play и Huawei AppGallery — инструкция от А до Я

Уровень сложностиСложный
Время на прочтение19 мин
Количество просмотров15K

Всё еще публикуете релизы Android приложений вручную? Почитайте наше подробное руководство как полностью автоматизировать публикацию Android приложений в Google Play и Huawei AppStore через Gradle и CI/CD. Подробно от А до Я.

Почитать инструкцию
Всего голосов 8: ↑8 и ↓0+8
Комментарии12

Многомодульный BDSM. Бутылочные горлышки среди модулей

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров2.2K

Часто бывает, что после разбиения проекта на модули скорость его сборки сильно ниже ожидаемой. Причины могут быть разные, от кривых настроек Gradle до неподходящего железа. Сегодня я хочу разобрать одну из причин — бутылочные горлышки среди модулей, и как с ними бороться.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии1

Ближайшие события

JavaFx application with Spring boot

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров7.5K

В этой статье я продемонстрирую, как с помощью JavaFX и Spring Boot разработать Desktop-приложение с простыми и понятными инструкциями. Рассмотрим плюсы и минусы данного подхода, а так же посмотрим на варианты создания интерфейса для Java приложения. А так же обсудим как можно распространять Java приложение и не заботиться о том что у пользователя может не быть JVM или других необходимых инструментов для работы вашего крутого приложения.

Читать статью
Всего голосов 7: ↑4 и ↓3+1
Комментарии23

Какие параметры компьютера влияют на скорость сборки Gradle проекта

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров5.9K

Как вы думаете, какие характеристики сильнее влияют на скорость сборки вашего проекта: частота CPU или частота оперативной памяти? Количество ядер CPU или количество оперативной памяти? Влияет ли скорость постоянной памяти на скорость сборки? Однажды у меня в голове возникли такие вопросы, и я решил найти на них ответы. Лучший способ для этого — провести тесты. Поэтому представляю вам их результаты и попытаюсь их объяснить в меру своих знаний. Если хотите узнать, что больше всего влияет на скорость сборки, ну или, может быть, хотите обновить компьютер для сборки, но не знаете, во что лучше вложится, то добро пожаловать в статью.

Читать далее
Всего голосов 14: ↑13 и ↓1+12
Комментарии10

Собственный и полезный Spring Boot Banner

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров4.3K

Добавление собственного Spring Boot Banner в приложение, от ручного к автоматическому.

Баннер – это первое что мы видим при запуске приложения, который по умолчанию говорит нам, что приложение работает на Spring Boot определенной версии.

Но при желании, мы можем добавить свой собственный баннер, с полезной для нас информацией.

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии3

Не бойтесь использовать Gradle

Время на прочтение9 мин
Количество просмотров22K

Дорогие junior и все, кто занимается copy-past конфигов Gradle.

В этой статье я хочу простым языком рассказать вам о gradl'овой конфигурации сборки вашего проекта, чтобы вы не боялись использовать Gradle.

Читать далее
Всего голосов 25: ↑23 и ↓2+21
Комментарии21

Как сделать удобное взаимодействие с Kotlin из Swift: решение с помощью плагина MOKO KSwift

Время на прочтение8 мин
Количество просмотров1.6K

Привет! На связи Алексей Михайлов, технический директор компании IceRock Development. В прошлой статье я рассказывал о том, какие проблемы есть в работе с Kotlin со стороны Swift, и рассматривал способы их решения. В этой статье подробно остановлюсь на третьем решении, которое мы используем на практике. Это Gradle-плагины, а именно плагин, который мы разработали сами.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Статический анализ кода в современной Java-разработке

Время на прочтение9 мин
Количество просмотров16K

Сегодня я хочу затронуть тему, которая будет полезна как Java-разработчикам, так и начинающим тех- и тимлидам. Я расскажу о том, как добиться высокого качества кода на вашем Java проекте и перестать волноваться о стилях кодирования.

Если вы идёте по пути подготовки развесистых страничек на wiki по стилям кодирования и правилам оформления кода, то это дурно пахнет. Есть другой более надёжный способ, как защитить вашу кодовую базу и добиться полного соблюдения всех принятых стандартов и соглашений. И это, конечно же, статический анализ кода.

Далее я покажу своё видение того, какие инструменты и в какой конфигурации должны применяться на Java проектах, а особенно в микросервисах.

Читать далее
Всего голосов 16: ↑16 и ↓0+16
Комментарии20

Как мы ускоряли сборку Android-приложения из двух миллионов строк кода

Время на прочтение18 мин
Количество просмотров15K

Всем привет! Наверняка каждый Android-разработчик хоть раз сталкивался с проблемой скорости сборки своего проекта. После нехороших слов в адрес кодогенерации, покупок более мощного железа, многочисленных попыток распилить проект на небольшие параллельно собираемые модули и прохождений всех стадий торга мы продолжаем искать решение этой проблемы. К счастью, за годы развития и в Gradle, и Android Gradle Plugin (AGP) появилось много полезных штук для ускорения сборки, о которых я расскажу дальше.


Несмотря на шутку в адрес многомодульности, это действительно полезный подход, но для большого проекта с богатой историей модуляризация может быть очень сложным процессом. Поэтому пока давайте посмотрим, что можно сделать без больших болей на уровне Gradle и AGP.


Я расскажу на примере мобильного Яндекс Браузера. У нас было ~150 Gradle-модулей, ~2 млн LoC на Java/Kotlin, десяток Gradle-плагинов, тысячи строк кода в buildSrc и лёгкая дрожь от вопроса, сколько ещё может переварить билд-система. Не скажу, что это всё было категорически необходимо, но к написанным строчкам кода надо проявлять уважение.

Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии19