Как RecyclerView создает магию анимаций: архитектура ItemAnimator под капотом
RecyclerView умеет превращать обычные операции с данными в плавные анимации. Когда вы добавляете элемент в список, остальные элементы плавно расступаются. При удалении — схлопываются. Эта магия происходит благодаря ItemAnimator — механизму, который я сегодня разберу до последнего винтика.
В этой статье мы погрузимся в архитектуру системы анимаций RecyclerView, проследим путь от вызова
Читать: https://habr.com/ru/articles/939594/?utm_campaign=939594
@a_cup_of_java | Другие наши каналы
RecyclerView умеет превращать обычные операции с данными в плавные анимации. Когда вы добавляете элемент в список, остальные элементы плавно расступаются. При удалении — схлопываются. Эта магия происходит благодаря ItemAnimator — механизму, который я сегодня разберу до последнего винтика.
В этой статье мы погрузимся в архитектуру системы анимаций RecyclerView, проследим путь от вызова
notifyItemInserted()
до финальной анимации на экране.Читать: https://habr.com/ru/articles/939594/?utm_campaign=939594
@a_cup_of_java | Другие наши каналы
JDK 25 выйдет в сентябре 2025 года с 18 новыми функциями, включая улучшения в языке Java, безопасности и производительности JVM. JDK 26 готовит поддержку HTTP/3 и удаление устаревшего Applet API. Главное для разработчиков — стабильность и оптимизация с новыми возможностями.
Подробности: https://www.infoq.com/news/2025/08/java-25-so-far/
#en
@a_cup_of_java | Другие наши каналы
Подробности: https://www.infoq.com/news/2025/08/java-25-so-far/
#en
@a_cup_of_java | Другие наши каналы
Как работать с OpenSearch: обзор полнотекстового поиска и пример использования
В этой статье мы подробно рассмотрим все ключевые параметры OpenSearch, включая дашборды, документы, индексы, узлы, кластеры, шардирование, инвертированные индексы и сам процесс индексации. Понимание этих аспектов позволит максимально эффективно использовать OpenSearch для решения задач поиска и анализа данных в любых проектах.
Привет, Хабр! Меня зовут Евгений Ляшенко, я старший разработчик IBS. В эпоху, когда объемы данных растут с каждым днем, эффективный поиск информации становится критически важным для бизнеса и разработчиков. OpenSearch как мощный инструмент для полнотекстового поиска и аналитики предлагает гибкие решения для работы с большими массивами данных. Чтобы наглядно продемонстрировать его работу, я создал pet-проект с поиском по библиотеке книг и фильмов. Но сначала немного теории.
Читать: https://habr.com/ru/companies/ibs/articles/939780/?utm_campaign=939780
@a_cup_of_java | Другие наши каналы
В этой статье мы подробно рассмотрим все ключевые параметры OpenSearch, включая дашборды, документы, индексы, узлы, кластеры, шардирование, инвертированные индексы и сам процесс индексации. Понимание этих аспектов позволит максимально эффективно использовать OpenSearch для решения задач поиска и анализа данных в любых проектах.
Привет, Хабр! Меня зовут Евгений Ляшенко, я старший разработчик IBS. В эпоху, когда объемы данных растут с каждым днем, эффективный поиск информации становится критически важным для бизнеса и разработчиков. OpenSearch как мощный инструмент для полнотекстового поиска и аналитики предлагает гибкие решения для работы с большими массивами данных. Чтобы наглядно продемонстрировать его работу, я создал pet-проект с поиском по библиотеке книг и фильмов. Но сначала немного теории.
Читать: https://habr.com/ru/companies/ibs/articles/939780/?utm_campaign=939780
@a_cup_of_java | Другие наши каналы
Bitnami Secure Images: Прощание с Бесплатным Продом
Команда Spring АйО перевела статью про то, что не так давно, компания Broadcom, которая на данный момент в силу различных M&A сделок косвенно управляет компанией Bitnami, внесла существуенные изменения в политику поддержки docker образов.
Теперь не бесплатно!
Читать: https://habr.com/ru/companies/spring_aio/articles/939818/?utm_campaign=939818
@a_cup_of_java | Другие наши каналы
Команда Spring АйО перевела статью про то, что не так давно, компания Broadcom, которая на данный момент в силу различных M&A сделок косвенно управляет компанией Bitnami, внесла существуенные изменения в политику поддержки docker образов.
Теперь не бесплатно!
Читать: https://habr.com/ru/companies/spring_aio/articles/939818/?utm_campaign=939818
@a_cup_of_java | Другие наши каналы
Работа с Binance REST API с помощью Java
В предыдущей статье мы рассмотрели основы парсинга данных в Java.
В этой статье мы пошагово разберём, как с помощью Java 11+ быстро отправлять HTTP GET‑запросы, получать JSON от Binance REST API и извлекать из него символ пары (symbol) и цену (price) — без сторонних зависимостей.
Также в статье мы рассмотрим обход блокировки запросов со стороны сервера.
Читать: https://habr.com/ru/companies/amvera/articles/939492/?utm_campaign=939492
@a_cup_of_java | Другие наши каналы
В предыдущей статье мы рассмотрели основы парсинга данных в Java.
В этой статье мы пошагово разберём, как с помощью Java 11+ быстро отправлять HTTP GET‑запросы, получать JSON от Binance REST API и извлекать из него символ пары (symbol) и цену (price) — без сторонних зависимостей.
Также в статье мы рассмотрим обход блокировки запросов со стороны сервера.
Читать: https://habr.com/ru/companies/amvera/articles/939492/?utm_campaign=939492
@a_cup_of_java | Другие наши каналы
Обновления Spring: релизы второй milestone-версии Spring Boot, Security, Authorization Server, GraphQL и других компонентов включают исправления ошибок, обновленные зависимости и новые функции. Детали доступны в официальных заметках к релизам.
Подробности: https://www.infoq.com/news/2025/08/spring-news-roundup-aug18-2025/
#en
@a_cup_of_java | Другие наши каналы
Подробности: https://www.infoq.com/news/2025/08/spring-news-roundup-aug18-2025/
#en
@a_cup_of_java | Другие наши каналы
Kafka Streams для начинающих. Потоковая обработка данных в мире Java
Привет, коллеги-разработчики! За всю историю человечества в разные эпохи существовали определенные виды ресурсов, которые определяли наше развитие и эволюцию. В 19 веке главным ресурсом для человечества было золото, в 20 веке – нефть и газ, а в 21 веке этим ресурсом стала информация. В нашем быстро меняющемся мире, где данные льются рекой и эти объемы растут с невероятной скоростью, нам как разработчикам приходится постоянно искать новые подходы для эффективной работы. От финансовых транзакций и логов серверов до показаний IoT-сенсоров и кликов пользователей на веб-сайтах — информация поступает непрерывным потоком. Работать с ней в реальном времени становится критически важным для того, чтобы бизнес мог принимать своевременные решения и оставаться конкурентоспособным.
Итак, в этой статье мы разберемся в новомодной технологии для работы с данными – Kafka Streams и узнаем, что это, область применения, а также достоинства и недостатки.
Читать: https://habr.com/ru/articles/939872/?utm_campaign=939872
@a_cup_of_java | Другие наши каналы
Привет, коллеги-разработчики! За всю историю человечества в разные эпохи существовали определенные виды ресурсов, которые определяли наше развитие и эволюцию. В 19 веке главным ресурсом для человечества было золото, в 20 веке – нефть и газ, а в 21 веке этим ресурсом стала информация. В нашем быстро меняющемся мире, где данные льются рекой и эти объемы растут с невероятной скоростью, нам как разработчикам приходится постоянно искать новые подходы для эффективной работы. От финансовых транзакций и логов серверов до показаний IoT-сенсоров и кликов пользователей на веб-сайтах — информация поступает непрерывным потоком. Работать с ней в реальном времени становится критически важным для того, чтобы бизнес мог принимать своевременные решения и оставаться конкурентоспособным.
Итак, в этой статье мы разберемся в новомодной технологии для работы с данными – Kafka Streams и узнаем, что это, область применения, а также достоинства и недостатки.
Читать: https://habr.com/ru/articles/939872/?utm_campaign=939872
@a_cup_of_java | Другие наши каналы
MWS Cloud Platform митап в Казани
Java&kotlin-митап в Казани от MWS Cloud Platform
30 сентября в 18:00 в пространстве MEDIAPORT соберутся талантливые инженеры MWS CloudPlatform, чтобы рассказать о своём подходе в построении облака, а ещё обсудить с техсообществом Казани будущее Go и Java. Приходите знакомиться!
В программе:
— как реализовать безопасный контроль доступа в облаке;
— как создать балансировщик нагрузки собственными руками;
— сможет ли Go заменить Java в энтерпрайзе.
Вход бесплатный, но регистрация обязательна.
Это #партнёрский пост
Java&kotlin-митап в Казани от MWS Cloud Platform
30 сентября в 18:00 в пространстве MEDIAPORT соберутся талантливые инженеры MWS CloudPlatform, чтобы рассказать о своём подходе в построении облака, а ещё обсудить с техсообществом Казани будущее Go и Java. Приходите знакомиться!
В программе:
— как реализовать безопасный контроль доступа в облаке;
— как создать балансировщик нагрузки собственными руками;
— сможет ли Go заменить Java в энтерпрайзе.
Вход бесплатный, но регистрация обязательна.
Это #партнёрский пост
🌭1
Android. Starting Kivy App and Service on bootup. API 35
Это мини статья является дополнением к статье Android. Starting Kivy App and Service on bootup, в которой запускал сервисом kivy приложение на API 22 Android 5. Теперь будем запускать на последних версиях Android. C API 26 Android 8 и по текущий API 35 Android 15 который есть у меня, постигли изменения, которые необходимо внести для автостарта сервиса. Проверял работу на API 22...35.
Читать: https://habr.com/ru/articles/940534/?utm_campaign=940534
@a_cup_of_java | Другие наши каналы
Это мини статья является дополнением к статье Android. Starting Kivy App and Service on bootup, в которой запускал сервисом kivy приложение на API 22 Android 5. Теперь будем запускать на последних версиях Android. C API 26 Android 8 и по текущий API 35 Android 15 который есть у меня, постигли изменения, которые необходимо внести для автостарта сервиса. Проверял работу на API 22...35.
Читать: https://habr.com/ru/articles/940534/?utm_campaign=940534
@a_cup_of_java | Другие наши каналы
Spring Modulith: проверяем границы модулей в монолите и события домена
Привет, Хабр!
Еще в C++20 появилась явная поддержка модулей в языке. Интересно, но в Java тоже давно искали похожее решение для упорядочивания больших монолитных проектов. Spring предлагает свой ответ – проект Spring Modulith, цель которого дать разработчику инструмент для построения модульного монолита. Он не делает всю работу, но помогает структурировать код по модулям, проверять архитектурные правила и организовывать взаимодействие между этими модулями.
Читать: https://habr.com/ru/companies/otus/articles/940314/?utm_campaign=940314
@a_cup_of_java | Другие наши каналы
Привет, Хабр!
Еще в C++20 появилась явная поддержка модулей в языке. Интересно, но в Java тоже давно искали похожее решение для упорядочивания больших монолитных проектов. Spring предлагает свой ответ – проект Spring Modulith, цель которого дать разработчику инструмент для построения модульного монолита. Он не делает всю работу, но помогает структурировать код по модулям, проверять архитектурные правила и организовывать взаимодействие между этими модулями.
Читать: https://habr.com/ru/companies/otus/articles/940314/?utm_campaign=940314
@a_cup_of_java | Другие наши каналы
Spring AI: новый уровень интеграции ИИ в Java-приложения. В статье рассказывается, как с помощью Spring AI использовать большие языковые модели, создавать интеллектуальных агентов и обеспечивать безопасность данных. Полезно для разработчиков, работающих с AI и Spring.
Подробности: https://www.infoq.com/presentations/spring-ai-framework/
#en
@a_cup_of_java | Другие наши каналы
Подробности: https://www.infoq.com/presentations/spring-ai-framework/
#en
@a_cup_of_java | Другие наши каналы
💊1
Новое в мире Java: вышел второй релиз кандидат JDK 25 с 18 новыми функциями и долгосрочной поддержкой. Обновились Eclipse JNoSQL, Quarkus c патчами безопасности, Apache TomEE и Apache Camel с улучшениями совместимости и производительности.
Подробности: https://www.infoq.com/news/2025/08/java-news-roundup-aug18-2025/
#en
@a_cup_of_java | Другие наши каналы
Подробности: https://www.infoq.com/news/2025/08/java-news-roundup-aug18-2025/
#en
@a_cup_of_java | Другие наши каналы
ArchUnit против хаоса
Привет! Я Масгутов Руслан, архитектор в Т-Банке. Одна из моих задач — вести архитектурный надзор по техническим решениям. Проверка структуры проектов при ревью довольно быстро становится скучной рутиной, и появляется желание автоматизировать эту деятельность, чтобы освободить время для более интересных задач.
Расскажу, как мы используем ArchUnit для автоматизации архитектурного контроля. Покажу, как мы обернули правила в Gradle-плагин, встроили их в CI/CD, боремся с архитектурными отклонениями до того, как они попадают в pull request, и расскажу о возможности сбора архитектурных метрик.
Читать: https://habr.com/ru/companies/tbank/articles/940766/?utm_campaign=940766
@a_cup_of_java | Другие наши каналы
Привет! Я Масгутов Руслан, архитектор в Т-Банке. Одна из моих задач — вести архитектурный надзор по техническим решениям. Проверка структуры проектов при ревью довольно быстро становится скучной рутиной, и появляется желание автоматизировать эту деятельность, чтобы освободить время для более интересных задач.
Расскажу, как мы используем ArchUnit для автоматизации архитектурного контроля. Покажу, как мы обернули правила в Gradle-плагин, встроили их в CI/CD, боремся с архитектурными отклонениями до того, как они попадают в pull request, и расскажу о возможности сбора архитектурных метрик.
Читать: https://habr.com/ru/companies/tbank/articles/940766/?utm_campaign=940766
@a_cup_of_java | Другие наши каналы
Онлайн-студия big tech night
Если вас не будет в Москве в день ивента, подключайтесь к нашей онлайн-студии. Мы подготовили огненную программу, которая отличается от офлайн-активностей:
🔴 Выступления спикеров от компаний-организаторов и других топов в индустрии
🔴 Микс форматов — от дискуссий и интервью до фановых историй из жизни разработчиков
🔴 Интерактивы с комментариями зрителей
Проведём сразу два прямых эфира:
✨ Студия Hard
В формате дискуссий и интервью обсудим сложные темы — управление IT-командой, AI в разработке, запуск проектов на несколько бизнесов.
✨ Студия Soft
Настоящая вечеринка в формате Late Night Show. Будем общаться, шутить и делиться сокровенным — например, обсудим необычные хобби и безумные pet-проекты.
❗️ Можно переключаться между студиями, чтобы поймать все самые интересные темы.
💻 Мы в эфире 12 сентября с 18:00 до 21:00
❤️Зарегистрируйтесь на сайте, чтобы получить ссылку на трансляцию
Подписывайтесь:
💬 big tech night
Реклама. Рекламодатель: ООО "Яндекс" ИНН 7736207543
Это #партнёрский пост
Если вас не будет в Москве в день ивента, подключайтесь к нашей онлайн-студии. Мы подготовили огненную программу, которая отличается от офлайн-активностей:
🔴 Выступления спикеров от компаний-организаторов и других топов в индустрии
🔴 Микс форматов — от дискуссий и интервью до фановых историй из жизни разработчиков
🔴 Интерактивы с комментариями зрителей
Проведём сразу два прямых эфира:
✨ Студия Hard
В формате дискуссий и интервью обсудим сложные темы — управление IT-командой, AI в разработке, запуск проектов на несколько бизнесов.
✨ Студия Soft
Настоящая вечеринка в формате Late Night Show. Будем общаться, шутить и делиться сокровенным — например, обсудим необычные хобби и безумные pet-проекты.
❗️ Можно переключаться между студиями, чтобы поймать все самые интересные темы.
💻 Мы в эфире 12 сентября с 18:00 до 21:00
❤️Зарегистрируйтесь на сайте, чтобы получить ссылку на трансляцию
Подписывайтесь:
💬 big tech night
Реклама. Рекламодатель: ООО "Яндекс" ИНН 7736207543
Это #партнёрский пост
Stream Gatherers: кастомные промежуточные операции для Stream API
Привет, Хабр!
Когда Java 8 впервые подарила нам Stream API, мы все обрадовались ленивому функциональному стилю работы с коллекциями. Но хочется иногда большего. Вот, например, задача – пропустить из потока только по одному элементу каждого размера строки. Или разбить бесконечный стрим на окна фиксированного размера и обработать первые несколько таких окон. Казалось бы, чем проще:
Читать: https://habr.com/ru/companies/otus/articles/940320/?utm_campaign=940320
@a_cup_of_java | Другие наши каналы
Привет, Хабр!
Когда Java 8 впервые подарила нам Stream API, мы все обрадовались ленивому функциональному стилю работы с коллекциями. Но хочется иногда большего. Вот, например, задача – пропустить из потока только по одному элементу каждого размера строки. Или разбить бесконечный стрим на окна фиксированного размера и обработать первые несколько таких окон. Казалось бы, чем проще:
.filter
, .map
, .distinct
… Но именно этих операций не хватало. До Java 24 набор промежуточных операций в Stream
был фиксированным – map
, filter
, flatMap
, distinct
, sorted
и т.д. – и расширить его было нельзя. Приходилось придумывать сложные ухищрения (например, оборачивать объекты в record с особым equals
или собирать через collect
, а потом резать список), чтобы решить элементарные задачи. В итоге код становился громоздким и неинтуитивным.Читать: https://habr.com/ru/companies/otus/articles/940320/?utm_campaign=940320
@a_cup_of_java | Другие наши каналы
Хватит терять время! Ускоряем сборку с помощью Spring Test Profiler
Интеграционные тесты на Spring Boot могут тормозить разработку. Причина часто кроется в неэффективной работе с кэшем контекста Spring.
Spring Test Profiler — это инструмент, который поможет выявить узкие места и оптимизировать конфигурацию тестов. В новом переводе от команды Spring АйО мы рассмотрим, какие тесты вызывают повторную загрузку контекста, где конфигурации расходятся и как можно унифицировать окружение для значительного ускорения тестов.
Читать: https://habr.com/ru/companies/spring_aio/articles/940930/?utm_campaign=940930
@a_cup_of_java | Другие наши каналы
Интеграционные тесты на Spring Boot могут тормозить разработку. Причина часто кроется в неэффективной работе с кэшем контекста Spring.
Spring Test Profiler — это инструмент, который поможет выявить узкие места и оптимизировать конфигурацию тестов. В новом переводе от команды Spring АйО мы рассмотрим, какие тесты вызывают повторную загрузку контекста, где конфигурации расходятся и как можно унифицировать окружение для значительного ускорения тестов.
Читать: https://habr.com/ru/companies/spring_aio/articles/940930/?utm_campaign=940930
@a_cup_of_java | Другие наши каналы
Forwarded from Типичный программист
Tproger объединились с Paradox и запустили совместный проект для комьюнити разработчиков
Мы сделали два дизайна — теперь ваш ход. Вы за типичный или за токсичный вайб? Голосуйте за один из вариантов до 30 августа на сайте.
В конце месяца объявим победителя — дизайн, который сообщество реально протащило в прод.
И да, всё самое интересное будет в канале. Среди голосующих разыграем призы — так что не только банке достанется апгрейд.
Мы сделали два дизайна — теперь ваш ход. Вы за типичный или за токсичный вайб? Голосуйте за один из вариантов до 30 августа на сайте.
В конце месяца объявим победителя — дизайн, который сообщество реально протащило в прод.
И да, всё самое интересное будет в канале. Среди голосующих разыграем призы — так что не только банке достанется апгрейд.
❤1😁1