Вышел Kotlin 1.7.20
👉 K2 компилятор стал поддерживать множество компиляторных плагинов
🔥 Новая модель памяти Kotlin/Native теперь стабильная и работают по умолчанию!!! Работать с корутинами в Native теперь намного проще
👉 Поддержка Gradle 7.1
👉 [Preview] оператора ..< для создания открытых интервалов (range)
👉 [JVM Preview] Inline классы с generic типами
📺 Видео версия (11 мин)
📌 Полный список изменений
📌 Release notes GitHub
Подробнее новые фичи разберу в отдельных постах в @kotlin_broadcast
👉 K2 компилятор стал поддерживать множество компиляторных плагинов
🔥 Новая модель памяти Kotlin/Native теперь стабильная и работают по умолчанию!!! Работать с корутинами в Native теперь намного проще
👉 Поддержка Gradle 7.1
👉 [Preview] оператора ..< для создания открытых интервалов (range)
👉 [JVM Preview] Inline классы с generic типами
📺 Видео версия (11 мин)
📌 Полный список изменений
📌 Release notes GitHub
Подробнее новые фичи разберу в отдельных постах в @kotlin_broadcast
👍26🤔2🎉2
TouchLab представили KMMBridge - набор Gradle инструментов для помощи в публикации и использования pre-build KMM Xcode Framework бинарников
👉 Документация
👉 Исходный код на GitHub
#kmm #gradle
👉 Документация
👉 Исходный код на GitHub
#kmm #gradle
🔥5🤔2
Forwarded from Android Broadcast (Кирилл Розов)
Сборник лучших практик по использованию Gradle, который содержит банальщину вроде "используйте самую свежую стабильную версию" до управления зависимостями, ленивой инициализации и кэширования
#gradle
#gradle
👍15
Вышел Kotlin 1.8.0
👉 Отключение оптимизаций кода при компиляции. Предназначено для лучшего дебага кода
👉 Полностью удален старый бэкенд компилятора
👉 Поддержка аннотации @Builder из Lombok
👉 Поддержка XCode 14.1
👉 Улучшение интеропа с Obj-С и Swift
👉 В KMM заменили схему расположения сырцов в Android, но она отключена по умолчанию
👉 IR бэкенд JS компилятора теперь стабилен
👉 Улучшена скорость работы kotlin-reflect
👉 Kotlin теперь поддерживает только JVM target 1.8. Стандартных библиотек под 1.6 и 1.7 не публиковалось. Теперь только один артефакт -
👉 Обновление документации
🔨 Gradle (подробности)
👉 Поддержка Gradle 7.2 и 7.3.
👉 Миграция опций компилятора на Gradle Lazy Property для соотвествия современным требованиям плагинов
👉 Все подключенные стандартные библиотеки Kotlin теперь по умолчанию будут совпадать с версией подключенного Kotlin плагина
👉 Возможность отключить fallback стратегию в Kotlin компиляторе
Поддерживается в Android Studio Electric Eel (221), Flamingo (222) и IntelliJ IDEA 2021.3, 2022.1, 2022.2
👉 Отключение оптимизаций кода при компиляции. Предназначено для лучшего дебага кода
👉 Полностью удален старый бэкенд компилятора
👉 Поддержка аннотации @Builder из Lombok
👉 Поддержка XCode 14.1
👉 Улучшение интеропа с Obj-С и Swift
👉 В KMM заменили схему расположения сырцов в Android, но она отключена по умолчанию
👉 IR бэкенд JS компилятора теперь стабилен
👉 Улучшена скорость работы kotlin-reflect
👉 Kotlin теперь поддерживает только JVM target 1.8. Стандартных библиотек под 1.6 и 1.7 не публиковалось. Теперь только один артефакт -
kotlin-stdlib
👉 Обновление документации
🔨 Gradle (подробности)
👉 Поддержка Gradle 7.2 и 7.3.
👉 Миграция опций компилятора на Gradle Lazy Property для соотвествия современным требованиям плагинов
👉 Все подключенные стандартные библиотеки Kotlin теперь по умолчанию будут совпадать с версией подключенного Kotlin плагина
👉 Возможность отключить fallback стратегию в Kotlin компиляторе
Поддерживается в Android Studio Electric Eel (221), Flamingo (222) и IntelliJ IDEA 2021.3, 2022.1, 2022.2
🔥42👏12👍8👎2
Forwarded from Android Broadcast (Кирилл Розов)
В Android Studio Giraffe (сейчас в Canary) для всех новых проектов будет предлагаться использовать Gradle Kotlin DSL, но Groovy DSL также остается доступен. Google идет к тому чтобы по максимуму использовать Kotlin во всех частях Android проектов. На XML остается только ресурсы и Android Manifest.
Один из важных плюсов Kotlin DSL - результат его компиляции кэшируется в отличие от Groovy DSL. Помимо этого: статическая типизация, автокомплит.
Gradle Version Catalog пока остаётся экспериментальной фичей.
#gradle #kotlin
Один из важных плюсов Kotlin DSL - результат его компиляции кэшируется в отличие от Groovy DSL. Помимо этого: статическая типизация, автокомплит.
Gradle Version Catalog пока остаётся экспериментальной фичей.
#gradle #kotlin
🔥30👍10👎1
Kotlin DSL станет использоваться по умолчанию в Gradle 8.2, IDEA 2023.1 и Android Studio Giraffe.
Groovy DSL сейчас быстрее, но Gradle, Google и JetBrains будут работать над ускорением, чтобы большие проекты тоже собирались без проблем.
#gradle
Groovy DSL сейчас быстрее, но Gradle, Google и JetBrains будут работать над ускорением, чтобы большие проекты тоже собирались без проблем.
#gradle
❤🔥19👍9🔥2👎1
Gradle Cheat Sheet для Android и KMP проектов - это статья с основными примерами использования Gradle и как их реализовать, а также API которые полезно знать
#gradle
#gradle
⚡12👎2🔥2
В Gradle 8.2 для Kotlin DSL появилась возможность задавать свойства Gradle Property через оператор = вместо использования функций с именами
#gradle
#gradle
🔥46👎6👏2
На днях вышел Gradle 8.7 и нтузиаст решил на примере проекта Now In Android оценить влияние версий Gradle на скорость компиляции проекта. По итогу время сборки осталось +- таким же, а вот расход памяти немного увеличился. Подробности читайте тут
#gradle #performance
#gradle #performance
🤯14🔥3👍2🎉2
Костя Цховребов сделал Gradle плагин для анализа структуры KMP проектов и визуализации в виде картинки.
Репозиторий с кодом тут
#gradle @kotlin_broadcast
Репозиторий с кодом тут
#gradle @kotlin_broadcast
🔥38🤯10👍9
Touchlab выпустила статью c рекомендациями по ускорению сборки KMP проектов:
🔥 Указывайте точный таск для сборки, а не
🔥 Изучайте логи и ищите странности
🔥 Swift Package Manager и XCFrameworks: что выбрать?
🔥 Не делайте сборок для iOS симуляторов на CI
Как по мне, все рекомендации имеют базовый характер и уж совсем для тех кто не имеет опыта с Gradle и разработкой
#сборка #gradle #kmp
🔥 Указывайте точный таск для сборки, а не
build
, который соберет всё🔥 Изучайте логи и ищите странности
🔥 Swift Package Manager и XCFrameworks: что выбрать?
🔥 Не делайте сборок для iOS симуляторов на CI
Как по мне, все рекомендации имеют базовый характер и уж совсем для тех кто не имеет опыта с Gradle и разработкой
#сборка #gradle #kmp
👍11🔥2
Улучшения Gradle в Kotlin 2.0:
👉 Новое Gradle DSL для конфигурации опций компиляции для всех тасков мультиплатформенных проектов
👉 Compose Runtime теперь часть Kotlin репозитория и теперь всегда будет с актуальными версиями. Из-за этого появился отдельный Gradle Compose плагин для Jetpack и Multiplatform Compose
👉 Теперь в атрибутах при публикации будет указываться для какого JVМ варианта сделана библиотека: Android, Standrat JVM или NO JVM
👉 Улучшена работа с зависимостями в Kotlin/Native
👉 Разграничение какие API можно вызывать в разных уровнях DSL
👉 Kotlin/Native компилятор будет загружать только когда он нужен для сборки, а не только если Kotlin/Native используется в проекте
👉 Минимальная поддерживаемая версия Android Gradle Plugin поднята до 7.1.3
👉 Gradle опция
👉 Вывод отчета сборки в JSON формате
👉 kapt наследует конфигурацию из родителського Gradle проекта
#gradle #kotlin2
👉 Новое Gradle DSL для конфигурации опций компиляции для всех тасков мультиплатформенных проектов
👉 Compose Runtime теперь часть Kotlin репозитория и теперь всегда будет с актуальными версиями. Из-за этого появился отдельный Gradle Compose плагин для Jetpack и Multiplatform Compose
👉 Теперь в атрибутах при публикации будет указываться для какого JVМ варианта сделана библиотека: Android, Standrat JVM или NO JVM
👉 Улучшена работа с зависимостями в Kotlin/Native
👉 Разграничение какие API можно вызывать в разных уровнях DSL
👉 Kotlin/Native компилятор будет загружать только когда он нужен для сборки, а не только если Kotlin/Native используется в проекте
👉 Минимальная поддерживаемая версия Android Gradle Plugin поднята до 7.1.3
👉 Gradle опция
kotlin.experimental.tryNext
для использования следующей dev версией Kotlin за текущей👉 Вывод отчета сборки в JSON формате
👉 kapt наследует конфигурацию из родителського Gradle проекта
#gradle #kotlin2
🔥12
Amper - билд система от JetBrains, которая работал поверх Gradle, теперь обзавелась своим движком для выполнения. Это одна из новинок релиза 0.3. Как попробовать Amper смотрите тут
#amper #gradle
#amper #gradle
👍22❤2
Forwarded from Android Broadcast
Статья про Gradle Convention Plugins(8м) - фича, которая позволяет переиспользовать код между Gradle скриптами, что очень актуально для KTS. Автор описал полный пример настройки и применения
#gradle
#gradle
👍30👎2
Также ждут и улучшения в Gradle для KMP в 2024
👉 Объявление зависимостей проекта на уровне проекта, а не через KMP плагин
👉 Лучше интеграция инструментов Kotlin/Native
👉 Поддержка klib
👉 Предоставление полной поддержки KMP в Declarative Gradle
Также ведут работу над поддержкой Gradle Project Isolation, документацию по API Kotlin Gradle плашина и др. инициативы
#gradle #kmp
👉 Объявление зависимостей проекта на уровне проекта, а не через KMP плагин
👉 Лучше интеграция инструментов Kotlin/Native
👉 Поддержка klib
👉 Предоставление полной поддержки KMP в Declarative Gradle
Также ведут работу над поддержкой Gradle Project Isolation, документацию по API Kotlin Gradle плашина и др. инициативы
#gradle #kmp
👍22❤1
👉 Новые фичи языка (разберу отдельно в @kotlin_broadcast, но ничего такого)
👉 Улучшения K2 компилятора, что также повлияло и на kapt (который deprecated)
👉 KMP Базовая поддержка Swift Export, стабильный Gradle для опций компилятора и много чего ещё
👉 В Kotlin/Native улучшили поддержку iosArm64
👉 Поддержка новых версий Gradle и Android Gradle Plugin
Ждем багфиксы в 2.1.10 и потом обновляемся. За разборами с большими подробностями идите в @kotlin_broadcast
#kotlin #gradle #k2 #kmp #swift
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍8🎉4❤2
KMMBridge — это мощный Gradle-плагин для публикации Kotlin Multiplatform Xcode Framework в Swift Package Manager (SPM) и CocoaPods, что позволяет интегрировать мультиплфторменные решения быстрее и прозрачнее
Что нового в версии 1.1.0?
🛠 Сделан серьезный рефакторинг под капотом
🚀 Поддержка Gradle Configuration Cache, ускоряющая сборки.
👉 Модульная структура по фичам, упрощающая поддержку.
🔒 Упрощение публичного API, чтобы избежать случайного использования внутренних частей.
Для перехода на новую версию потребуется выполнить миграцию. Авторы подготовили подробное руководство.
#kmp #spm #cocoapods #gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
Forwarded from Android Broadcast
В новом видео показываю как настроить публикации для Android и Kotlin Multiplatform библиотеки в Gradle с новым механизмом подписи артефактов для Maven Central в 2024
#AndroidBroadcast #видео #gradle #maven #kmp #android
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍4