Как стать автором
Поиск
Написать публикацию
Обновить
59.22

Kotlin *

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

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

Mapping объектов с помощью MapStruct

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

В огромном приложении Android с Clean Architecture много рутинной работы, связанной с отображением объектов между различными слоями. Хорошим решением будет автоматизация этого процесса.

В этой статье рассматривается опыт использования библиотеки MapStruct, которая помогает mapp-ить объекты.

Библиотека очень гибка в настройке. И позволяет минимизировать написание шаблонного кода.

Вот пример того, как реализовать gradle зависимости в вашем проекте.

Читать далее

Workspaces в IntelliJ IDEA

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

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

Читать далее

Автообновление через GitHub releases с помощью Hilt и Retrofit в Android

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

Как сделать автоматическое обновление непосредственно через приложение или как отказаться от маркетов приложений, части из которых нет на многих устройствах, а другие не подходят по определенному ряду причин!?

Читать далее

Kotlin Coroutines. От А до Я

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

Полный разбор корутинного мира с нуля, который может послужить отличной шпаргалкой на собеседовании!
Разберем разницу между многопоточностью и асинхронностью; раскроем все основные понятия корутин, параллельно ссылаясь на исходники kotlinx.coroutines; посмотрим их применение на практике и в конце напишем свой собственный CoroutineScope.

Let's go

Часть 2.5. TMA на KMP. Аутентификации пользователя с DRF

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

Эта короткая статья является дополнением ко второй, но можно прочить независимо, если требуется только реализация серверной части аутентификации.

Читать далее

Глубокое погружение в Sealed классы и интерфейсы

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

С появлением sealed классов и интерфейсов Java открыла перед разработчиками новые горизонты в области проектирования устойчивого и предсказуемого кода. 

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

Читать далее

Key-Value Хранилище на Стероидах

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

Как абстрагироваться от Key-Value хранилища и забыть про бойлерплейт внутри репозиториев с помощью Kotlin делегатов

Читать далее

Передача данных между фрагментом и BottomSheetDialogFragment с использованием Dagger и Navigation Component

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

Передача данных между фрагментом и BottomSheetDialogFragment может быть эффективно организована с использованием Dagger и Navigation Component, избегая использования передачи данных чрез конструктор или интерфейс, а также SharedViewModel и Hilt. Данный подход позволяет сосредоточиться на интеграции зависимостей и управлении состоянием через стандартные инструменты.

Читать далее

Spring Boot 3.3: повышение производительности, безопасности и  observability

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

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

Поддержка Class Data Sharing (CDS)

Улучшение производительности виртуальных потоков для web-сокетов

Новые свойства для настройки Spring Data JDBC, GraphQL websocket, WebFlux и Tomcat

Читать далее

Принципы SOLID. Dart/Flutter

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

Принципы SOLID простым языком для начинающих разработчиков.

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

Читать далее

Забытая история Java: версия Патрика Ноутона

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

Патрик Ноутон — первоклассный специалист из Sun Microsystems, являющийся одним из создателей Star7 и Java.

Именно он был инициатором запуска проекта (причём через конфликт с руководством Sun и критику их работы, находясь на грани увольнения), который привел к появлению Java.

Если бы Патрику позволили уволиться и перейти в NeXT, возглавляемую Стивом Джобсом, как он того хотел, то языка Java, не существовало бы.

Данный текст, опубликованный им 18 марта 1996 г., позволяет взглянуть в прошлое на “лихие” 90-е, когда Sun пыталась оседлать перспективные направления, связанные с компьютерами, сетями и сопутствующими технологиями.

Но Патрика не запомнят, как одного из компьютерных гениев, работавших в Sun над Java. А все потому, что на пике своей карьеры в возрасте 34 лет в конце 1999 г. он потеряет всё: семью, престижную работу, бо́льшую часть состояния и репутацию. Причиной тому будет поимка его ФБР и обвинение в педофилии.

Но до этого переломного события еще около трех лет; успех и востребованность начинают кружить голову и кажется, что вся жизнь впереди…

Узнать темное прошлое Java

JPA Entity. Загрузи меня не полностью

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

JPA часто подвергается критике за невозможность загружать сущности частично, что на самом деле является большим заблуждением. Spring Data JPA и Hibernate включают в себя множество инструментов по частичной загрузке сущностей. 

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

Читать далее

Часть 2. TMA на KMP. Пишем кликер для Telegram

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

Telegram Mini Apps (далее - TMA), если просто, то это обычные веб-приложения, которые имеют некоторый ограниченный доступ к API, определяемый Telegram. Из чего следует возможность использовать любой стек, применяемый в разработке веб-приложений. В этой статье мы запустим разработанное в предыдущей статье веб-приложение в Telegram.

Читать далее

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

Сложности масштабирования Kotlin Multiplatform

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

Когда нативные мобильные команды изучают KMP, им довольно просто начать.
Основные трудности возникают, когда они пытаются масштабироваться.
Чтобы получить максимум пользы от KMP как для вашей команды так и для успеха самой платформы KMP, нужно облегчить этот путь.
В этой статье рассмотрим основные сложности и способы их решения.

Читать далее

Настройка почтового сервера Yandex spring boot

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

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

Для начала, нам понадобится почта яндекс. После смотрим, какие конфиги нам нужны тут. Яндекс предлагает создать пароль для нашего приложения. Что мы и делаем по ссылке. При создании пароля, копируем его себе, так как виден он только первый раз.

По сути, с яндексом мы закончили.

Переходим в наш проект. Я предполагаю что у вас уже настроен Spring boot. Так что нужно добавить зависимость для почты. Я использую Gradle, так что у меня это выглядит так:

Читать далее

Кастомная тема Jetpack Compose

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

Уверен, что каждый, кто использовал цветовые схемы в Android приложениях для раскраски интерфейса, хоть раз задавался вопросом "А как можно поменять скучные цвета primary, secondary, tertiary и др. на свои?" В этой статье речь пойдет как раз про использование своей цветовой схемы для работы с приложением.

Читать далее

Часть 1. TMA на KMP. Пишем кликер на Kotlin/JS

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

В этой статье рассмотрю старт проекта как обычное веб-приложение с минимальным функционалом. Остальные функции будут завязаны на Telegram API и веб-приложение сможет запускаться из Telegram.

Читать далее

Делаем навык для Алисы. Alice-ktx

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

Alice-ktx - это библиотека на Kotlin, упрощающая разработку навыков Алисы из Яндекс.Диалогов. В этой статье мы рассмотрим основные возможности библиотеки.

Читать далее

Что нового в Amplicode 2024.2

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

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

* Gutter Icons для Spring-объектов

* Улучшенная генерация Spring Web тестов

* Поддержка Extends и Include в Docker Compose

* Генерация отдельных HTTP-методов для REST-контроллеров

* Поддержка Kubernetes и Helm

Подробнее о каждом из нововведений рассказали в статье.

Читать далее

Compose Desktop ShadowJar

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

По состоянию на 12 августа 2024 года нет хорошего туториала/документации по Compose Desktop ShadowJar.

Существующие руководства помогут настроить ComposeMultiplatform для распространения нативных таргетов.

Но что, если вы хотите использовать ShadowJar, чтобы каждый пользователь мог запустить ваше приложение через .jar?

Дисклеймер: Это руководство предоставит информацию о некоторых частных случаях, но в зависимости от вашего проекта шаги могут отличаться.

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

Читать далее