This media is not supported in your browser
VIEW IN TELEGRAM
Подключаете зависимости и делается инициализацию
val client = HttpClient(engine) {
// body
install(LensHttpLogger){
level = LogLevel.ALL
}
}
#kotlin #kmp #ktor
Please open Telegram to view this post
VIEW IN TELEGRAM
❤42👍16🔥7
Библиотека для пагинации от Google уже давно обзавелась поддержкой iOS и Desktop, а вот в будущей версии и закроются остальный части, кроме JS и WASM.
#android #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24❤4
Уже успели попробовать в продакшен проектах Kotlin Context Parameter? Появились в Kotlin 2.2.0 в экспериментальном режиме. Делитесь впечатлениями
// UserService defines the dependency required in the context
interface UserService {
fun log(message: String)
fun findUserById(id: Int): String
}
// Declares a function with a context parameter
context(users: UserService)
fun outputMessage(message: String) {
// Uses log from the context
users.log("Log: $message")
}
// Declares a property with a context parameter
context(users: UserService)
val firstUser: String
// Uses findUserById from the context
get() = users.findUserById(1)
❤10👍5
Какая версия Kotlin в вашем основном проекте?
Anonymous Poll
18%
Kotlin 2.2
34%
Kotlin 2.1
19%
Kotlin 2.0
17%
Kotlin 1.x
2%
Нету Kotlin вообще
1%
Не пишу код
0%
Другой вариант
8%
Не участвую в опросе
👍13
Kotlin Contracts - это фича Kotlin, которая даёт компилятору дополнительную информацию про методы, что позволяет лучше понимать работу кода.
а вот так будет выглядеть вторая версия контрактов
Про вторую версию контрактов можно почитать в статье (9м)
#kotlin
private fun sample(value: Value?): Boolean {
contract {
returns(true) implies (request != null)
}
...
}
а вот так будет выглядеть вторая версия контрактов
fun checkAndRun(x: Any, block: (x: String) -> Unit): Boolean contract [
callsInPlace(block, AT_MOST_ONCE),
returns(true) implies (x is String)
] {
if (x is String) {
block()
return true
} else {
return false
}
}
Про вторую версию контрактов можно почитать в статье (9м)
#kotlin
👍35🔥1
Вы знаете, что klib после компиляции Kotlin Native не содержит скомпилированный код, а только IR, который потребует компиляции каждый раз при сборке проекта? 🤯
Если вы хотите больше погрузиться в том как работает компиляция Kotlin Native, то советую изучить статью(EN,10м)
🔗 Альтернативная ссылка
#kotlin #native
Если вы хотите больше погрузиться в том как работает компиляция Kotlin Native, то советую изучить статью(EN,10м)
🔗 Альтернативная ссылка
#kotlin #native
👍16🤔2❤1
Kotlin/JVM
👉 when expressions теперь будет компилироваться в более оптимизированный байтвод с использованием invokedynamic
invokedynamic — это байткод-инструкция JVM, позволяющая при первом запуске динамически связать вызов через bootstrap-метод, а затем выполнять его так же быстро, как обычный виртуальный метод, что даёт лямбдам и динамическим языкам нативную производительность.
Улучшения для Kotlin/Native
👉 Добавлена поддержка stack canaries в итоговый Koltin/Native бинарник, что повышает безопасность (нужно включение через флаг)
👉 Уменьшение размера бинаря для iOS таргета (нужно включение через флаг). Под капотом используется оптимизация -Oz для LLVM компилятора
👉 Улучшение информации об объектов в Kotlin/Native для дебагеров LLDB v GDB
Kotlin/WASM
👉 Отделили npm зависимости: ранее все npm зависимости устанавливались вместе в папку проекта. Теперь установка будет общей для всех всех проектов в папке в USER HOME
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍11❤2
Вышел KtLint 1.7.0 с поддержкой Kotlin 2.2.0
Что нового в свежей версии инструмента для анализа качества Kotlin кода
👉 Добавили поддержку Kotlin Context Parameters
👉 Отключили по умолчанию правило no-unused-import
🛠 Обновление зависимостей, небольшие улучшения., исправление багов
#kotlin
Что нового в свежей версии инструмента для анализа качества Kotlin кода
👉 Добавили поддержку Kotlin Context Parameters
👉 Отключили по умолчанию правило no-unused-import
🛠 Обновление зависимостей, небольшие улучшения., исправление багов
#kotlin
🔥17
Forwarded from Android Broadcast
В версии Jetpack Lifecycle 2.9.2 добавили поддержку WasmJS тартега, а это значит что библиотека теперь может работать на всех KMP таргетах: JVM (Android, Desktop), Native (Linux, iOS, watchOS, macOS, MinGW) и Web (JavaScript, WasmJS)
#android #kmp @wasmjs #jetpackupdate
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥39👍19
Что нового:
👉 Сохранение состояния агента на диске
👉 Поддержка векторного хранилища для документов
👉 Поддержка Native OpenTelemetry
👉 Интеграция Spring Boot
👉 Параллельное выполнение задач
👉 Модерация и observability из коробки
👉 Множество других фичей
#kotlin #ai
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24👍5🤔1
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Фестиваль для мобильных разработчиков от Яндекса. Забудь скучные доклады — бери ноутбук и погружайся в практику!
Создай готовый продукт с ИИ-ассистентами за 5 часов. Экспертное жюри в лице Дмитрия Мовчана, руководителя мобильной разработки в Дзене, Геннадия Евстратова, руководителя проектов в Яндексе, Анны Жарковой, руководителя практики по мобильной разработке в Usetech, и др. выберет победителя! Регистрация на хакатон отдельная.
Еще крутое в программе:
Отдохнуть и перезагрузиться в чилл-зонах от сервисов:
Мидлы и сеньоры 👉 Регистрация открыта!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🤔2🔥1🙏1
Подать заявку можно тут до 31 июля
Проекты получат гранты, если:
👉 Решают важную проблему в экосистеме Kotlin, особенно в KMP
👉 Быстро реагируют на баги, уязвимости и обновления Kotlin/библиотек
👉 Следуют лучшим практикам разработки библиотек
👉 Имеют понятный roadmap развития
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍3
Forwarded from Информатика • Алексей Гладков
#вехи_истории
🗓 22.07.2011 — Релиз Kotlin
👩💻 Компания JetBrains представила новый статически типизированный JVM-язык программирования — Kotlin. Его разработка началась с целью устранить недостатки Java и предложить современный, лаконичный и безопасный язык для разработки серверных программ, Android‑приложений и многоплатформенных решений (в дальнейшем).
🏝 Kotlin получил имя в честь острова Котлин в Финском заливе. Язык с самого начала разрабатывался как open-source, что помогло ему быстро обрести популярность в сообществе. Одной из его ключевых особенностей стала интерпретируемость (совмесимость) с Java: проекты на Java могли легко интегрировать код на Kotlin без переписывания всего приложения.
👨💻 В 2017 году Google официально добавил Kotlin как язык для разработки Android, что стало переломным моментом в его истории. Сегодня Kotlin используется миллионами разработчиков, поддерживает серверные и веб‑приложения, а также активно развивается в направлении Kotlin Multiplatform, делая возможной разработку приложений для Android, iOS, Web и Desktop.
🩵 Всех, кто разрабатывает программы на Kotlin - с праздником)
📼 Истории известных разработчиков, которые не применяли ИИ-инструменты для создание чего-то нового - уже на канале:
1️⃣ Я - создатель Яндекса. Реальная история Ильи Сегаловича
YouTube | VkVideo
2️⃣ Удивительная история Android! Вы этого НЕ ЗНАЛИ
YouTube | VkVideo
3️⃣ Насколько ОПАСЕН ИИ?
YouTube | VkVideo
YouTube | VkVideo | Telegram | Pikabu
YouTube | VkVideo
YouTube | VkVideo
YouTube | VkVideo
YouTube | VkVideo | Telegram | Pikabu
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉51👍7❤6
🤖 Тратите месяцы на то, что можно подключить за час?
Пора выкинуть устаревший подход:
🔥 Современный разработчик не кодирует инфраструктуру — он собирает приложение из готовых решений, фокусируясь только на уникальной бизнес-логике.
⚡ Узнайте на открытом вебинаре:
→ Какие 5+ компонентов бессмысленно писать самому в 2020-х
→ Как работать в 10x темпе, используя облачные сервисы и готовые инструменты
→ Где грань между "кастомным кодом" и "изобретением велосипеда"
🗓 30 июля | 19:00 МСК
🆓 Урок от курса «Kotlin Backend Developer. Professional»
🎁 Ваш бонус:
Сразу после урока — готовые инфраструктурные файлы (подходят для Kotlin, Java, Python и др.), которые сэкономят вам 100+ часов.
🔗 Ссылка на регистрацию
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Пора выкинуть устаревший подход:
🔥 Современный разработчик не кодирует инфраструктуру — он собирает приложение из готовых решений, фокусируясь только на уникальной бизнес-логике.
→ Какие 5+ компонентов бессмысленно писать самому в 2020-х
→ Как работать в 10x темпе, используя облачные сервисы и готовые инструменты
→ Где грань между "кастомным кодом" и "изобретением велосипеда"
🎁 Ваш бонус:
Сразу после урока — готовые инфраструктурные файлы (подходят для Kotlin, Java, Python и др.), которые сэкономят вам 100+ часов.
🔗 Ссылка на регистрацию
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Автор Kombinator рассказал о том как он делал архитектуру и реализацию библиотеки. Если кому интересно узнать про реализацию кодогенерации на KSP - читайте в статье(EN,6м).
🔗 Альтернативная ссылка
#kotlin
🔗 Альтернативная ссылка
#kotlin
👍7
Библиотека работает на основе генерации кода через KSP. Может быть полезна для тестов, чтобы проверять разные входные данные.
// Уровень класса @Kombine: Задает значения по умолчанию для свойств
// без аннотаций и без дефолтных значений property
@Kombine(
allPossibleIntParams = [100],
allPossibleStringParams = ["system"],
)
data class ScreenConfig(
// Аннотация на уровне свойства переопределяет уровень класса для 'theme'
@Kombine(allPossibleStringParams = ["light", "dark", "auto"])
val theme: String,
// Есть значение по умолчанию, Kombinator будет использовать ТОЛЬКО "portrait"
val orientation: String = "portrait",
// Нет аннотации @Kombine и значения по умолчанию.
// Будет использовать значение уровня класса: [100]
val padding: Int,
// Аннотация на уровне свойства переопределяет уровень класса для 'fontSize'
@Kombine(allPossibleIntParams = [12, 16, 20])
val fontSize: Int,
// Нет аннотации @Kombine и значения по умолчанию.
// Будет использовать значение уровня класса: ["system"]
val fontFamily: String,
)
#kotlin #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26🏆1
Forwarded from Подкаст Свободный слот
Верим, что после нашего нового выпуска это миссия станет выполнимой ⚡️
В нём вместе с Ольгой Елисеевой, руководителем технической дирекции, «Инфосистемы Джет», обсудили:
📌 Основные причины появления нового руководителя;
📌 Разницу выхода на новую позицию у лида и инженера;
📌 Способы вхождения в команду;
📌 Откат до инженера после опыта руководства;
📌 И многое другое!
Слушайте выпуск по ссылке на любой удобной платформе😀
📺 Ютуб
🔵 ВК Видео
🎧 Mave
В нём вместе с Ольгой Елисеевой, руководителем технической дирекции, «Инфосистемы Джет», обсудили:
Слушайте выпуск по ссылке на любой удобной платформе
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3