Обновить
87.33

Kotlin *

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

Какой фреймворк выбрать для MVP стартапа: опыт разработчика и фаундера

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

Автор: разработчик и фаундер с опытом запуска стартапов в сферах туризма, HR tech, а сейчас — в музыкальной индустрии.

По образованию — Data Scientist, по призванию — Android-разработчик и продукт-менеджер.

Работал в крупных продуктах вроде X5 и Uzum, где впервые познакомился с Kotlin Multiplatform Mobile (KMM). Когда настал момент создавать прототип для своего музыкального стартапа, выбор был очевиден: я уже знал Kotlin, имел боевой опыт с KMM — и хотел быстро двигаться без лишних компромиссов.

Но KMM — не единственный путь.

На столе были и Flutter, и React Native, и даже классическая нативка.

В этой статье я расскажу:

Читать далее

Часть 2: XML или Compose — что выбрать, и что нужно знать перед выбором

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

Автор: Android-разработчик с 7+ годами опыта, знающий толк в FrameLayout, merge, include, RecyclerView, а теперь и Modifier.padding.

Читать далее

Разработка навыка Яндекс Алисы для удалённого управления компьютером

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

В этой статье будет показано, как разработать навык для Яндекс Алисы, позволяющий удалённо управлять компьютером. Для реализации мы будем использовать языки Kotlin и Java.

Мне такой навык понадобился для управления медиаплеером — например, чтобы ставить видео на паузу, регулировать громкость, переключать треки или видео, перематывать назад или вперёд, открывать определённые фильмы на Кинопоиске. Я часто использую компьютер как телевизор, и возможность голосового управления делает использование гораздо удобнее.

Читать далее

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

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

Новый перевод от команды Spring АйО расскажет вам, каких проблем можно избежать, если пользоваться подходом «Рендеринг на стороне сервера» и в чем преимущества такого подхода в целом по сравнению с подходом Single Page Application.

Читать далее

Моки, стабы и фейки: в чем разница и когда что использовать?

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

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

Читать далее

Spring Boot 3.3 и Docker: изменение в эффективных docker-образах

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

Переход от Spring Boot 3.2 к 3.3 принес изменения в процесс распаковки JAR и запуск приложения в Docker-контейнере.

В новой статье от Рустама Курамшина, эксперта сообщества Spring АйО, вы узнаете:
• что именно изменилось
• как это отразится на создании Dockerfile
• и как адаптировать проекты к новым условиям

Читать далее

KotlinJS в GitHub Actions

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

GitHub Actions (GHA) — отличный инструмент для настройки CI/CD, а в GitHub Marketplace можно найти тысячи готовых GHA под любые задачи. Но всегда же найдётся процесс, который захочется настроить под себя. Тогда нам придётся написать кастомный GHA.

Привет! Это Макс Качинкин, Android Tech Lead в Додо. В этой статье я покажу, как создать свой GHA на Kotlin/JS, используя плагин Kotlin Multiplatform, и поделюсь готовым шаблоном в GitHub, с помощью которого вы сможете быстро написать собственный экшен на Kotlin/JS. Погнали!

Читать далее

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

Книга: «Kotlin в действии, 2-е издание»

Время на прочтение5 мин
Количество просмотров5.4K
Привет, Хаброжители!

Вы все еще пишете на Java?

Тогда мы идем к вам – с Kotlin, корутинами и null-безопасностью.

Второе издание «Kotlin в действии» – это полноценный манифест современной JVM-разработки.

Авторы, стоявшие у истоков создания языка в JetBrains, делятся не только синтаксисом, но и философией Kotlin – делать код короче, безопаснее и приятнее в поддержке.

Читать дальше →

У нас в проекте был Compose Multiplatform, но снова я бы так не делал

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

Мобильная разработка продолжает развиваться, но, если честно, никаких революционных прорывов в последнее время не произошло. Громкие темы, вроде Kotlin Multiplatform (KMP), Flutter, Jetpack Compose, SwiftUI, уже давно закрепились в индустрии, а новинки больше эволюционируют, чем меняют правила игры. Компании экспериментируют с кроссплатформенными решениями, и это выглядит логично. Писать общий код для iOS и Android 一 это экономия ресурсов и времени. Вроде бы верно, но на практике всё не так гладко.

Привет, меня зовут Максим Плахута и с недавнего времени я руковожу Android разработкой «Кинопоиска». До этого руководил мобильной разработкой Почты Яндекс. А ещё я участник ПК новой конференции по мобильной разработке Apps Conf. Расскажу, какие шишки набили в реализации кроссплатформенного проекта и чего лучше не делать в современной мобильной разработке.

Читать далее

A/B-тестирование в Android-разработке: гайд для middle+ разрабов

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

A/B-тестирование — это не только инструмент для продуктовых команд. Это суперспособность и для Android-разработчиков. В этой статье рассказываю, как опытные инженеры могут проектировать, реализовывать и грамотно завершать эксперименты, которые действительно влияют на продукт, не захламляя кодовую базу. От Firebase Remote Config до паттернов чистой архитектуры — всё, чтобы делать более умные и осознанные Android-приложения.

🚀 Почему A/B-тестирование важно именно для разработчиков

По сути, A/B-тест — это сравнение двух (или более) вариантов реализации, чтобы понять, какой из них работает лучше. В Android это может быть:

• сравнение разных UI-дизайнов,

• тестирование разных онбордингов,

• проверка производительности оптимизаций,

• сравнение реализаций фич (например, RecyclerView против LazyColumn в Compose).

Вместо «выпустим и посмотрим» — мы выпускаем, измеряем и улучшаем.

🧩 Как встроить A/B-тесты в кодовую базу

Хороший A/B-тест начинается с гипотезы и метрик успеха. Но в инженерном мире нужно думать ещё и о поддержке, масштабировании и разделении логики.

Читать далее

SBOM в Spring Boot: от генерации до анализа уязвимостей

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

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

Читать далее

Построение высоконагруженного WebSocket-сервера на Kotlin + Ktor: архитектура и лучшие практики

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

WebSocket-сервер на Ktor – это эффективное решение для реального времени, позволяющее держать тысячы двунаправленных соединений без создания потоков на каждое подключение. Благодаря корутинам Kotlin Ktor упрощает реализацию WebSocket-коммуникаций в реальном времени (Ktor 101: Efficient JVM HTTP Toolkit | The IntelliJ IDEA Blog). В данной статье мы разберём архитектуру такого сервера, использование корутин и каналов для масштабируемой обработки сессий, поддержку комнат (чатов, игровых лобби, сигналинга), управление состоянием клиентов (heartbeat, реконнекты), масштабирование на несколько узлов, интеграцию с внешними сервисами, а также приведём примеры кода и практические советы из боевого опыта.

Читать далее

Почему нельзя использовать RecyclerView в NestedScrollView и как это исправить?

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

Почему нельзя использовать NestedScrollView вместе с RecyclerView? Я попробую ответить на этот вопрос, и покажу как надо делать

Читать далее

Плавная миграция на Kotlin 2.1.0

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

Всем привет, меня зовут Эдуард, я Android Tech Lead в QIC digital hub[ссылка удалена мод.]. Сегодня я расскажу как совершить плавный переход на Kotlin 2.1.0, руководствуясь опытом своей команды.

Читать далее