implementation("com.github.kittinunf.fuel:fuel:3.0.0-alpha03")Fuel поддерживает основные HTTP-методы: GET/POST/PUT/DELETE/HEAD/PATCH, поддерживает асинхронные и блокирующие запросы, а также имеет массу других возможностей
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Kobweb — это фреймворк Kotlin, построенный на основе Compose HTML.
Kobweb включает в себя все необходимое для создания динамичных веб-сайтов, а также веб-приложений, используя при этом всю экосистему Kotlin.
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1
KVision позволяет создавать современные веб-приложения на Kotlin без использования HTML, CSS и JavaScript. KVision предоставляет большую коллекцию готовых к использованию компонентов GUI, которые можно использовать в качестве блоков для построения пользовательского интерфейса приложения.
KVision полностью поддерживает как реактивные, так и императивные стили программирования. KVision содержит инновационный интерфейс для подключения фреймворков Ktor, Jooby, Spring Boot, Javalin, Vert.x и Micronaut на стороне сервера, что позволяет создавать fullstack-приложения с общим кодом для модели данных и бизнес-логики. KVision активно развивается.
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1
dependencies {
implementation(libs.vico.compose)
implementation(libs.vico.compose.m2)
implementation(libs.vico.compose.m3)
implementation(libs.vico.core)
implementation(libs.vico.views)
}Vico — это легкая расширяемая библиотека Kotlin для создания диаграмм.
Библиотека совместима как с Jetpack Compose, так и с системой представлений, при этом 2 её основных модуля — compose и views, — являются независимыми.
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Anvil упрощает внедрение зависимостей в Dagger за счет автоматического объединения модулей Dagger и интерфейсов компонентов. В общем, вместо того чтобы вручную добавлять модули в компонент Dagger и заставлять компонент Dagger расширять все интерфейсы компонента, эти модули и интерфейсы могут быть включены в компонент автоматически, типо того:
@Module
@ContributesTo(AppScope::class)
class DaggerModule { .. }
@ContributesTo(AppScope::class)
interface ComponentInterface {
fun getSomething(): Something
fun injectActivity(activity: MyActivity)
}
// The real Dagger component.
@MergeComponent(AppScope::class)
interface AppComponent
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Ни одно задание не будет провалено: Spring Boot и Quartz в режиме cluster
Туториал по настройке библиотеки Quartz в режиме кластера в Spring Boot приложении с возможностью отслеживания и управления жизненным циклом задания, в том числе переносом задания в случае необходимости.
Читать статью
Туториал по настройке библиотеки Quartz в режиме кластера в Spring Boot приложении с возможностью отслеживания и управления жизненным циклом задания, в том числе переносом задания в случае необходимости.
Читать статью
Teletype
Ни одно задание не будет провалено: Spring Boot и Quartz в режиме cluster
Ниже будет краткий обзор настройки приложения, написанного на Kotlin + Spring Boot, которое развернуто в кластере в нескольких...
1
Рыночные данные в кармане: как получать их быстро и просто с помощью Java/Kotlin и Spring Boot + TinkoffApi
Если вы хотите написать проект, связанный с рыночными данными или торговлей на бирже, и вы знакомы с Java или Kotlin и слышали про Spring Boot, то эта статья для вас
Читать статью
Если вы хотите написать проект, связанный с рыночными данными или торговлей на бирже, и вы знакомы с Java или Kotlin и слышали про Spring Boot, то эта статья для вас
Читать статью
Teletype
Рыночные данные в кармане: как получать их быстро и просто с помощью Java/Kotlin и Spring Boot + TinkoffApi
Я являюсь автором Spring Boot стартера с помощью которого можно легко интегрировать TinkoffInvestApi в свои Spring Boot приложения...
Kotlin Object Multiplatform Mapper
Складывается такое впечатление, что дописать свою приложение для Android мне суждено не скоро. Каждый раз начиная писать новую версию (так как старая была написана не до конца, использовалась только мной, а через пару-тройку лет простоя - проще написать заново) своего приложения задуманного еще в 2012 году, я сталкиваюсь с ситуацией, что мне не хватает какого-то функционала и начинаю писать свои библиотеки для этого. В первую попытку это был свой ORM (UcaOrm 1, 2, 3). Во вторую KCron - KMP библиотека, реализующая Cron. И вот, начав следующую итерацию, я вновь в таком же положении. Но обо всем по порядку!
Читать статью
Складывается такое впечатление, что дописать свою приложение для Android мне суждено не скоро. Каждый раз начиная писать новую версию (так как старая была написана не до конца, использовалась только мной, а через пару-тройку лет простоя - проще написать заново) своего приложения задуманного еще в 2012 году, я сталкиваюсь с ситуацией, что мне не хватает какого-то функционала и начинаю писать свои библиотеки для этого. В первую попытку это был свой ORM (UcaOrm 1, 2, 3). Во вторую KCron - KMP библиотека, реализующая Cron. И вот, начав следующую итерацию, я вновь в таком же положении. Но обо всем по порядку!
Читать статью
Teletype
Kotlin Object Multiplatform Mapper
Как AI видит Object Mapping
Kotlin Object Multiplatform Mapper: сопоставляем коллекции правильно
После публикации первой статьи я получил несколько отзывов и предложений, некоторые из которых взял в разработку. Первый доработкой стал автоматический маппинг коллекций.
Читать статью
После публикации первой статьи я получил несколько отзывов и предложений, некоторые из которых взял в разработку. Первый доработкой стал автоматический маппинг коллекций.
Читать статью
Teletype
Kotlin Object Multiplatform Mapper: сопоставляем коллекции правильно
Map\'им List\'ы в AI генераторе изображений
Управление контейнерами из Kotlin-тестов
Нередко для выполнения тестов требуется запуск вспомогательных сервисов (баз данных, брокеров очередей и др.) и стандартной практикой в подходах DevOps является запуск тестов внутри управляемого окружения, где сначала создается контейнер с JVM, после чего внутри конвейера CI/CD запускаются вспомогательные контейнеры и сборка Kotlin-приложения с точкой входа для запуска тестов. Однако есть и альтернативное решение - запускать вспомогательные тестовые контейнеры непосредственно внутри JUnit-теста. В этой статье мы обсудим несколько различных подходов к управлению контейнерами из тестов для Kotlin-приложений.
Читать статью
Нередко для выполнения тестов требуется запуск вспомогательных сервисов (баз данных, брокеров очередей и др.) и стандартной практикой в подходах DevOps является запуск тестов внутри управляемого окружения, где сначала создается контейнер с JVM, после чего внутри конвейера CI/CD запускаются вспомогательные контейнеры и сборка Kotlin-приложения с точкой входа для запуска тестов. Однако есть и альтернативное решение - запускать вспомогательные тестовые контейнеры непосредственно внутри JUnit-теста. В этой статье мы обсудим несколько различных подходов к управлению контейнерами из тестов для Kotlin-приложений.
Читать статью
Teletype
Управление контейнерами из Kotlin-тестов
Нередко для выполнения тестов требуется запуск вспомогательных сервисов (баз данных, брокеров очередей и др.) и стандартной практикой...
1
AndroidFoodRecipesGuideTutorial
В данной статье мы создадим простое приложение для отображения списков блюд на платформе Android с использованием языка программирования Kotlin.
Мы погрузимся в увлекательный мир мобильной разработки и научимся использовать различные технологии, включая RecyclerView для отображения списков, фрагменты для организации интерфейса, и многое другое. Наше приложение будет не только функциональным, но и простым в создании благодаря мощным инструментам, которые предоставляет нам Kotlin и Android SDK.
Давайте вместе разберемся, как создать этот простой, но полезный инструмент, который может быть использован в различных контекстах, будь то кулинарное приложение, список покупок или что-то еще. Погнали!
Читать статью
В данной статье мы создадим простое приложение для отображения списков блюд на платформе Android с использованием языка программирования Kotlin.
Мы погрузимся в увлекательный мир мобильной разработки и научимся использовать различные технологии, включая RecyclerView для отображения списков, фрагменты для организации интерфейса, и многое другое. Наше приложение будет не только функциональным, но и простым в создании благодаря мощным инструментам, которые предоставляет нам Kotlin и Android SDK.
Давайте вместе разберемся, как создать этот простой, но полезный инструмент, который может быть использован в различных контекстах, будь то кулинарное приложение, список покупок или что-то еще. Погнали!
Читать статью
Teletype
AndroidFoodRecipesGuideTutorial
В данной статье мы создадим простое приложение для отображения списков блюд на платформе Android с использованием языка программирования...
1
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое функции высшего порядка (higher-order functions), лямбда-выражения (lambda-expressions), анонимные функции (anonymous functions), указатели на методы (method references, bound callable references)?
Функции высшего порядка - это функции, которые принимают функцию в качестве аргумента и/или возвращает функцию в качестве результата
Лямбда выражения - не объявленная функция, которая немедленно используется в качестве выражения
Анонимные функции - альтернативный синтаксис лямбда выражения с иными правилами для выражения return(можно использовать для создания блока кода с несколькими точками выхода )
Указатели на методы - упрощенный синтаксис создания значения функции, вызывающего ровно один метод или обращающегося к свойству.
{p:Person --> p.age} ==Person::age
Функции высшего порядка - это функции, которые принимают функцию в качестве аргумента и/или возвращает функцию в качестве результата
Лямбда выражения - не объявленная функция, которая немедленно используется в качестве выражения
Анонимные функции - альтернативный синтаксис лямбда выражения с иными правилами для выражения return(можно использовать для создания блока кода с несколькими точками выхода )
Указатели на методы - упрощенный синтаксис создания значения функции, вызывающего ровно один метод или обращающегося к свойству.
{p:Person --> p.age} ==Person::age
Какой толк от inline-функций, как компилируется сама функция и места её использования?
Каждая лямбда это анонимный класс с реализацией единственного метода. Если часто вызывать эти лямбды, будет создано много очень классов, а они вообще то занимают память.
Когда функция объявляется с модификатором inline, её тело становится встраиваемым, т.е. оно подставляется вместо обычного вызова функции.
Если отметить функцию модификатором inline, компилятор не будет генерировать вызов функции в месте её использования, а просто вставит код её реализации.
Каждая лямбда это анонимный класс с реализацией единственного метода. Если часто вызывать эти лямбды, будет создано много очень классов, а они вообще то занимают память.
Когда функция объявляется с модификатором inline, её тело становится встраиваемым, т.е. оно подставляется вместо обычного вызова функции.
Если отметить функцию модификатором inline, компилятор не будет генерировать вызов функции в месте её использования, а просто вставит код её реализации.
Делаю навигацию в приложении на Compose
В статье затрагивается тема межмодульной навигации в приложении написанном с применением Jetpack Compose, Compose Navigation и самописного модуля навигации. Задачи, которые преследуются — это сделать максимально независимые между собой модули фичей, которые могут смело переиспользоваться на разных проектах без постоянных доработок по навигации внутри фичей.
Статья является продолжением серии статей про то, как я писал приложение полностью на Compose и применял различные практики, чтобы сделать его максимально похожим на конструктор, части которого можно легко использовать для сборки других приложений.
Читать статью
В статье затрагивается тема межмодульной навигации в приложении написанном с применением Jetpack Compose, Compose Navigation и самописного модуля навигации. Задачи, которые преследуются — это сделать максимально независимые между собой модули фичей, которые могут смело переиспользоваться на разных проектах без постоянных доработок по навигации внутри фичей.
Статья является продолжением серии статей про то, как я писал приложение полностью на Compose и применял различные практики, чтобы сделать его максимально похожим на конструктор, части которого можно легко использовать для сборки других приложений.
Читать статью
Teletype
Делаю навигацию в приложении на Compose
То, о чем пойдет речь ниже, назвать инновацией нельзя. Это, скорее, мое личное видение по навигации между фичевыми модулями, которое...