Обновить
97.3

Kotlin *

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

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

Kotlin Multiplatform: как писать код один раз и покорить все платформы

Время на прочтение5 мин
Охват и читатели3.2K

Kotlin Multiplatform — это подход, который позволяет делить до 80% кода между Android, iOS, backend и вебом, не жертвуя нативностью. В статье — без лишнего пафоса о том, как устроена архитектура KMP, чем она отличается от Flutter и React Native, как работает сборка, где границы общего и платформенного кода и почему это решение подходит командам, стремящимся к эффективности без компромиссов.

Читать далее

ML KIT — Современное решение для сканирования в Android приложениях

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели1.8K

ML Kit - это мощный инструмент для работы с камерой в андроид приложениях.

Библиотека от компании Google ML Kit предлагает набор встроенных API, которые могут работать как на самом девайсе, так и в облаке.

ML Kit - это мощный инструмент для работы с камерой в Android и IOS приложениях.

Читать далее

Когда JavaScript недостаточно: Практика разработки нативных модулей для React Native

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

Если ты пишешь на React Native, но устал от его ограничений (типа NFC, Bluetooth или системных фич), эта статья — твой выход. Мы разберём ключевые аспекты разработки нативных модулей для React Native приложений.

Что внутри:
Зачем это надо — когда JS бессилен, а нативный код спешит на помощь.
Как написать свой модуль** — от наследования до обработки системных плюшек (на примере работы с уведомлениями).
Фишки интеграции — куда складывать готовый код, как регистрировать и вызывать из JS.
Готовый пример — бери и используй (или переделывай под свои нужды).

Для кого:
Для тех, кто уже дружит с RN и Kotlin/Java, но хочет больше власти над устройством.

Что получишь:
Рабочий код (не просто "Hello, World!"),
Четкие шаги без воды,
Понимание, как лезть в другие системные штуки.

Итог:
Нативные модули — это мощный инструмент, который делает ваш гибридный код по-настоящему нативным. Хочешь больше, чем предлагает фреймворк? Допиливаешь сам. Статья покажет как.

Читать далее

Paging3 в стиле Compose: секретный DSL, о котором молчат все Android-разработчики

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

В статье описан путь преобразования предложенного экспертами Google способа отображения страничных данных с использованием библиотеки Paging3 и Compose от развесистого сборника if'ов и when'ов, вероломно нарушающего все границы архитектурных слоев, до чистого, лаконичного и затягивающего в себя DSL.

Погрузиться в магию

Compose Multiplatform 1.8.0: поддержка iOS переходит в stable

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

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

Мы разрабатываем приложения на KMP еще с 2021 года, а в прошлом году начали экспериментировать с Compose Multiplatform. Вчера JetBrains официально объявили о выходе CMP 1.8.0, c которой поддержка iOS переходит в статус stable. Это важный этап, поскольку теперь CMP можно всерьез рассматривать как основу для кроссплатформенной мобильной разработки.

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

Читать далее

Как обезопасить Spring AI MCP сервер с помощью OAuth2

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели769

Команда Spring АйО перевела статью о том, как правильно настраивать безопасность на MCP серверах с использованием возможностей OAuth2 в свете новейшей спецификации MCP, вышедшей в свет 26-го марта 2025-го года, то есть совсем недавно.

Читать далее

Value-классы в Kotlin: коротко

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

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

Сегодня рассмотрим@JvmInline value class в Kotlin. Это не просто очередной синтаксический сахар, а инструмент, который реально влияет на производительность, API-дизайн, надёжность, сериализацию и даже структуру многомодульных систем.

Читать далее

Edge-to-edge в Android: опыт внедрения и рекомендации по тестированию

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

Всем привет! Мы – Саша Королёв и Юля Трусова, инженеры в Design System Авито. Наша команда работает над качеством интерфейсов: актуальностью, предсказуемостью, доступностью. В этой статье рассказываем про наш опыт внедрения edge-to-edge в мобильном приложении Avito для Android.

Материал будет особенно вам интересен, если ваше приложение не использовало режим edge-to-edge, но ввиду последних требований от Google по переходу на target SDK 35, появилась в этом необходимость. Ведь данное обновление применяет режим по умолчанию без возможности его отключить. Из статьи вы узнаете, с какими сложностями столкнулись мы как участники большого проекта при интеграции данного режима в масштабный проект с не одной сотней экранов.

Читать далее

Как я писала DSL

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели5.7K

Здравствуйте. Я учусь на последнем курсе бакалавриата и уже через месяц с небольшим буду защищать свою выпускную квалификационную работу (или же дипломную). Мне захотелось рассказать про неё здесь, чем я сейчас и займусь.

Меня давно интересуют инструменты для обеспечения работы языков программирования - лексеры, парсеры, интерпретаторы, компиляторы и всякое такое. Настолько интересуют, что уже в конце первого курса я решила, что в конце обучения буду защищать свой маленький язык программирования. Увы, создание собственного языка оказалось делом довольно сложным, из-за чего пришлось искать новую тему. Примерно на третьем курсе мы изучали в университете Kotlin, который быстро запал мне в душу и стал моим любимцем (после Lua). Мне захотелось написать дипломную именно на нём, поэтому я стала думать, что бы такое написать. Так как меня интересовал геймдев, я подумала: "Почему бы не создать свой движок для текстовых квестов как альтернативу Ren'Py?". Подумала и написала простой движок. Увы, в нём не было научной новизны, да и писать под него было неудобно, ну хоть получила опыт создания язычков, когда дала жизнь своему Av, про который писала в прошлой статье.

В университете мне сказали, что подобная тема совершенно не подходит для защиты, после чего я снова задумалась, что бы написать. Вспомнила, что довольно неплохо знакома с ANTLR, и решила написать DSL, который позволит превращать классы, которые сгенерировал ANTLR, в AST Kotlin. Эта мысль возникла довольно внезапно, но мне быстро стало интересно, во что она может превратиться. Как писать такой DSL, а главное, зачем? Как я объясняла нашей завкафедрой, подобный инструмент позволит автоматически переводить кодовые базы с разных языков на один - мой любимый Котлин. Кроме того, это поможет поддержать авторов новых языков программирования, поскольку он позволяет не писать свой рантайм, а положиться на уже существующий JVM, ведь Котлин исполняется на нём.

Читать далее

Kotlin для backend: весенний новостной дайджест

Время на прочтение3 мин
Охват и читатели1.3K

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

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

Читать далее

Как сократить время сборки с помощью кеширования контекста от Spring Test

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели1.8K

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

Читать далее

Jqwik: обзор тестирования на основе свойств в UI и API

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели927

Привет, Хабр! Меня зовут Денис, я SDET-специалист в компании SimbirSoft. Работая на проектах, я приобрел опыт использования различных инструментов тестирования. Спустя тонны написанных автоматизированных тестов по тест-кейсам и техникам тест-дизайна, хочу рассказать вам о возможности тестирования не конкретных данных, а их свойств. Статья будет полезна всем, кто уже знаком с тестированием на основе примеров и позволит расширить кругозор в понимании подготовки данных.

В своей статье я описал методы гарантии качества ПО, такие как тестирование на основе примеров и тестирование на основе свойств, а также составил таблицу с описанием параметров их взаимодействия с тестовым оракулом. Рассказал об инструменте тестирования на основе свойств Jqwik для языка Java, привел примеры использования случайного набора данных на UI и API, раскрыл возможности инструмента и потенциал работы с ним в рамках генерации тестов.

Читать далее ⚡

Альтернативы IDEA CE для Jmix и Spring Boot разработчиков

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

Недавно состоялся долгожданный релиз OpenIDE — открытой среды для профессиональной разработки (Spring Boot/Java/Kotlin и многое другое) от консорциума «Haulmont – Axiom – Astra», построенной на принципах открытости, свободы и отсутствия какой-либо дискриминации. В отличие от конкурентов, эта IDE не позиционирует себя как очередное решение для «импортозамещения», а является самостоятельным продуктом, нацеленным на решение широкого спектра задач современной разработки.  

К написанию данной статьи дополнительным стимулом стал «повышенный интерес» сообщества Jmix-разработчиков к GigaIDE от Сбера, релиз которой состоялся почти год назад (27 июня 2024 года). За прошедшее время те, кто хотел, уже успели ознакомиться с возможностями GigaIDE. Теперь же разработчики получили возможность попробовать OpenIDE и сравнить её с предыдущей альтернативой. 

Цель сегодняшней статьи — подробно сравнить эти два продукта и ответить на важные вопросы.

Читать далее

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

Как запустить локальную LLM (AI) в Android Studio

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

Привет! Если вы мобильный разработчик и следите за AI-трендами, наверняка задумывались о том, как интегрировать языковые модели (LLM) в свои приложения прямо из Android Studio. В этой статье я расскажу, как это можно сделать быстро и просто, не полагаясь на внешние API и облачные решения.

Читать далее

Content Based Theme в Android приложении

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели775

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

Читать далее

Spring Boot: создайте свой собственный CLI с помощью Spring Shell

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели2.7K

Команда Spring АйО перевела статью о создании собственного интерфейса командной строки  в Spring Boot приложении. Статья выполнена в форме туториала и приводит все необходимые разработчику простые шаги для первоначального освоения Spring Shell.

Читать далее

OpenIDE: первая российская среда разработки с поддержкой Java 24

Время на прочтение8 мин
Охват и читатели18K

Наконец-то состоялся официальный релиз OpenIDE – независимой российской среды разработки, которую совместно создают «Группа Астра», Axiom JDK и Haulmont.

Проект стартовал как open source-инициатива в конце прошлого года и всего за полгода прошёл путь от идеи до стабильной версии. В числе ключевых фич — поддержка Java 24 уже "из коробки", собственный маркетплейс плагинов и "многоязычность".

В статье — ключевые достижения, проблемы, а также планы по развитию OpenIDE и её экосистемы.

Читать далее

Как подготовиться и пройти System Design Interview

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

System Design Interview — пожалуй, один из самых «бесформенных» этапов технического собеседования. Здесь важно не найти единственно верное решение, а продемонстрировать системное мышление, умение работать с абстракциями, логически выстраивать архитектуру и аргументированно делать выбор технологий.

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

Кстати, Александр ведет репозиторий с заметками: https://github.com/qcha/JBook

Читать далее

Обновляем AOSP-приложение «Контакты», или Чем обернулось «приключение на 20 минут» с legacy-кодом

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели1.6K

Привет, Хабр! Меня зовут Дмитрий, я старший инженер-программист в департаменте разработки мобильных приложений YADRO. В этой статье я расскажу о нашем опыте работы со стандартным AOSP-приложением «Контакты». Это базовая версия телефонной книги, разработанная в рамках Android Open Source Project (AOSP). На этапе ревью дизайна мы решили, что можно улучшить UI, не трогая бизнес-логику. Это дало начало увлекательной истории...

Читать далее

Cтатья про собеседования в Яшу (Yandex Weekend Offer)

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели19K

Может кому-то это будет интересно, даст возможность лучше подготовиться; или наоборот кто-то примет решение не участвовать.

Коротко о себе: 41 год, senior software developer, стаж > 20 лет. Однако, как я понял, эти собесы все равно для всех одинаковые, так чтоб все написанное актуально и для молодежи.

Итак, угораздило меня согласиться на т. н. «Weekend Offer на позицию разработчика на Kotlin». Вообще‑то мне больше нравится Scala, и опыта по ней гораздо больше, но рекрутерша была сильно настойчива, и я решил обновить экспиренс, а возможно, и прибавку в деньгах. И вот что было дальше.

Читать далее