Kotlin developer
5.88K subscribers
23 photos
1 video
1 file
1.24K links
Канал Kotlin посвящён изучению и применению языка программирования Kotlin в различных областях

По всем вопросам пишите @itru1
Download Telegram
#вакансия #удалённо #parttime #преподаватель

Вакансия: преподаватель онлайн-курса Kotlin Backend Developer. Professional

Образовательная платформа OTUS расширяет команду экспертов (уже более 600 человек) и ищет опытных бэкенд-разработчиков на Kotlin, которым интересно делиться опытом.

Преподавательский опыт не обязателен — методист научит вас всему необходимому.

Обязанности:
- подготовиться к занятиям (темы на выбор, материалы предоставляются);
- преподавать онлайн, уделяя большое внимание практике. Так вы сможете структурировать опыт, развить навык публичных выступлений и обратной связи.

Условия:
гибкий график, легко совмещать с основной работой, занятия в вечернее время;
оплата от 4000 до 6000 руб. за 1,5 часа занятия;
бонусы: доступ к курсам OTUS, нетворкинг, развитие личного бренда, воркшопы и конференции.

Обсудить подробнее: @yu_grin 🦉
Серия вебинаров по серверной разработке на Kotlin. Продолжение

Статья рассказывает о новой версии популярной среды разработки от JetBrains — IntelliJ IDEA. В ней описываются нововведения, которые призваны сделать работу программистов более удобной и эффективной.

Читать...
Кофе и крабы. Вызов Rust-кода из Java

Читать...
Есть ли функции на Server Driven UI (SDUI, он же BDUI) в вашем приложении?
Anonymous Poll
34%
Да
51%
Нет
7%
Не знаю
1%
Не занимаюсь разработкой
8%
Не участвую в опросе
Media is too big
VIEW IN TELEGRAM
📹 Отрывок Kotlin Conf Keynote с рассказом про будущие фичи в Kotlin. Что-то увидем осенью 2025, а что-то ждать больше года 🤯

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
👩‍💻 Ktorm — минималистичный ORM для Kotlin-разработчиков. Этот фреймворк предлагает принципиально иной подход к работе с базами данных: вместо сложных конфигураций и магии аннотаций здесь чистый Kotlin-код с типизированным SQL DSL.

При этом фреймворк не абстрагируется от SQL, а аккуратно его дополняет: вы всегда видите, какой запрос будет выполнен, но пишете его на понятном Kotlin. Встроенная поддержка пагинации, агрегаций и транзакций делает Ktorm готовым к использованию в production.

@KotlinSenior #kotlin
👩‍💻 kotlin-math — набор API в Kotlin, предназначенных для упрощения выполнения математических операций, связанных с графикой!

🌟 Эти API в основном моделируются по аналогии с GLSL (OpenGL Shading Language), что облегчает перенос кода в шейдеры и обратно. Предоставляемые типы данных предназначены для использования в качестве значимых типов, а большинство API представлены в виде функций верхнего уровня, а не методов.

🔐 Лицензия: Apache-2.0
Допускали ли вы баги (креши, некорректное поведение и прочее) по причине игнорирования возвращаемого значения в функции?
Anonymous Poll
33%
Да
36%
Нет
8%
Затрудняюсь ответить
22%
Не участвую в опросе
💻 Vico — создание диаграмм и графиков на Kotlin

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, — являются независимыми.

🖥 GitHub
🟡 Wiki

@KotlinSenior #kotlin
Что такое мульти-декларации (destructuring declarations)?

Мульти-декларации (destructuring declarations или деструктуризирующее присваивание) — это способ извлечения значений из объекта и присвоения их сразу нескольким переменным. В Kotlin этот механизм поддерживается с помощью оператора распаковки (destructuring operator) — componentN(), где N — номер компонента.

При создании data класса Kotlin автоматически создает функции componentN() для каждого свойства класса, где N — номер позиции переменной в конструкторе. Функции componentN() возвращают значения свойств в порядке их объявления в конструкторе. Это позволяет использовать мульти-декларации для распаковки значений свойств и присваивания их отдельным переменным.

Например, если у нас есть data класс Person с двумя свойствами name и age, мы можем использовать мульти-декларации, чтобы извлечь эти свойства и присвоить их двум переменным:

data class Person(val name: String, val age: Int)

val person = Person("Alice", 29)
val (name, age) = person

println(name) // Alice
println(age) // 29

Также можно использовать мульти-декларации в циклах, чтобы итерироваться по спискам объектов и распаковывать значения свойств:


val people = listOf(Person("Alice", 30), Person("Bob", 40))
for ((name, age) in people) {
println("$name is $age years old")
}

// Alice is 30 years old
// Bob is 40 years old


Мульти-декларации также могут быть использованы с массивами и другими коллекциями:

val list = listOf("apple", "banana", "orange")
val (first, second, third) = list

println(first) // apple
println(second) // banana
println(third) // orange
гиф-дринк-ап-НН.gif
33.8 MB
Есть вариант на 27 августа — DrinkUp от Авито для backend-разработчиков в Нижнем Новгороде ☄️

Встречаемся в 19:00 в DKRT space, чтобы в формате дискуссий обсудить:
➡️ как правильно структурировать проекты;
➡️ кому и как проще вкатиться в Go и почему он такой странный;
➡️ как LLM помогает разработчикам.

Остальные темы раскрывать не будем — можете посмотреть их по ссылке! Там же, кстати, и регистрация на ивент.
readline4k - Kotlin/Native библиотека для разработки консольных интерактивных приложений для Desktop

val history = "history.txt" // Filesystem path to the history file.

// Configure the LineEditor.
val config = LineEditorConfig(
maxHistorySize = 100,
completionType = CompletionType.LIST,
// See the documentation for more options.
)

// Create a new LineEditor instance.
val editor = SimpleLineEditor(
linePrefix = "> ",
config = config,
).also { editor ->
// Set up the completer and highlighter.
editor
// Provides file completion (optional).
.withCompleter(SimpleFileCompleter())
// Provides color highlighting (optional).
.withHighlighter(SimpleHighlighter())

// Load the history from the disk (throws LineEditorError if it fails).
editor.loadHistory(history).getOrThrow()
}

println("Welcome to the LineEditor example!")
println("Press Ctrl+C to exit")

while (true) {
// Read a line from the user.
editor.readLine()
.onFailure { err ->
// err is a LineEditorError
println(err.message)
break

}
.onSuccess { line ->
// We can also add the line to the history
// automatically by setting autoAddHistory = true in the config.
editor.addHistoryEntry(line)
println(line)
}
}

// Save the history to disk.
editor.saveHistory(history)


#kotlin #native #cli