Kotlin
2.17K subscribers
293 photos
129 videos
18 files
425 links
Подборки полезного материала по Kotlin. По всем вопросам @evgenycarter
Download Telegram
Media is too big
VIEW IN TELEGRAM
Разбор кода: пиксельная погода на Kotlin

Третий выпуск спецпроекта, в котором опытные разработчики Яндекса продолжают разбирать код стажёров и джунов и объяснять, что в нём сделано хорошо, а что ещё можно улучшить.

Сегодня под микроскоп попадает WeatherApp — приложение прогноза погоды с ретровизуалом. Арсений Носов, Android-разработчик в команде Алисы и Умных устройств, тщательно разбирает код и делится полезными советами по работе с ним.

Ссылка на код: https://github.com/ArkhamDm/WeatherApp

Readme кода на Kotlin: https://github.com/ArkhamDm/WeatherApp

✍️ @kotlin_lib
👍1
Model Context Protocol in Kotlin
Alexander Sysoev

MCP is an open protocol that standardizes how applications provide context to LLMs. We've created a Kotlin library that allows you to use this protocol and connect AI models to tooling, like IDEs. Now we will see how it works in practice.

https://www.youtube.com/watch?v=D3hCBrxJHLo

✍️ @kotlin_lib
👍5
Media is too big
VIEW IN TELEGRAM
Kotlin и Compose: многоплатформенные шаблоны для взаимодействия с iOS. Джон О'Рейли

В этом докладе я на реальных примерах расскажу о различных UI- и неUI-шаблонах, которые я применял за последние 5 лет при использовании KMP и CMP на iOS.

источник

✍️ @kotlin_lib
👍3
Media is too big
VIEW IN TELEGRAM
Как обойти множественное наследование в Kotlin и Java. Агрегация и композиция

Предположим нужно наследоваться от многих абстрактных классов в котлин или в джаве. Как можно решить эту задачу? Давайте посмотрим на агрегацию и композицию

источник

✍️ @kotlin_lib
👍3
🔥 Современная оркестрация Kotlin-приложениями

Приглашаем на открытый урок.

🗓 22 октября в 19:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Kotlin Backend Developer. Professional».

Уже прошла эпоха монолита, когда целые компании занимались разработкой одного необъятного приложения. Сейчас любая информационная система насыщена различными сервисами, а микросервисами уже никого не удивишь.
Обязательным атрибутом собеседований стал вопрос про Saga, хореографию и оркестрацию.
И именно эту тему мы разберем на вебинаре в применении к Kotlin-разработке.

Что будет на вебинаре:
- Обсудим как традиционные оркестраторы типа Airflow или Camunda, так новых игроков.
- На практической части вебинара мы разработаем простое приложение, управляемое оркестратором.

🔗 Ссылка на регистрацию: https://vk.cc/cQoC1D

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Media is too big
VIEW IN TELEGRAM
Dissecting Kotlin: Surveying the Latest Stable and Experimental
Huyen Tue Dao

As Kotlin evolves, not only do the features available to us as developers evolve, but so does our understanding of what idiomatic Kotlin is, how we can best leverage new and old features and the semantic and performance impacts of our implementation choices.

In this session, we will examine some of the features released over the last couple of years in Kotlin, dive into their implementations, explore where we may need them and how we might use them, and discuss how these features fit into the broader ideas and themes of Kotlin as a language.

источник

✍️ @kotlin_lib
👍1👎1
🎯 Бизнес-логика приложения на уровне кода

Приглашаем на открытый урок.

🗓 10 ноября в 19:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Kotlin Backend Developer. Professional».

Программа вебинара:

✔️ Что такое бизнес-логика и почему она — сердце вашего приложения.

✔️ Практическое применение шаблона Chain of Responsibility для построения гибкой логики.

✔️ Разработка собственной библиотеки на Kotlin DSL для управления бизнес-процессами.

Вебинар будет полезен:
Backend-разработчикам, архитекторам и IT-предпринимателям

В результате вебинара:
Вы научитесь проектировать и реализовывать гибкую бизнес-логику с помощью шаблона Chain of Responsibility, а также создавать модули, которые легко поддерживать и расширять.

🔗 Ссылка на регистрацию: https://vk.cc/cR0E5V

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
LitmusKt: новый инструмент для тестирования конкурентности в Kotlin

JetBrains Research представила LitmusKt - фреймворк для тестирования конкурентных сценариев в Kotlin. Он помогает исследователям и разработчикам проверять поведение многопоточных программ и JVM-памяти.

LitmusKt основан на идее litmus tests - небольших программ, моделирующих работу нескольких потоков и проверяющих возможные результаты исполнения. Такие тесты позволяют выявить неочевидные эффекты из-за reorderings, кешей и особенностей модели памяти.

Основные возможности LitmusKt:

- Поддержка JVM и Kotlin/Native;
- Встроенные модели памяти (Java, Kotlin, C11, и др.);
- Автоматическая генерация всех возможных интерлеавингов потоков;
- Проверка ожидаемых и неожиданных исходов;
- Интеграция с Kotlin DSL для лаконичного описания тестов.

Пример теста:


litmus("StoreLoad") {
thread("T1") { x = 1; r1 = y }
thread("T2") { y = 1; r2 = x }
outcome { r1 == 0 && r2 == 0 } // недопустимо по Java Memory Model
}


Этот пример проверяет, может ли оба потока одновременно прочитать нули, что нарушает JMM.

Инструмент можно использовать для анализа оптимизаций компилятора, JVM и нового Kotlin Memory Model.

https://blog.jetbrains.com/research/2025/10/litmuskt-concurrency-testing/

✍️ @kotlin_lib
👍7
Kotlin: расширенные функции-расширения для набора инструментов старшего разработчика

Функции-расширения в Kotlin — это мощный механизм, позволяющий добавлять новую функциональность к уже существующим классам без необходимости наследоваться от них. Большинство разработчиков знакомы с базовым применением, однако набор инструментов опытного разработчика должен включать более продвинутые и тонкие решения, которые элегантно и эффективно закрывают распространённые задачи.

Этот материал не о банальных toPx() или showToast() расширениях. Здесь мы углубимся в функции, которые способны существенно переработать ваш код, улучшить читаемость и сократить шаблонный код.

https://pbs009.medium.com/kotlin-custom-extension-functions-for-a-senior-developers-toolkit-110b061a8b43

✍️ @kotlin_lib
1
⌨️ DSL в Kotlin: от теории к практике

Приглашаем на открытый урок.

🗓 20 ноября в 19:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Kotlin Backend Developer. Professional».

Программа вебинара:


✔️ Что такое DSL и зачем он нужен в современной разработке

✔️ Основные элементы Kotlin для создания DSL: лямбды, infix-функции, расширения

✔️ Практические примеры использования DSL в Gradle, Ktor и TeamCity

Вебинар будет полезен:
Бэкенд-разработчикам на Kotlin, тимлидам и всем, кто хочет писать более чистый и поддерживаемый код.

В результате вебинара:
Научитесь создавать собственные DSL и применять их при разработке

🔗 Ссылка на регистрацию: https://vk.cc/cRbOTY

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Media is too big
VIEW IN TELEGRAM
Проектирование Kotlin за пределами выводимого типа | Росс Тейт

Программисты на Kotlin регулярно опускают неинформативные типы в своих программах. Это делает разработку быстрее, код — легче для чтения, а сопровождение — менее трудоёмким. Но это также означает, что язык Kotlin должен быть спроектирован так, чтобы компиляторы могли надёжно принимать программы без этих типовых подсказок. Мы называем это выводом типов, но по определению вывод типов означает, что компилятор должен определить пропущенные типы так, чтобы программа успешно прошла проверку типов.

Но что, если мы можем определить, что программа безопасна, не определяя эти отсутствующие типы? Что, если мы можем сделать это даже тогда, когда таких типов в принципе не существует? И что, если мы можем сделать это эффективнее любого алгоритма вывода типов? Исследуя алгоритмы типизации следующего поколения для Kotlin, мы обнаружили, что можем эффективно выйти за пределы возможностей вывода и проверки типов. Мы разработали алгоритм «type-outference» (внешнего вывода типов), который эффективно определяет «согласованность типов» — свойство, которому удовлетворяют все программы, выводимые и проверяемые по типам (но не наоборот).

Хотя вывод типов остаётся важным для обратной связи и этапа компиляции, согласованность типов — куда более гибкое свойство, а type-outference задаёт ясные принципы для проектирования возможностей языка, которые можно эффективно проверять. В этом докладе, представив ключевые идеи, мы покажем, как они направляют создание ожидаемых и гипотетических возможностей Kotlin: объединённые типы для ошибок, условное наследование для типобезопасного сравнения значимых типов и неявную полиморфность для невыплывающих ссылок.

источник

✍️ @kotlin_lib
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
🤖 Android-приложение на чистой архитектуре: разберём шаг за шагом

Чистая архитектура — это фундамент для масштабируемых Android-приложений. 26 ноября в 20:00 на открытом уроке вы создадите клиент-серверное приложение с нуля и поймёте, как строить код, который не рушится при первом изменении требований.

❗️ Разберём API для скачивания фото и описания, подключим интернет, разделим приложение на слои с использованием MVVM и реализуем логику отображения данных. Если вы уже работаете Android-разработчиком уровня junior и хотите перейти к продвинутым архитектурным решениям — этот вебинар станет отличным стартом.

👉 Вебинар проходит в преддверии старта курса «Android Developer. Professional». Регистрация открыта: https://vk.cc/cRrnFl

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM