#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
👍4🔥2🤔2🙏1
Подать заявку можно тут до 31 июля
Проекты получат гранты, если:
👉 Решают важную проблему в экосистеме Kotlin, особенно в KMP
👉 Быстро реагируют на баги, уязвимости и обновления Kotlin/библиотек
👉 Следуют лучшим практикам разработки библиотек
👉 Имеют понятный roadmap развития
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍4
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
🎉57❤8👍8
Автор Kombinator рассказал о том как он делал архитектуру и реализацию библиотеки. Если кому интересно узнать про реализацию кодогенерации на KSP - читайте в статье(EN,6м).
🔗 Альтернативная ссылка
#kotlin
🔗 Альтернативная ссылка
#kotlin
👍9
Библиотека работает на основе генерации кода через 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
👍30🏆2
Forwarded from Подкаст Свободный слот
Верим, что после нашего нового выпуска это миссия станет выполнимой ⚡️
В нём вместе с Ольгой Елисеевой, руководителем технической дирекции, «Инфосистемы Джет», обсудили:
📌 Основные причины появления нового руководителя;
📌 Разницу выхода на новую позицию у лида и инженера;
📌 Способы вхождения в команду;
📌 Откат до инженера после опыта руководства;
📌 И многое другое!
Слушайте выпуск по ссылке на любой удобной платформе😀
📺 Ютуб
🔵 ВК Видео
🎧 Mave
В нём вместе с Ольгой Елисеевой, руководителем технической дирекции, «Инфосистемы Джет», обсудили:
Слушайте выпуск по ссылке на любой удобной платформе
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2
Что нового:
👉 Добавили новые API для задания ограничения потребления памяти, когда приложение в фоне
👉 SvgDecoder может работать со сторонними парсерами SVG
👉 Много минорных улучшений API
👉 Обновлени зависимостей
#kotlin #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍8
Fuzz testing - это подход для автоматичекской генерации тестов со случайными или невалидными входными данными, чтобы проверить неожиданные ошибки и сценарии. Теперь есть официальное решение от JetBrains kotlinx.fuzz
@KFuzzTest
fun testDuration(f: KFuzzer) {
val isoString = f.asciiString(10)
val duration = Duration.parseIsoStringOrNull(isoString)
println("$isoString -> $duration")
}
#kotlin #тестирование
Please open Telegram to view this post
VIEW IN TELEGRAM
❤24👍10
Media is too big
VIEW IN TELEGRAM
Подробный рассказ как в IDEA улучшали интеграцию между IDE и библиотекой Kotlin Coroutines для реализации дебага корутин как синхронного кода
#kotlin #coroutines #idea #kotlinconf25
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔9❤4👍3
🔗 Альтернативная ссылка
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🤯9❤1🙏1
Kotlin-to-Swift экспорт позволяет удобно использовать скомпилированный для Apple таргетов код из Swift удобным образом. Изменение добавили в Kotlin 2.2.20-Beta2
Ключевые фичи:
👉 Поддержка многомодульности: каждый Kotlin модуль - отдельный Swift модуль
👉 Поддержка пакетов в коде
👉 type alias теперь доступны из Swift
👉 Улучшения в nullability с примитивными типами
👉 Вызов перегруженных функций в Kotlin из Swift кода
👉 Можно изменить имя модуля
Фича всё ещё в экспериментальном режиме и для её включения надо выполнить ряд действий (подобно как раньше в XCode проект подключался KMP модуль)
#kotlin #swift #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🔥10🤔1
Теперь общие зависимости (common) можно объявить в dependencies блоке в kotlin {}
kotlin {
@OptIn(ExperimentalKotlinGradlePluginApi::class)
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2")
}
}
#kotlin #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14🔥6🎉2👍1
Kotlin Multiplatform Broadcast
Вот тут много вопросов... Хочется чтобы объявление зависимостей было в корне проекта, как это делается со всеми другими:
но кажется, что из блока Kotlin им не уйти из-за конфликтов с другими объявлениями (не факт что причина такова)
// build.gradle.kts
dependencies {
commonImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2")
androidMainImplementation(...)
jvmImplementation(...)
}
но кажется, что из блока Kotlin им не уйти из-за конфликтов с другими объявлениями (не факт что причина такова)
👍11
В Kotlin Multiplatform проекте теперь можно шарить код между JS и wasmJs таргетами через общий source set - WEB.
Изменение доступно в Kotlin 2.2.20-Beta2
#kotlin #kmp
Изменение доступно в Kotlin 2.2.20-Beta2
#kotlin #kmp
🔥11❤6👍1
В новой бете Kotlin 2.2.20 стабилизирована кроссплатформенная компиляция .klib-артефактов. Теперь публиковать Kotlin-библиотеки можно с любой хост-машины, что значительно упрощает процесс, особенно для Apple-таргетов.
Mac всё ещё потребуется, если проект использует cinterop, CocoaPods или нужно собрать финальные бинарники для Apple. Подробности — в документации.
Если в
gradle.properties
добавляли kotlin.native.enableKlibsCrossCompilation=true
, то теперь можно убрать#kotlin #kmp #klib #native
Please open Telegram to view this post
VIEW IN TELEGRAM
🏆19👍5❤2🤔1
В Kotlin 2.2.20-Beta2 можно попробовать новое поведение при использовании
return
- обязательное объявление возвращаемого типа функции. Новое поведение будет по умолчанию работать в Kotlin 2.3.0// ✅ Возвращаемый типы функции указан. Можно использовать return
fun getDisplayNameOrDefault(userId: String?): String =
getDisplayName(userId ?: return "default")
// ❌ Не компилируется. Используется return без явного указания возвращаемого типа функции
fun getDisplayNameOrDefault(userId: String?) =
getDisplayName(userId ?: return "default")
Готовимся к миграции после обновления языка. Всё во славу большей стабильности нашего кода
#kotlin #kotlin_2_3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🤔26🤯7🏆4