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

Kotlin *

Статически типизированный язык программирования

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

И как оно? Рассказываем как прошёл второй Java Rock Stars Meetup

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

Привет, Хабр!

Первый Java Rock Stars Meetup прошёл на ура (обзор первого митапа см. тут) и вы сказали, что хотели бы ещё. Ну, что ж, мы услышали, приняли и сделали.

В конце мая мы провели второй Java Rock Star Meetup при поддержке сообщества Spring АЙО в Москве на той же площадке Casa Picassa, только в соседнем лофте. В этот раз мы выбрали площадку с большей вместимостью, поскольку кол-во регистраций в этот раз было сильно выше (как и дошедших до локации участников), чему мы были несказанно рады!

Под катом — записи докладов, фото, видео и как это было.

Читать далее

Новости

Ныряем в холодные потоки Kotlin Flow

Время на прочтение5 мин
Количество просмотров551

Лето — лучшее время для сплава. Поэтому, если вы пока не в отпуске, давайте устроим короткий сплав по асинхронным потокам данных в Kotlin.

Читать далее

Анатомия неудачного микробенчмарка

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

В новом переводе от команды Spring АйО подробно разбираются концептуальные, методологические и технические ошибки, на которые легко наткнуться при попытке протестировать такие механизмы, как synchronized и ReentrantLock. Автор объясняет, почему микробенчмарки часто измеряют не то, что вы думаете, и почему для получения осмысленных результатов лучше использовать макротесты или полагаться на экспертов.

Читать далее

Путеводитель по Ktor JWT auth на стороне сервера

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

Документация Ktor по server-jwt неполна. Если необходимо сделать что-то за рамками «Hello world», придется лезть в исходники и городить костыли. Какой-то консистентности и предсказуемости ждать не стоит, возможно, не обошлось без заговорщиков.

Статья покроет необходимую базу для работы с JWT и убережет от множества подводных камней.

Читать далее

Spring Data JPA и Hibernate: ориентируемся на производительность. Часть 2

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

Команда Spring АйО перевела и адаптировала доклад Мацея Валковяка “Performance oriented Spring Data JPA & Hibernate”, в котором на наглядных примерах рассказывается, как существенно нарастить производительность приложения, оптимизировав его взаимодействие с БД. 

Доклад будет опубликован тремя частями. В первой части было рассказано об оптимизации управления подключениями к базе данных. Во второй части мы посмотрим на то, как оптимизировать код и настройки Spring Data и Hibernate, чтобы минимизировать количество отправляемых в базу данных SQL запросов. 

Читать далее

Spring AI: retrieval augmented generation

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

Spring AI, который только недавно получил первую стабильную версию, уже предоставляет довольно много возможностей для работы с RAG (retrieval augmented generation).

Благодаря этому подходу нейросеть перед тем, как дать ответ на запрос пользователя, выполнит поиск подходящей информации в векторном хранилище. Причём каждый документ хранится не в виде текста, а в виде массива чисел (т.н. «векторов»).

Процесс преобразования различных документов в такой векторный формат выполняется опять же с помощью LLM и называется embedding («встраивание»). Хорошая новость заключается в том, что всё это можно легко сделать с помощью Spring AI.

Читать далее

Как написать микробенчмарк

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

Команда Spring АйО перевела статью, в которой приведено несколько правил, которые следует учитывать при написании микробенчмарков для HotSpot JVM.

Читать далее

Трудности обслуживания приложений под Android

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

Недавно наткнулся на новость о том, что количество приложений в Google Play Store сократилось на 47%.

Я сам энтузиаст разработки под Android и последние 5 лет работал над альтернативой для Google Play Music и Podcast под названием MusicSync. Так что, будучи близким к теме человеком, мне захотелось поделиться своим опытом обслуживания приложений и заодно пояснить, почему меня эта новость нисколько не удивила.

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

Если же говорить о приложении Android, то обслуживать его в качестве хобби-проекта гораздо хлопотнее. Вот некоторые из проблем, с которыми мне приходилось сталкиваться.

Читать далее

Не хотите поговорить о Kotlin Contracts?

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

Привет! Меня зовут Виталий. Я — Android‑разработчик в Альфа‑Банке. За время собеседований я заметил одну любопытную вещь: даже опытные котлиноводы частенько не в курсе такой мощной фичи, как Kotlin Contracts.

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

Всё максимально честно, с живыми иллюстрациями и практическими советами. Даже если раньше вы смотрели на Contracts как на тайный клуб для избранных — после этой статьи они перестанут быть чем‑то пугающим.

Читать далее

Почему Exceptions в Java не взлетели — и что с этим делать в 2025 году

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

Всем привет!

Меня зовут Илья, я работаю в Райффайзен Банке. Мы пишем свои бэкенд-сервисы на Java и Kotlin, поэтому зачастую приходится переключаться с одного языка на другой. Из-за этого невольно начинаешь сравнивать подходы и механизмы одного языка с его JVM-собратом. Сегодня я бы хотел поговорить об одном из таких механизмов — пропагации ошибок и исключений.

Используете ли вы в своем коде исключения? Ответ кажется странным, так как исключения являются неотъемлемой частью Java. Но что, если я спрошу, используете ли вы исключения для управления логикой своей программы?

Читать далее

Я обогнал Google?

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

Заголовок "Я обогнал Google?" — не просто кликбейт. Столкнувшись с неудобствами и большим количеством бойлерплейта в Jetpack Navigation на реальном проекте, я задался вопросом: а можно ли сделать лучше? В этой статье я шаг за шагом показываю свой путь: от ручных extension-функций до создания собственной библиотеки на KSP, которая генерирует типобезопасные классы для навигации, упрощает передачу аргументов и добавляет удобные фичи.

Читать далее

Проект умного дома IoT LikNode

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

Проект локальных беспроводных устройств к каждом из которых подключается датчик (температуры, влажности), датчик движения, различные устройства с цифровым выходом, которые можно использовать для охраны. Вся информация, выводится на смартфон, также как и управление и настройка.

Данное устройство разрабатывалось на основе микроконтроллера esp32 (ap), esp8266 (node) и смартфона os Android. 

Программа для микроконтроллеров написана на языке Си для андроид на языке Котлин (скачать возможно по ссылке download). 

Каждый из микроконтроллеров подключенный в данном проекте имеет одинаковые функции. Максимальное количество node можно подключить 20 штук.

Читать далее

Как оптимизировать сетевые запросы в Android: OkHttp и Retrofit с Coroutines

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

Современные Android-приложения почти всегда взаимодействуют с сервером: получают данные, отправляют формы, синхронизируют информацию в реальном времени. Производительность этих сетевых операций напрямую влияет на пользовательский опыт — особенно в условиях нестабильного или медленного интернета.

Расскажем, как использовать библиотеки OkHttp и Retrofit — инструменты, ставшие стандартом де-факто в Android-разработке, — для построения надёжной и быстрой сетевой прослойки. Статья ориентирована на мобильных разработчиков, особенно тех, кто работает с Kotlin и Coroutines.

Читать далее

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

Оверинжиниринг в луковичной и гексагональной архитектурах

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

Команда Spring АйО перевела статью, которая рассказывает о том, как луковичная и гексагональная архитектура часто используется программистами в неоправданно сложном варианте, взятом из учебника, и как эти архитектурные стили можно упростить, получив от этого существенные преимущества в плане затрат на разработку и поддержку.

Читать далее

Рекомендации по Jetpack Compose: от основ к масштабируемым UI

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

Всем привет!

В этой статье мы будем обсуждать, как писать масштабируемые и поддерживаемые интерфейсы на Jetpack Compose: от базовых компонентов до архитектурных практик. Разбираем иерархию, принципы проектирования, naming, порядок параметров и антипаттерны.

Думаю, что статья будет полезна как новичкам, так и опытным разработчикам.

Читать далее

Spring Data JPA и Hibernate: ориентируемся на производительность. Часть 1

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

Команда Spring АйО перевела и адаптировала доклад Мацея Валковяка «Performance oriented Spring Data JPA & Hibernate», в котором на наглядных примерах рассказывается, как существенно улучшить производительность приложения, оптимизировав его взаимодействие с БД. 

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

Читать далее

Как ИИ помог создать систему видеонаблюдения на Android

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

Привет, Хабр!

Прежде чем я начну рассказ о своем проекте, хочу выразить огромную благодарность всем тем бесчисленным программистам, разработчикам и энтузиастам, которые на протяжении многих лет делились своим кодом, знаниями и опытом в интернете. Ваши открытые проекты, ответы на Stack Overflow, статьи, туториалы и обсуждения на форумах стали той самой питательной средой, на которой обучались большие языковые модели (LLM), включая и ту, что помогала мне. Без вашего вклада в общее дело, такие мощные ИИ‑ассистенты, которые сегодня так сильно облегчают и ускоряют разработку, были бы просто невозможны. Спасибасвам за то, что делаете мир разработки открытее и доступнее!

Исходный код проекта «Storog» полностью открыт и доступен на GitHub.

Читать далее

От конфигурации к динамике. Новый API по созданию бинов в Spring

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

В Spring Framework 7 появился новый API — BeanRegistry, который упрощает и расширяет возможности по динамической регистрации бинов. Это особенно актуально, когда невозможно заранее предсказать, сколько компонентов потребуется, как в случае со Spring Data. В новой статье от эксперта сообщества Spring АйОМихаила Поливахи, вы узнаете:

– Как Spring Data справлялась с динамической регистрацией раньше;

– Какие подходы регистрации существовали до BeanRegistrar, как они работали;

– Как новый API связан со Spring AOT.

Читать далее

40 ударов палкой и Kotlin Multiplatform: как устроена мобильная разработка в Катаре (интервью)

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

Привет! Я Максим Мялкин, управляющий партнер и руководитель мобильной разработки в KTS.

Сегодня я хочу поделиться историей моего знакомого и бывшего студента Сергея Ракова. Его карьера сложилась довольно необычным образом: от инженера-конструктора в Богородицке он прошел путь до Android-разработчика в Катаре.

Недавно мы провели с ним интервью и обсудили, тяжело ли ему далась смена профессии, чем занимается его компания и почему для разработки мобильного приложения они выбрали KMP.

Также коснулись темы культурных особенностей. Да, заголовок — не кликбейт, в Катаре по-прежнему существуют телесные наказания. Историю о них мы расскажем в конце; забегая вперед, знакомые Сергея поплатились таким образом за пьяное вождение (осуждаем).

Читать далее

Архитектурные принципы Spring Security. Часть третья

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

Команда Spring АйО перевела и адаптировала доклад Даниэля Гарнье‑Муару «Spring Security Architecture Principles», в котором на наглядных примерах рассказывается, как пользоваться возможностями Spring Security, не запутываясь на каждом шагу и не зарабатывая себе головную боль. 

Доклад публикуется тремя частями. В первой части было рассказано об основных подходах к созданию цепочек фильтров, а также разработан простейший фильтр. Во второй части мы рассказали об Authentication объектах и продемонстрировали, как разработать специализированный фильтр для обеспечения доступа программы-робота к основному приложению. В третьей части мы поговорим об абстракции AuthenticationProvider и приведем пример ее использования.

Читать далее
1
23 ...