—
implementation 'io.github.oshai:kotlin-logging-jvm:5.1.0'
kotlin-logging предоставляет обертку для slf4j-api для использования классами Kotlin; при этом kotlin-logging имеет такие преимущества:
— нет необходимости писать шаблонный код, содержащий имя логгера и класса или имя логгера
— простой способ регистрации сообщений в виде строки с ленивой оценкой с помощью лямбда-выражения
{}
— все предыдущие реализации slf4j по-прежнему могут быть использованы
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1
—
pip install lets-plot
Графики, созданные с помощью lets-plot можно встраивать в JVM (Swing, JavaFX) и Kotlin/JS-приложения.
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1
github-workflows-kt поможет писать типобезопасный код на Kotlin для организации надежных рабочих процессов, планирования GitHub Actions и т.д.
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1
dependencies {
testImplementation("io.strikt:strikt-core:<version>")
}
Strikt — это библиотека Kotlin для работы с assertion в тестах;
предназначена для использования с такими компонентами как JUnit, Minutest, Spek или KotlinTest.
Strikt опирается на свободный стиль утверждений, похожий на AssertJ, но не использует сложную иерархию классов для построения утверждений.
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Landscapist обеспечивает загрузку и отрисовку изображений с помощью 3 компонентов: Glide, Coil и Fresco.
Landscapist поддерживает отслеживание состояний загрузки изображений.
Библиотека также предоставляет разные удобные анимации, включая кроссфейды, трансформации размытия и многие другие.
А ещё Landscapist позволяет гибко управлять загрузкой изображений с помощью массы плагинов
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1
—
brew install ktlint
Вообще, это довольно известный линтер, но если вдруг кто не знал — обязательно попробуйте
Особенности ktlint:
— не требует настройки; уже из коробки ktlint позволяет отслеживать соблюдение соглашений по стилю — Android Kotlin Style Guide
— ktlint позволяет легко создать собственные наборы правил; при необходимости эти правила можно легко отключить
— в ktlint встроен форматтер, который исправляет неправильное написание кода, когда это возможно
— настраиваемый вывод; из коробки доступны несколько отчетов форматов вывода
plain
, plain-summary
, json
, html
и checkstyle
; также без проблем можно создать собственный формат вывода@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1
dependencies {
implementation "com.ncorti:slidetoact:0.11.0"
}
— полностью векторный, никаких .png
— поддерживаются разные анимации
— легко интегрируется (просто строка компиляции gradle)
— подстраивается под тему приложения
— можно использовать из коробки, всё будет работать
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Позволяет выбирать отдельные файлы, или целые папки, позволяет учитывать нужный формат (скажем, только
.png
)Для каждой платформы FileKit использует собственный API для выбора файлов, чтобы обеспечить корректную работу.
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
2
http4k — это легкий, но полнофункциональный набор инструментов для работы с HTTP, написанный на чистом Kotlin.
http4k позволяет писать приложения как простые функции Kotlin. Например, так выглядит простой эхо-сервер:
val app: HttpHandler = { request: Request -> Response(OK).body(request.body) }
val server = app.asServer(SunHttp(8000)).start()
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Calendar — это гибко настраиваемая библиотека календаря для Android, опирающаяся на
RecyclerView
для просмотра и LazyRow
/LazyColumn
для создания календаря.@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Kvaesitso — это open-source Android лаунчер с акцентом на возможности поиска
Можно взять Kvaesitso за основу и использовать в своих проектах, благо лицензия GPL-3.0
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1
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
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
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Она использует
fluent API
, что упрощает построение простых и безопасных тестов с помощью Kotlin-расширений.Arrow, Jackson, MockK и Spring
, что делает её гибким инструментом для тестирования различных типов данных и компонентов@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1
@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1