Обновить
76.78

Kotlin *

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

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

Управление настройками с помощью Jetpack DataStore: Простой подход к сохранению данных разных типов

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

Всем здравствуйте. Это моя первая статья на такую публику, поэтому просьба не судить строго! :-)

При разработке Android-приложений часто возникает необходимость сохранять пользовательские настройки, такие как выбор темы, язык или другие данные пользователя. Jetpack DataStore — это современное решение для хранения таких данных, которое заменяет устаревший SharedPreferences. В этой статье мы рассмотрим, как использовать DataStore для хранения различных типов данных (Boolean, Integer, Float и String) и как интегрировать его с архитектурой MVVM, используя StateFlow для обновления UI.

Что такое DataStore?

Jetpack DataStore — это библиотека для хранения данных, поддерживающая асинхронное и безопасное чтение и запись данных. Она предоставляет два типа хранилищ:

1. Preferences DataStore: Используется для хранения пар "ключ-значение" (похож на SharedPreferences).

2. Proto DataStore: Используется для хранения структурированных данных на основе протокольных буферов.

В этой статье мы сосредоточимся на Preferences DataStore, которое идеально подходит для хранения настроек приложения.

Читать далее

Amplicode становится платным (и остается бесплатным)

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

Практически год с момента публичного релиза в апреле все возможности Amplicode были доступны любому разработчику абсолютно бесплатно.

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

В новой статье мы рассказали, какая часть возможностей Amplicode останется бесплатной, что войдет в состав платной версии, сколько будет стоить подписка и кто может рассчитывать на скидки до 100%.

Читать далее

Постквантовая криптография в Java

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

Команда Spring АйО перевела статью про новые возможности грядущей версии Java 24, в которой появятся два JEP — 496 и 497, посвященные алгоритмам, устойчивым к квантовым атакам. 

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

Читать далее

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

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

Всем привет! На связи Дима Котиков, и это вторая статья из цикла про File Templates. В предыдущей части мы описали проблему с необходимостью написания шаблонного кода и вариантами решения, познакомились с инструментом шаблонов File Templates и разобрали синтаксис написания шаблонов.

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

Читать далее

Jakarta Data и Persistence: Инструменты, которые меняют подход к работе с данными

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

Команда Spring АйО перевела и адаптировала доклад "Jakarta Data and Jakarta Persistence by Gavin King" Гевина Кинга с последнего Devoxx.

В своем выступлении Гевин Кинг рассказал о преимуществах и нововведениях Jakarta Data и Jakarta Persistence.

Читать далее

Kotlin Coroutines под капотом: отмена корутин

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

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

Читать далее

Реализация SWAP токенов в сети Fuel: первый опыт с Rust, интеграция Mira SDK, боль

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

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

Ко мне обратился товарищ с просьбой реализовать Telegram-бота, который позволял бы покупать криптовалюту по контракту в сети Fuel.
Подобные боты уже существуют, например, на Solana, но мы решили попробовать что-то новое — интеграцию на недавно вышедшей сети Fuel, так как ее экосистема бурно расширяется и подключается множество разработчиков к ее развитию.

Читать далее

Морфинг геометрических фигур с SDF в фрагментных шейдерах GLSL и визуализацией на Jetpack Compose

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

Создание динамичных визуальных эффектов для мобильных приложений требует от разработчиков не только творческого подхода, но и соблюдения требований к производительности. Одной из наиболее эффективных техник для реализации плавных переходов и трансформаций объектов является использование шейдеров, которые позволяют выполнять сложные параллельные вычисления на GPU. Это не только обеспечивает плавность анимаций, но также может снизить нагрузку на CPU, делегируя ресурсоемкие задачи графическому процессору в определенных сценариях, что особенно важно для мобильных устройств с ограниченными ресурсами.

В данной статье будет рассмотрен пример реализации плавной анимации морфинга геометрических фигур с использованием SDF (Signed Distance Functions) и GLSL для графического рендеринга.

Читать далее

Уменьшаем написание boilerplate с помощью File Templates

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

Всем привет! На связи Дима Котиков, и я все еще люблю разбираться в технологиях, разрабатывать под Android и KMP и пить латте на фундучном молоке :)

Рассказываю о генерации файлов с boilerplate-кодом с помощью удобного механизма задания File Templates в средах разработки Intellij. File Templates позволяет в пару кликов создавать несколько файлов с каким-либо boilerplate-кодом. Хоть статья приводит примеры создания File Templates для Android/Kotlin Multiplatform, она может быть полезна всем, кто работает в средах разработки от Intellij.

Читать далее

Управление событиями в ViewModel с помощью StateFlow, SharedFlow и Channel

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

Сообщество Android-разработчиков уже долгое время ведёт жаркие споры о том, что лучше использовать в ViewModel для представления событий: StateFlow, SharedFlow или Channel. В этой статье мы разберёмся в различиях между этими тремя подходами и определим, какой из них наиболее подходит для ваших нужд.

Читать далее

Decompose: покоряем Generic-навигацию на примере навигации по вкладкам

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

Разберемся, как работать с Generic Navigation, которую предоставляет Decompose, на примере табов — навигации, часто используемой браузерах.

Generic Navigation помогает управлять жизненным циклом дочерних компонентов через концепцию навигации — некоторое поведение, привычное пользователю.

Читать далее

Алло! Реализуем дисковый телефон с помощью Jetpack Compose(Обновлено)

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

Привет, Хабр! Меня зовут Артем, я автор и ведущий YouTube и Telegram каналов Android Insights.

Данная статья - идейный продолжатель моей предыдущей статьи Создание Custom Layout в Jetpack Compose

Сегодня мы создадим настоящий дисковый телефон с помощью Jetpack Compose! Вы узнаете, как реализовать жесты, анимации и механику вращения диска, чтобы получить максимально аутентичный опыт взаимодействия со старым добрым телефоном в современном Android приложении.

Читать далее

Подходы к созданию ViewModel в Android

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

В данной статье будут рассмотрены способы создания ViewModel (далее VM) в Android, а также usecase для каждого подхода.

Читать далее

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

Героические цивилизации — пишу гибрид двух легендарных игр

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

Всем привет! Я решил написать компьютерную игру и хочу в этой статье поделиться задумкой, тем, чего уже удалось добиться и пригласить желающих присоединиться. Идея - соединить две любимые стратегии: Цивилизацию и Героев меча и магии в единый концепт, чтобы объединить плюсы обоих игр и получить много новых игровых механик.

Читать, куда уже продвинулась игра

Mapping классов с помощью плагина MapCraft в Android Studio

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


Лично меня всегда утомляла рутинная работа по созданию mapper-ов между дата классами. Особенно такого кода много, когда пишешь по Clean Artitecture. Разделяя слои. И на каждый слой создаётся куча сущностей. Очень часто в таких ситуациях эти классы просто дублируются.

Читать далее

Эффект скрэтч-карты в Jetpack Compose

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

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

Читать далее

Разработка плагина для Android Studio

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

В современном мире разработка программного обеспечения становится всё более сложной и многообразной. Одним из ключевых инструментов, используемых для создания мобильных приложений, является Android Studio. И помимо стандартных возможностей, Android Studio позволяет разработчикам расширять функциональность своей среды с помощью плагинов.

Читать далее

Старый добрый серверный рендеринг

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

Старый-добрый серверный html-рендеринг и строготипизированная маршрутизация для Kotlin. Подойдёт не всем.

Читать далее

Как жить без IntelliJ IDEA? Часть №5. Заключение

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

Наступил конец года и вместе с ним завершается наш цикл статей. Команда Spring АйО рассмотрела некоторые последствия ухода Ultimate IDEA из РФ и как с этим теперь жить.

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

Читать далее

Автогенерация тестов для Java/Kotlin в IntelliJ IDEA: сравнение AI-инструментов

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

Для большинства разработчиков тесты – это нелюбимая часть работы. Недавно мы убедились в этом, опросив больше 400 разработчиков на конференциях Joker и Heisenbug об их отношении к AI-инструментам для тестирования. В статье расскажем, что еще интересного мы от них узнали, а также какие существуют AI-инструменты для автоматической генерации тестов, какие у них есть плюсы и минусы.

Читать далее