👉 equals() и hashCode() в Array не сравнивает содержимое массива
👉 Array - модифицируемый тип, могут изменить данные снаружи
Рекомендуется использовать List или ImmutableList
Источник тут (альтернативная ссылка)
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍90
Forwarded from Compose Broadcast
Что нового:
👉 Переход на K2
👉 Мультиплатформенные реализации BackHandler и PredictiveBackHandler
👉 Улучшения в тестах
👉 Поддержка вариативных шрифтов на всех платформах
👉 Clipboard API заменяет ClipboardManager для работы c буфером обмена на всех платформах
👉 Множество улучшений в Compose/iOS
👉 На Windows улучшили производительность и размер инсталятора
Множество других улучшений, которые надо разбирать отдельными постами.
#compose #k2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍50
Forwarded from Compose Broadcast
🔥⚙️ Compose iOS теперь Stable
Самый громкий и важный анонс в истории Compose Multiplatform с выходом версии 1.8.0
Что именно готово для продакшен применения
👉 Все основные фичи из Jetpack Compose работают на iOS
👉 Типобезопасная навигация с поддержкой deep link
👉 Гибкое управление ресурсами
👉 Поддержка iOS Accessibility API
👉 Ощущения от UI приложения как нативного (скрол, редактирование текста, drag-and-drop, адаптивный UI, навигация жестами и пр)
👉 Производительность UI на Compose близка к SwiftUI, но пока немного уступает
Новая эра мобильной разработки уже тут!
#compose #ios
Самый громкий и важный анонс в истории Compose Multiplatform с выходом версии 1.8.0
Что именно готово для продакшен применения
👉 Все основные фичи из Jetpack Compose работают на iOS
👉 Типобезопасная навигация с поддержкой deep link
👉 Гибкое управление ресурсами
👉 Поддержка iOS Accessibility API
👉 Ощущения от UI приложения как нативного (скрол, редактирование текста, drag-and-drop, адаптивный UI, навигация жестами и пр)
👉 Производительность UI на Compose близка к SwiftUI, но пока немного уступает
Новая эра мобильной разработки уже тут!
#compose #ios
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍132
JetBrains рассказала про статус и будущее Kotlin Multiplatform для Web разработки. Сейчас в работе:
👉 Улучшении поддержки в IDE
👉 Достичь Beta статус для Kotlin/Wasm и Compose Multiplatform для Web
👉 Режим совместимости со старыми браузерами для Compose Multiplatform
👉 Избавиться от большинства ограничений интеропа в Kotlin/JS
👉 Поддержать современны стандарты JavaScript в Koltin/JS
#kotlin #web #wasm #js
Please open Telegram to view this post
VIEW IN TELEGRAM
👍49
Зачастую вижу код
val list: MutableList<Value> = mutableListOf()
list.add(value0)
if(...) list.add(value1)
Вместо этого рекомендую использовать buildList
val list: List<Value> = buildList {
add(value0)
if(...) add(value1)
}
Плюсом такого подхода - отсутствие работы с мутируемой коллекцией
Есть аналоги для других типов коллекций: buildSet и buildMap
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍172
Media is too big
VIEW IN TELEGRAM
ExoQuery - Kotlin DSL для работы с базой данных. Есть поддержка разных БД. Больше про возможности смотрит в видео
#kotlin #sql #dsl
// Пример запроса
capture.select {
val p: Person = from(people)
val a: Address = join(addresses) { a -> a.personId == p.id }
Data(p.name, a.city)
}
#kotlin #sql #dsl
👍43
Forwarded from Kotlin Russia news (Alexander Nozik)
Итак, момент, которого мы долго ждали, случился!
Первый за этот год, да и за несколько последних лет Kotlin митап случится 30 мая в ВШЭ. Организатором выступает ФКН ВШЭ.
https://cs.hse.ru/kotlinmeetup/
18:00-18:10, Александр Нозик, Открытие митапа
18:10-19:10, Яна Седова, Горячие и холодные потоки в Kotlin Flow
19:10-20:10, Александр Соколинский, Пополнение в семье kotlinx: зачем нам этот ваш kotlinx.fuzz?
Для участия обязательно зарегистрироваться. Количество мест ограничено. Поэтому просьба не откладывать регистрацию если вы хотите прийти и не регистрироваться если вы не планируете приходить.
Самое замечательное в том, что планируется не один митап, а серия. Так что не забываем отправлять новые заявки в форму. Даже если вам кажется, что это не очень интересно.
Первый за этот год, да и за несколько последних лет Kotlin митап случится 30 мая в ВШЭ. Организатором выступает ФКН ВШЭ.
https://cs.hse.ru/kotlinmeetup/
18:00-18:10, Александр Нозик, Открытие митапа
18:10-19:10, Яна Седова, Горячие и холодные потоки в Kotlin Flow
19:10-20:10, Александр Соколинский, Пополнение в семье kotlinx: зачем нам этот ваш kotlinx.fuzz?
Для участия обязательно зарегистрироваться. Количество мест ограничено. Поэтому просьба не откладывать регистрацию если вы хотите прийти и не регистрироваться если вы не планируете приходить.
Самое замечательное в том, что планируется не один митап, а серия. Так что не забываем отправлять новые заявки в форму. Даже если вам кажется, что это не очень интересно.
cs.hse.ru
Митап по Kotlin
👍23
Что нового:
👉 Исправление работы с XCode 16.3
🛠 Исправление багов
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍48
Forwarded from Android Broadcast
🤯 Вышел Retrofit 3.0, который полностью переписали на Kotlin и перешли на OkHttp 4.12, который тоже полностью на Kotlin
👍114🤔1
👉 Очень много улучшений для PostgreSql
👉 Поддержка WASM/JS
🛠 Множество исправлений и улучшений
#kotlin #kmp #sqlite #k2
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥37👍5❤2🤯1
Подробнее можно почитать в статье (РУ, 5м)
// пример использования библиотеки
class SuspendSettingsApi(private val intSettingsMap: MutableMap<String, Int>) {
val suspendMutableKrate: SuspendMutableKrate<Int> = DefaultSuspendMutableKrate(
factory = { 0 },
loader = { intSettingsMap["INT_KEY"] },
saver = { value -> intSettingsMap["INT_KEY"] = value }
)
val stateFlowSuspendMutableKrate: StateFlowSuspendMutableKrate<Int> = DefaultStateFlowSuspendMutableKrate(
factory = { 0 },
loader = { intSettingsMap["INT_KEY"] },
saver = { value -> intSettingsMap["INT_KEY"] = value }
)
}
#kotlin #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍21🤔9