StartAndroid
10.7K subscribers
371 photos
10 videos
5 files
1.75K links
Канал об Android (Андроид) разработке

Сайт - http://startandroid.ru

Чат - https://tttttt.me/startandroidchat

Контакты - https://startandroid.ru/ru/about/cntct5.html

Реклама - https://startandroid.ru/ru/about/reklama.html
Download Telegram
Что нового в 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
Подборка курсов для изучения 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/
Не за горами выпуск новой версии 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
Несколько ссылок с кратким обзором новинок с 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
Новые коллекции в Android

Зачем вообще нужно было строгать новые коллекции и переписывать старые?

На это есть как минимум три причины:

- Эффективный расход памяти - думаю не секрет что даже при наличии 8Gb ОЗУ на вашем телефоне память не бесконечна, поэтому новые коллекции были написаны, придерживаясь принципа "минимум объектов".

- Эффективная реализация алгоритмов - старые реализации могут содержать не очень эффективные алгоритмы и устаревшие решения, требующие рефакторинга.

-
Kotlin Multiplatform - при написании общего кода на Kotlin под разные платформы требуется минимальное количество зависимостей от платформенных структур данных, например таких как android.util.SparseArray.

А теперь перейдём к самой вкусной части статьи, разберёмся что за магические штуки наколдовали Google кодеры и самое главное как они работают под капотом.

#android #kotlin #collections

https://habr.com/ru/articles/811415/
Несколько полезных 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
K2 не полностью обратно совместим с K1. Нам нужно выполнить некоторые дополнительные шаги, чтобы наш код компилировался на K2. Подробное объяснение миграции описано в официальном руководстве по миграции. Здесь же мы просто объясним наиболее важные изменения, которые могут затронуть обычных пользователей.

#kotlin

https://habr.com/ru/companies/spring_aio/articles/826660/
Интересный способ избавиться от UseCase, которые просто прокидывают метод репозитория. Делаем такой UseCase интерфейсом и наследуем его в репозитории.

#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/
Рассуждения на тему, где и в какой момент лучше загружать данные: LaunchedEffect или ViewModel.init()

#android #kotlin #compose #architecture

https://proandroiddev.com/loading-initial-data-in-launchedeffect-vs-viewmodel-f1747c20ce62
Compiler Explorer предоставляет возможность посмотреть, как выглядит код на различных этапах своего пути

#android #kotlin #java #compile #source

https://android-developers.googleblog.com/2024/09/become-better-android-developer-compiler-explorer.html
Вышла новая версия 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/