Kotlin Multiplatform Broadcast
9.48K subscribers
838 photos
52 videos
1.13K links
Новости и фичи Kotlin, а также Kotlin Multiplatform

YouTubе канал: https://youtube.com/androidBroadcast
Compose Multiplatform @compose_broadcast
iOS разработка @ios_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
加入频道
TouchLab представили KMMBridge - набор Gradle инструментов для помощи в публикации и использования pre-build KMM Xcode Framework бинарников

👉 Документация
👉 Исходный код на GitHub

#kmm #gradle
🔥5🤔2
Forwarded from Android Broadcast (Кирилл Розов)
Сборник лучших практик по использованию 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 не публиковалось. Теперь только один артефакт - 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
🔥30👍10👎1
Kotlin DSL станет использоваться по умолчанию в Gradle 8.2, IDEA 2023.1 и Android Studio Giraffe.

Groovy DSL сейчас быстрее, но Gradle, Google и JetBrains будут работать над ускорением, чтобы большие проекты тоже собирались без проблем.

#gradle
❤‍🔥19👍9🔥2👎1
Gradle Cheat Sheet для Android и KMP проектов - это статья с основными примерами использования Gradle и как их реализовать, а также API которые полезно знать

#gradle
12👎2🔥2
В Gradle 8.2 для Kotlin DSL появилась возможность задавать свойства Gradle Property через оператор = вместо использования функций с именами

#gradle
🔥46👎6👏2
На днях вышел Gradle 8.7 и нтузиаст решил на примере проекта Now In Android оценить влияние версий Gradle на скорость компиляции проекта. По итогу время сборки осталось +- таким же, а вот расход памяти немного увеличился. Подробности читайте тут

#gradle #performance
🤯14🔥3👍2🎉2
Костя Цховребов сделал Gradle плагин для анализа структуры KMP проектов и визуализации в виде картинки.

Репозиторий с кодом тут

#gradle @kotlin_broadcast
🔥38🤯10👍9
Touchlab выпустила статью c рекомендациями по ускорению сборки 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 опция kotlin.experimental.tryNext для использования следующей dev версией Kotlin за текущей
👉 Вывод отчета сборки в JSON формате
👉 kapt наследует конфигурацию из родителського Gradle проекта

#gradle #kotlin2
🔥12
Amper - билд система от JetBrains, которая работал поверх Gradle, теперь обзавелась своим движком для выполнения. Это одна из новинок релиза 0.3. Как попробовать Amper смотрите тут

#amper #gradle
👍222
Forwarded from Android Broadcast
Статья про Gradle Convention Plugins(8м) - фича, которая позволяет переиспользовать код между Gradle скриптами, что очень актуально для KTS. Автор описал полный пример настройки и применения

#gradle
👍30👎2
Также ждут и улучшения в Gradle для KMP в 2024
👉 Объявление зависимостей проекта на уровне проекта, а не через KMP плагин
👉 Лучше интеграция инструментов Kotlin/Native
👉 Поддержка klib
👉 Предоставление полной поддержки KMP в Declarative Gradle

Также ведут работу над поддержкой Gradle Project Isolation, документацию по API Kotlin Gradle плашина и др. инициативы

#gradle #kmp
👍221
🏝🎉 Вышел Kotlin 2.1.0

👉 Новые фичи языка (разберу отдельно в @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🎉42
🏝🦢🐘 Вышел KMMBridge 1.1.0!

KMMBridge — это мощный Gradle-плагин для публикации Kotlin Multiplatform Xcode Framework в Swift Package Manager (SPM) и CocoaPods, что позволяет интегрировать мультиплфторменные решения быстрее и прозрачнее

Что нового в версии 1.1.0?
🛠 Сделан серьезный рефакторинг под капотом
🚀 Поддержка Gradle Configuration Cache, ускоряющая сборки.
👉 Модульная структура по фичам, упрощающая поддержку.
🔒 Упрощение публичного API, чтобы избежать случайного использования внутренних частей.
🦢 Указание отдельного репозитория для публикации в SPM, повышая гибкость настройки.

Для перехода на новую версию потребуется выполнить миграцию. Авторы подготовили подробное руководство.

#kmp #spm #cocoapods #gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
Forwarded from Android Broadcast
📹 Демонстрация настройки публикации Android и KMP библиотеки (36 минут)

В новом видео показываю как настроить публикации для Android и Kotlin Multiplatform библиотеки в Gradle с новым механизмом подписи артефактов для Maven Central в 2024

#AndroidBroadcast #видео #gradle #maven #kmp #android
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍4