Ключевые области партнерства:
👉 Полная null safety для Kotlin и Spring приложений
👉 Официальные материалы обучения по Spring будут использовать Kotlin для примеров
👉 Будут работать над ускорение библиотеки kotlinx.reflect, так как рефлексия активно используется в Spring
👉 Развитие Kotlin DSL для конфигурации
Не понятно во что это выльется для Ktor Server, но явно JB изо всех сил старается повысить популярность языка за пределами мобилки и это жизненно важно для Kotlin
#kotlin #backend #spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71🔥27❤4🙏1
Библиотека от red_mad_robot для фича флагами (анонс тут). Умеет:
👉 Чёткое разделение на remote и local-only флаги
👉 Поддержка нескольких remote-источников (Firebase, HMS, собственный бэкенд)
👉 Детальное логирование
👉 Возможность переопределения значений при разработке и тестировании
👉 Поддержка многомодульности
class ProfileFeatureConfig : FeatureConfig(
name = "profile_feature_config",
description = "Config of features for profile usage"
) {
val isProfileFeatureEnabled: Boolean by toggle(
key = "profile_feature",
description = "show profile entry point for user",
defaultValue = false,
)
val profileFeatureTitle: String by value(
key = "profile_feature_title",
description = "title of profile entry point button",
defaultValue = "Feature number nine",
sourceSelectionStrategy = SourceSelectionStrategy.Any
)
val profileButtonAppearDuration: Long by value(
key = "profile_button_appear_duration",
description = "duration of profile button appearing in ms",
defaultValue = 200,
sourceSelectionStrategy = SourceSelectionStrategy.Any
)
}
Мне также не хватило готово UI модуля для переключения значений фича флагов и значений Remote Config
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27👍7❤1🤔1
Используете Kotlin Contracts при написании API?
Anonymous Poll
50%
Что это?
29%
Знаю, но не использовал(а)
15%
Да, использовал(а) их в своем коде
1%
Другой вариант
6%
Не участвую в опросе
👍3
KSensor - KMP библиотека для работы с сенсорами на Android и iOS. Поддерживает акселерометр, гироскоп. магнитометр, барометр, счетчик шагов, местоположение
#kotlin #kmp #android #ios
val sensors = listof(
SensorType.ACCELEROMETER,
SensorType.GYROSCOPE,
SensorType.MAGNETOMETER,
SensorType.BAROMETER,
SensorType.STEP_COUNTER,
SensorType.LOCATION,
)
// Register sensors
KSensor.registerSensors(
types = sensors,
locationIntervalMillis = {optional. default is 1000L},
onSensorData = { type, data ->
println("Sensor: $type - Data: $data")
},
onSensorError = { error ->
println("Sensor error: ${error.message}")
}
)
// Unregister sensors when no longer needed
KSensor.unregisterSensors(sensors)
#kotlin #kmp #android #ios
👍82❤3
Language Server Protocol (LSP) — это протокол, разработанный компанией Microsoft, который стандартизирует взаимодействие между редакторами кода (например, VS Code, Sublime Text, Neovim) и языковыми серверами, предоставляющими интеллектуальные функции: автокомплит, переходы, показ документации, рефакторинги, форматирование и пр. LSP позволяет разработчикам создать один сервер для работы с языком и делать его интеграцию в IDE.
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍49🔥12🤔6🎉3
Самый простой способ подключения - через Gradle плагин
#kotlin #coroutines
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍7
Какое Java исключение выбросит вызов метода check(false) из стандартной библиотеки ?
Anonymous Quiz
24%
IllegalArgumentException
40%
IllegalStateException
33%
CheckConditionException
4%
Другое исключение
🤔21👍10❤4
🔥 Функции check() и require() в Kotlin — когда и зачем использовать?
В Kotlin Standard Library есть две полезные функции, которые помогают явно выражать условия выполнения кода:
✅ require() — используется для проверки аргументов функции.
✅ check() — используется для проверки внутреннего состояния объекта или логики приложения.
Эти функции выбрасывают исключения, если указанное условие не выполняется:
👉 require() выбрасывает IllegalArgumentException
👉 check() выбрасывает IllegalStateException
📌 Примеры применения:
Важный плюс использования check() и require() — это контракты Kotlin, благодаря которым компилятор лучше понимает состояние переменных после проверки и помогает избежать лишних проверок и ошибок.
Например:
⚠️ Хорошо ли специально выбрасывать исключения?
Выбрасывать исключения — это нормально и полезно, когда приложение попадает в ситуацию, которая явно нарушает его логику. Это помогает выявлять ошибки на ранних стадиях и делать код чище и надежнее. Однако не стоит использовать исключения для управления нормальным потоком программы. Исключения предназначены именно для «исключительных» ситуаций, а не для стандартного поведения.
Считаете ли вы нормальным выбросить исключение или лучше другим путем обработать ошибку? Делитесь в комментариях
#kotlin #stdlib
В Kotlin Standard Library есть две полезные функции, которые помогают явно выражать условия выполнения кода:
✅ require() — используется для проверки аргументов функции.
✅ check() — используется для проверки внутреннего состояния объекта или логики приложения.
Эти функции выбрасывают исключения, если указанное условие не выполняется:
👉 require() выбрасывает IllegalArgumentException
👉 check() выбрасывает IllegalStateException
📌 Примеры применения:
// require() для проверки входных аргументов:
fun calculateArea(width: Int, height: Int): Int {
require(width > 0 && height > 0) {
"Width and height must be positive!"
}
return width * height
}
// check() для контроля состояния внутри объекта:
class Connection {
var isConnected: Boolean = false
fun send(data: String) {
check(isConnected) {
"Cannot send data: not connected!"
}
// отправка данных
}
}
Важный плюс использования check() и require() — это контракты Kotlin, благодаря которым компилятор лучше понимает состояние переменных после проверки и помогает избежать лишних проверок и ошибок.
Например:
val data: String? = getData()
checkNotNull(data) {
"Data must not be null!"
}
// Теперь компилятору гарантировано data != null
println(data.length)
⚠️ Хорошо ли специально выбрасывать исключения?
Выбрасывать исключения — это нормально и полезно, когда приложение попадает в ситуацию, которая явно нарушает его логику. Это помогает выявлять ошибки на ранних стадиях и делать код чище и надежнее. Однако не стоит использовать исключения для управления нормальным потоком программы. Исключения предназначены именно для «исключительных» ситуаций, а не для стандартного поведения.
Считаете ли вы нормальным выбросить исключение или лучше другим путем обработать ошибку? Делитесь в комментариях
#kotlin #stdlib
👍52🤔1
Media is too big
VIEW IN TELEGRAM
Dispatchers.Default
или Dispatchers.IO
Александр Таганов проделал крутую работу и его кейс позволит ускорить ваши приложения!
Также можно посмотреть на
00:00 - Про доклад
02:44 - Долгое ожидание простых операций
12:59 - Разбор причины долгих загрузок
21:30 - Выводы после анализа
24:35 - На что стоит заменить Dispatchers.Main
27:50 - Тестирование разных Dispatcher
#kotlin #coroutines #android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🤯6❤1🔥1
Azul — компания, которая разрабатывает собственные высокопроизводительные версии JVM. Они известны Azul Zulu — OpenJDK-сборкой с расширенной поддержкой, и Azul Prime — JVM с улучшенной производительностью и снижением пауз GC.
#kotlin #jvm #производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43👍6❤3
Розыгрыш книги "Коtlin в действии" 2-е издание с автографом одного из авторов - Романа Елизарова 🤯 Совместно с Yandex For Mobile делаем для вас розыгрыш 2 книг по Kotlin от создателей языка и его экосистемы!
Условия розыгрыша просты
1. Подписать на @kotlin_broadcast
2. Подписаться на @yandexformobile
Итоги подведем 12 июня в @kotlin_broadcast
#розыгрыш
Условия розыгрыша просты
1. Подписать на @kotlin_broadcast
2. Подписаться на @yandexformobile
Итоги подведем 12 июня в @kotlin_broadcast
#розыгрыш
❤50🔥24🤯1
Media is too big
VIEW IN TELEGRAM
0:00 Вступление
0:30 Positional Destructing (есть)
1:09 Named-based destructing (новая)
1:51 Nullability: Safety and ergonomics
3:00 Error class/object (новая)
4:07 Must-use Return Values (новая)
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🤔10❤6🔥4
Forwarded from Vitaliy Zarubin | @keygenqt
#fyi Кто хотел попробовать Kotlin Multiplatform на ОС Аврора? Теперь это можно сделать. В GitLab выложены проекты, упрощающие использование KMP для ОС Аврора. Это только начало, еще многое предстоит сделать, но собрать приложение с базовым функционалом можно уже сейчас, это демонстрирует пример StudentBox.
🤔39👍38🎉8🙏5
🔥33❤1
Forwarded from AvitoTech
Как внедрить в свою работу OKR подход к целеполаганию? Посмотреть наш новый мини-курс 🚀
За 25 минут вы узнаете:
➡️ Что такое OKR и что отличает его от других подходов к целеполаганию;
➡️ Как правильно сформулировать objective и key results;
➡️ Как оценить выполнение в процентах;
➡️ Из каких этапов состоит сам процесс.
Все 5 коротких, но максимально объёмных по наполнению лекций уже лежат по ссылке:
📺 YouTube
🔵 ВК Видео
🎧 RuTube
#tl
За 25 минут вы узнаете:
Все 5 коротких, но максимально объёмных по наполнению лекций уже лежат по ссылке:
#tl
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔11❤3🤯1
Что нового:
👉 Упростили конфигурацию
👉 Улучшили работу со Scope. Дообавили архитипы для Scope
👉 ViewModel Scope интегрировали с механизмом ViewModel auto closable
👉 Появилась возможность проверки конфигурации через через тесты
👉 Поддержка Compose 1.8 и Lifecycle 2.9
👉 Поддеркжа Ktor 3.2
🔗 Альтернативная ссылка
#kotlin #di
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31❤2👍2🤔2
Kotlin Multiplatform Broadcast
Розыгрыш книги "Коtlin в действии" 2-е издание с автографом одного из авторов - Романа Елизарова 🤯 Совместно с Yandex For Mobile делаем для вас розыгрыш 2 книг по Kotlin от создателей языка и его экосистемы! Условия розыгрыша просты 1. Подписать на @kotlin_broadcast…
1. Виктор (@CorobkeCletke)
2. Dmitry (@DmitryBogomazov)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27👍12❤3
Media is too big
VIEW IN TELEGRAM
Аркадий Иванов, автор библиотеки, рассказал историю ее создания и основные принципы и решения, которые выделяют Decompose: максимальная гибкость для соответствия практически любому проекту, отличная масштабируемость на средних и больших проектах, типобезопасность, настолько надежная, что если ваш код компилируется, то, скорее всего, он работает, и, конечно же, тестируемость.
Также из доклада вы узнаете об основных API библиотеки, и поймете, как и почему так просто создавать свои собственные модели навигации. Вы узнаете не только «как», но и «почему».
Независимо от того, работаете ли вы над приложениями для миллионов пользователей или только начинаете с нуля, этот доклад бросит вызов тому, как вы думаете об архитектуре.
#kmp #архитектура #kotlin #mobius
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥39❤10🎉5
Все сессии можно найти в расписании. Пока только на сайте, но там встроен YouTube плеер, так что позже выпустят плейлист. В @kotlin_broadcast буду выкладывать доклады и рассказывать самое интересное
#kotlin #kotlinconf
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍6❤1