Что нового в Kotlin 2.0.0-Beta5
IDE support
Kotlin K2 compiler
- Current K2 compiler limitations
- Smart cast improvements
- Kotlin Multiplatform improvements
- Compiler plugins support
- How to enable the Kotlin K2 compiler
- Try the Kotlin K2 compiler in Kotlin Playground
- Support in IntelliJ IDEA
- Leave your feedback on the new K2 compiler
Kotlin/Native: resolving conflicts with Objective-C methods
Kotlin/Wasm
- Unsigned primitive types in functions with @JsExport
- Binaryen available by default in production builds
- Generation of TypeScript declaration files in Kotlin/Wasm
- Support for named export
Kotlin/JS
- Support for type-safe plain JavaScript objects
- Support for npm package manager
Gradle improvements
- Improved Gradle dependency handling for CInteropProcess in Kotlin/Native
- Visibility changes in Gradle
- New directory for Kotlin data in Gradle projects
- Kotlin/Native compiler downloaded when needed
- Deprecating old ways of defining compiler options
Standard library: Stable AutoCloseable interface
What to expect from upcoming Kotlin EAP releases
How to update to Kotlin 2.0.0-Beta5
#kotlin
https://kotlinlang.org/docs/whatsnew-eap.html
IDE support
Kotlin K2 compiler
- Current K2 compiler limitations
- Smart cast improvements
- Kotlin Multiplatform improvements
- Compiler plugins support
- How to enable the Kotlin K2 compiler
- Try the Kotlin K2 compiler in Kotlin Playground
- Support in IntelliJ IDEA
- Leave your feedback on the new K2 compiler
Kotlin/Native: resolving conflicts with Objective-C methods
Kotlin/Wasm
- Unsigned primitive types in functions with @JsExport
- Binaryen available by default in production builds
- Generation of TypeScript declaration files in Kotlin/Wasm
- Support for named export
Kotlin/JS
- Support for type-safe plain JavaScript objects
- Support for npm package manager
Gradle improvements
- Improved Gradle dependency handling for CInteropProcess in Kotlin/Native
- Visibility changes in Gradle
- New directory for Kotlin data in Gradle projects
- Kotlin/Native compiler downloaded when needed
- Deprecating old ways of defining compiler options
Standard library: Stable AutoCloseable interface
What to expect from upcoming Kotlin EAP releases
How to update to Kotlin 2.0.0-Beta5
#kotlin
https://kotlinlang.org/docs/whatsnew-eap.html
Kotlin Help
What's new in Kotlin 2.1.0-RC2 | Kotlin
Подробное иллюстрированное введение в тему Generics в Kotlin
#kotlin #generics
https://typealias.com/start/kotlin-generics/
#kotlin #generics
https://typealias.com/start/kotlin-generics/
Dave Leeds on Kotlin
Generics
Perk up your understanding of generics in Chapter 18 of Kotlin: An Illustrated Guide! Through the engaging examples of Jennifer's bakery café and its ever-evolving beverage menu, you'll learn all about generics, type parameters, type arguments, upper-bound…
Подборка курсов для изучения Kotlin:
Introduction to Kotlin
Kotlin Onboarding
Kotlin Koans
AtomicKotlin
Kotlin Core
Coroutines and Channels
Introduction to IDE Code Refactoring in Kotlin
Algorithmic Challenges in Kotlin
Kotlin Developer
Introduction to Ktor
Kotlin Backend Developer (Spring Boot)
Introduction to Android With Kotlin
Android Developer With Kotlin
#kotlin #course
https://blog.jetbrains.com/education/2024/04/04/kotlin-learning-guide/
Introduction to Kotlin
Kotlin Onboarding
Kotlin Koans
AtomicKotlin
Kotlin Core
Coroutines and Channels
Introduction to IDE Code Refactoring in Kotlin
Algorithmic Challenges in Kotlin
Kotlin Developer
Introduction to Ktor
Kotlin Backend Developer (Spring Boot)
Introduction to Android With Kotlin
Android Developer With Kotlin
#kotlin #course
https://blog.jetbrains.com/education/2024/04/04/kotlin-learning-guide/
The JetBrains Blog
A Comprehensive Kotlin Learning Guide for All Levels | The JetBrains Academy Blog
Use the flow chart to get an overview of all our Kotlin learning content and choose your next course.
Статья о производительности нового K2 компилятора. Сравнивают сборки на Kotlin 1.9.23 и Kotlin 2.0.0, версия Gradle - 8.5.
#android #kotlin #performance
https://blog.jetbrains.com/kotlin/2024/04/k2-compiler-performance-benchmarks-and-how-to-measure-them-on-your-projects/
#android #kotlin #performance
https://blog.jetbrains.com/kotlin/2024/04/k2-compiler-performance-benchmarks-and-how-to-measure-them-on-your-projects/
The JetBrains Blog
K2 Compiler Performance Benchmarks and How to Measure Them on Your Projects | The Kotlin Blog
Dive into the K2 compiler’s performance benchmarks and learn how to measure performance in your own projects.
Подробная иллюстрированная статья про Kotlin Variance модификаторы In и Out
#kotlin
https://typealias.com/start/kotlin-variance/
#kotlin
https://typealias.com/start/kotlin-variance/
Dave Leeds on Kotlin
Generic Variance
Create subtypes from your parameterized types using Kotlin's generic variance. In this chapter, we'll learn about covariance, contravariance, and how they can be applied in declaration-site variance and use-site variance, based on three simple rules of subtypes.
Не за горами выпуск новой версии Kotlin 2.0, основной частью которого является изменение компилятора на K2.
По замерам JB, K2 ускоряет компиляцию на 94% (это не в 16 раз ускорение, а чуть меньше чем в 2). Также он позволит ускорить разработку новых языковых фич и унифицировать все платформы, предоставляя улучшенную архитектуру для мультиплатформенных проектов.
Но мало кто погружался в то, как работает K2, и чем он отличается от K1.
Эта статья более освещает нюансы работы компилятора, которые будут полезны разработчикам для понимания, что же JB улучшают под капотом, и как это работает.
#kotlin #compiler
https://habr.com/ru/companies/kts/articles/813085/
P.S.
Часов через 7 начнется Google I/O 2024
По замерам JB, K2 ускоряет компиляцию на 94% (это не в 16 раз ускорение, а чуть меньше чем в 2). Также он позволит ускорить разработку новых языковых фич и унифицировать все платформы, предоставляя улучшенную архитектуру для мультиплатформенных проектов.
Но мало кто погружался в то, как работает K2, и чем он отличается от K1.
Эта статья более освещает нюансы работы компилятора, которые будут полезны разработчикам для понимания, что же JB улучшают под капотом, и как это работает.
#kotlin #compiler
https://habr.com/ru/companies/kts/articles/813085/
P.S.
Часов через 7 начнется Google I/O 2024
Хабр
Как новый компилятор K2 ускоряет компиляцию Kotlin на 94%
Привет, меня зовут Мялкин Максим, я занимаюсь мобильной разработкой в KTS. Не за горами выпуск новой версии Kotlin 2.0, основной частью которого является изменение компилятора на K2. По замерам...
Несколько ссылок с кратким обзором новинок с Google IO
15 Things to know for Android developers at Google I/O
https://android-developers.googleblog.com/2024/05/15-things-to-know-for-android-developers-google-io-2024.html
Google I/O 2024: What’s new in Android Development Tools
https://android-developers.googleblog.com/2024/05/google-io-2024-whats-new-in-android-development-tools.html
What’s new in Jetpack Compose at I/O ‘24
https://android-developers.googleblog.com/2024/05/whats-new-in-jetpack-compose-at-io-24.html
I/O 2024: What's new in Google Play
https://android-developers.googleblog.com/2024/05/io-24-whats-new-in-google-play.html
Android Support for Kotlin Multiplatform to Share Business Logic Across Mobile, Web, Server, and Desktop Platforms
https://android-developers.googleblog.com/2024/05/android-support-for-kotlin-multiplatform-to-share-business-logic-across-mobile-web-server-desktop.html
Developer Keynote Google I/O 2024: официальная поддержка KMP, развитие Gemini и AI в Андроиде
https://habr.com/ru/companies/kts/articles/814363/
P.S.
Android Studio Bot, кстати, уже работает в ЕС
#android #kotlin #googleio
15 Things to know for Android developers at Google I/O
https://android-developers.googleblog.com/2024/05/15-things-to-know-for-android-developers-google-io-2024.html
Google I/O 2024: What’s new in Android Development Tools
https://android-developers.googleblog.com/2024/05/google-io-2024-whats-new-in-android-development-tools.html
What’s new in Jetpack Compose at I/O ‘24
https://android-developers.googleblog.com/2024/05/whats-new-in-jetpack-compose-at-io-24.html
I/O 2024: What's new in Google Play
https://android-developers.googleblog.com/2024/05/io-24-whats-new-in-google-play.html
Android Support for Kotlin Multiplatform to Share Business Logic Across Mobile, Web, Server, and Desktop Platforms
https://android-developers.googleblog.com/2024/05/android-support-for-kotlin-multiplatform-to-share-business-logic-across-mobile-web-server-desktop.html
Developer Keynote Google I/O 2024: официальная поддержка KMP, развитие Gemini и AI в Андроиде
https://habr.com/ru/companies/kts/articles/814363/
P.S.
Android Studio Bot, кстати, уже работает в ЕС
#android #kotlin #googleio
Android Developers Blog
15 Things to know for Android developers at Google I/O
Take a peak at some of the ways Android is here to support you. Don’t forget to check out the Android track at Google I/O!
Пара статей о переходе на Kotlin 2.0
#kotlin #gradle #android
https://dev.to/marlonlom/adapt-kotlin-20-in-android-applications-3cmk
https://www.zacsweers.dev/preparing-for-k2
#kotlin #gradle #android
https://dev.to/marlonlom/adapt-kotlin-20-in-android-applications-3cmk
https://www.zacsweers.dev/preparing-for-k2
DEV Community
Adapt Kotlin 2.0 in Android applications
Read this post in Spanish here. Recently, version 2.0 of Kotlin has been released, and with it,...
Новые коллекции в Android
Зачем вообще нужно было строгать новые коллекции и переписывать старые?
На это есть как минимум три причины:
- Эффективный расход памяти - думаю не секрет что даже при наличии 8Gb ОЗУ на вашем телефоне память не бесконечна, поэтому новые коллекции были написаны, придерживаясь принципа "минимум объектов".
- Эффективная реализация алгоритмов - старые реализации могут содержать не очень эффективные алгоритмы и устаревшие решения, требующие рефакторинга.
- Kotlin Multiplatform - при написании общего кода на Kotlin под разные платформы требуется минимальное количество зависимостей от платформенных структур данных, например таких как android.util.SparseArray.
А теперь перейдём к самой вкусной части статьи, разберёмся что за магические штуки наколдовали Google кодеры и самое главное как они работают под капотом.
#android #kotlin #collections
https://habr.com/ru/articles/811415/
Зачем вообще нужно было строгать новые коллекции и переписывать старые?
На это есть как минимум три причины:
- Эффективный расход памяти - думаю не секрет что даже при наличии 8Gb ОЗУ на вашем телефоне память не бесконечна, поэтому новые коллекции были написаны, придерживаясь принципа "минимум объектов".
- Эффективная реализация алгоритмов - старые реализации могут содержать не очень эффективные алгоритмы и устаревшие решения, требующие рефакторинга.
- Kotlin Multiplatform - при написании общего кода на Kotlin под разные платформы требуется минимальное количество зависимостей от платформенных структур данных, например таких как android.util.SparseArray.
А теперь перейдём к самой вкусной части статьи, разберёмся что за магические штуки наколдовали Google кодеры и самое главное как они работают под капотом.
#android #kotlin #collections
https://habr.com/ru/articles/811415/
Хабр
Новые коллекции в Android
В 2018 году в androidx появился новый пакет collection, который содержал несколько специфичных структур данных, переписанных на Kotlin, таких как LongSparseArray , SimpleArrayMap и SparseArrayCompat ....
Несколько полезных Kotlin функций. В основном будет полезно начинающим, но и опытные разрабы могут найти что-то интересное.
- measureTime + measureTimedValue
- markNow() + ValueTimeMark
- require + check
- Delegates: observable + vetoable + lazy
- buildList + buildString
- Base64 encoding/decoding
- HexFormat
- Typography constants: copyright, nbsp, leftDoubleQuote, ...
#kotlin
https://www.youtube.com/watch?v=OFWMtmqocV8
- measureTime + measureTimedValue
- markNow() + ValueTimeMark
- require + check
- Delegates: observable + vetoable + lazy
- buildList + buildString
- Base64 encoding/decoding
- HexFormat
- Typography constants: copyright, nbsp, leftDoubleQuote, ...
#kotlin
https://www.youtube.com/watch?v=OFWMtmqocV8
YouTube
7 Features in Kotlin's Standard Library that You Might Have Overlooked
Are you still using the Java API when you don't have to? Are you rewriting functions that are already in the standard library? In this video, I cover seven features in Kotlin's standard library that you might have missed or forgotten about.
🕙 What days and…
🕙 What days and…
K2 не полностью обратно совместим с K1. Нам нужно выполнить некоторые дополнительные шаги, чтобы наш код компилировался на K2. Подробное объяснение миграции описано в официальном руководстве по миграции. Здесь же мы просто объясним наиболее важные изменения, которые могут затронуть обычных пользователей.
#kotlin
https://habr.com/ru/companies/spring_aio/articles/826660/
#kotlin
https://habr.com/ru/companies/spring_aio/articles/826660/
Хабр
Новый компилятор K2 в Kotlin. Часть 2. Гайд по миграции
В этой статье эксперт сообщества Spring АйО – Михаил Поливаха рассмотрит процесс миграции с компилятора Kotlin старой версии на новый компилятор K2. В предыдущей статье...
Интересный способ избавиться от UseCase, которые просто прокидывают метод репозитория. Делаем такой UseCase интерфейсом и наследуем его в репозитории.
#android #kotlin #usecase #architecture
https://dladukedev.com/articles/042_avoid_useless_cases_part_2/
#android #kotlin #usecase #architecture
https://dladukedev.com/articles/042_avoid_useless_cases_part_2/
Вышел Kotlin 2.0.20
- The data class copy function will have the same visibility as the constructor
- Static accessors for source sets from the default target hierarchy are now available in multiplatform projects
- Concurrent marking for Kotlin/Native has been made possible in the garbage collector
- The @ExperimentalWasmDsl annotation in Kotlin/Wasm has a new location
- Support has been added for Gradle versions 8.6–8.8
- A new option allows sharing JVM artifacts between Gradle projects as class files
- The Compose compiler has been updated
- Support for UUIDs has been added to the common Kotlin standard library
#kotlin
https://blog.jetbrains.com/kotlin/2024/08/kotlin-2-0-20-released/
- The data class copy function will have the same visibility as the constructor
- Static accessors for source sets from the default target hierarchy are now available in multiplatform projects
- Concurrent marking for Kotlin/Native has been made possible in the garbage collector
- The @ExperimentalWasmDsl annotation in Kotlin/Wasm has a new location
- Support has been added for Gradle versions 8.6–8.8
- A new option allows sharing JVM artifacts between Gradle projects as class files
- The Compose compiler has been updated
- Support for UUIDs has been added to the common Kotlin standard library
#kotlin
https://blog.jetbrains.com/kotlin/2024/08/kotlin-2-0-20-released/
The JetBrains Blog
Kotlin 2.0.20 Released | The Kotlin Blog
Kotlin 2.0.20 has been released! This version includes performance improvements and bug fixes for Kotlin 2.0.0, where we announced the Kotlin K2 compiler as Stable. Learn more!
Рассуждения на тему, где и в какой момент лучше загружать данные: LaunchedEffect или ViewModel.init()
#android #kotlin #compose #architecture
https://proandroiddev.com/loading-initial-data-in-launchedeffect-vs-viewmodel-f1747c20ce62
#android #kotlin #compose #architecture
https://proandroiddev.com/loading-initial-data-in-launchedeffect-vs-viewmodel-f1747c20ce62
Разработчик из команды Compose рассказывает, как они оптимизировали свой Kotlin код.
#android #compose #kotlin #performance
https://www.youtube.com/watch?v=WAbaEE8qRdw
#android #compose #kotlin #performance
https://www.youtube.com/watch?v=WAbaEE8qRdw
YouTube
Going fast with Kotlin | Andrei Shikov
Recording brought to you by American Express. https://americanexpress.io/kotlin-jobs
Kotlin is leaning on JVM a lot, making most Java features accessible and easy to use. Sometimes, however, this results in curiously unexpected results during execution if…
Kotlin is leaning on JVM a lot, making most Java features accessible and easy to use. Sometimes, however, this results in curiously unexpected results during execution if…
Romain Guy рассказывает (часто переходя на байткод), как удается оптимизировать Compose.
#android #kotlin #compose #bytecode
https://www.youtube.com/watch?v=5cxw_fdpnoA
#android #kotlin #compose #bytecode
https://www.youtube.com/watch?v=5cxw_fdpnoA
YouTube
Practical Optimizations
In this session we will look at a series of optimizations that were done in Jetpack Compose to learn about how different types of optimizations can affect performance, including code flow/algorithms, new data structures, low-level bytecode optimizations,…
Вышла новая версия Ktor, альтернативы OkHttp от Jetbrains
Что нового в версии 3:
- Migrating to kotlinx-io
- Support for server-sent events
- Serving static resources from ZIP archives
- Support for CSRF
#kotlin #network #ktor
https://blog.jetbrains.com/kotlin/2024/10/ktor-3-0/
Что нового в версии 3:
- Migrating to kotlinx-io
- Support for server-sent events
- Serving static resources from ZIP archives
- Support for CSRF
#kotlin #network #ktor
https://blog.jetbrains.com/kotlin/2024/10/ktor-3-0/
The JetBrains Blog
Ktor 3.0 Is Now Available With New Features and Improved Performance | The Kotlin Blog
Ktor 3.0 is faster, better integrated with Kotlin tools, and offers more options for client-server apps. Find more details in the blog post.
Dos and Don’ts для ViewModel, часть 5:
- Avoid hardcoding Coroutine Dispatchers.
- Unit test your ViewModels.
- Avoid exposing suspended functions.
#kotlin #android #viewmodel #bestpractise
https://proandroiddev.com/mastering-android-viewmodels-essential-dos-and-donts-part-5-%EF%B8%8F5%EF%B8%8F%E2%83%A3-14d04ec2426a
- Avoid hardcoding Coroutine Dispatchers.
- Unit test your ViewModels.
- Avoid exposing suspended functions.
#kotlin #android #viewmodel #bestpractise
https://proandroiddev.com/mastering-android-viewmodels-essential-dos-and-donts-part-5-%EF%B8%8F5%EF%B8%8F%E2%83%A3-14d04ec2426a
Medium
Mastering Android ViewModels: Essential Dos and Don’ts Part 5 🛠️5️⃣
keep these in mind for better code quality when doing ViewModels!