Function references
В Kotlin есть возможность передавать функци по ссылке, вместо создания лямбд. Изучите и сможете сделать свои цепочки вызовов короче
В Kotlin есть возможность передавать функци по ссылке, вместо создания лямбд. Изучите и сможете сделать свои цепочки вызовов короче
👎15👍12🔥2
Strings, Please! Eliminating Data Leaks Caused by Kotlin Assertions
В статье рассказывает про то как Kotlin генерит доп вызовы для выбрасывания исключений в Runtime, когда вы нарушаете Null Safety в Kotlin. Проблема в том что туда вставляются имена вызываемого кода, а при обфускации так и остаются оригинальными строками, что дает злоумышленникам проще разобраться в вашем коде.
Чтобы избавиться от этих проверок, используйте код на скриншотах, но только в релизных сборках. Для дебага проверки нужны.
Я уже давно предлагал и лаже описал способ как их выкосить с помощью конфига ProGuard/R8 (читайте здесь)
В статье рассказывает про то как Kotlin генерит доп вызовы для выбрасывания исключений в Runtime, когда вы нарушаете Null Safety в Kotlin. Проблема в том что туда вставляются имена вызываемого кода, а при обфускации так и остаются оригинальными строками, что дает злоумышленникам проще разобраться в вашем коде.
Чтобы избавиться от этих проверок, используйте код на скриншотах, но только в релизных сборках. Для дебага проверки нужны.
Я уже давно предлагал и лаже описал способ как их выкосить с помощью конфига ProGuard/R8 (читайте здесь)
👍36👎3
This media is not supported in your browser
VIEW IN TELEGRAM
Mutekt - плагин для Kotlin компилятора, который генерирует мутабельные модельки из немутабельных классов
🤔34👎22👍1
Магия Dispatcher'ов и как сделать свой Main
Разбор работы CoroutineDispatcher в корутинах, а главное как работает Dispatchers.Main в Android
#coroutines #android
Разбор работы CoroutineDispatcher в корутинах, а главное как работает Dispatchers.Main в Android
#coroutines #android
👍28👎3
По какой причине вы не используете ранние (EAP) сборки Kotlin? Это же помогает делать язык лучше
Final Results
56%
Предпочитаю стабильную версию
11%
Несовместимость с библиотеками/инструментами
10%
Не знаю как участвовать
8%
Не знаю где узнать про старт EAP
2%
Не пишу на Kotlin или код вовсе
11%
Не участвую в опросе
2%
Другая причина (делитесь в комментариях)
👎3👍1
Function types
Разбор функциональных типов в Kotlin:
👉 Как объявляются
👉 Примеры использования
👉 Именованные аргументы
👉 Алиасы
👉 Функциональный тип - это интерфейс
Разбор функциональных типов в Kotlin:
👉 Как объявляются
👉 Примеры использования
👉 Именованные аргументы
👉 Алиасы
👉 Функциональный тип - это интерфейс
👍26👎2
Forwarded from Android Broadcast (Кирилл Розов)
Вышел Ktor 2.1.0
👉 Появилась Command Line Tools
👉 Добавлена поддержка Yeoman (CMD утилита для генерации различных проектов)
👉 Gradle Deployment Plugin
👉 Поддержка конфигурации через YAML
👉 Появилась Command Line Tools
👉 Добавлена поддержка Yeoman (CMD утилита для генерации различных проектов)
👉 Gradle Deployment Plugin
👉 Поддержка конфигурации через YAML
🔥22👎2
To Flow or not to Flow? Message subscription in Kotlin
Разбор различных вариантов как можно подписаться на получение уведомлений в Kotlin:
👉 Callback
👉 Flow API
👉 Отписка
Разбор различных вариантов как можно подписаться на получение уведомлений в Kotlin:
👉 Callback
👉 Flow API
👉 Отписка
👍17👎5
Forwarded from Android Broadcast (Кирилл Розов)
This media is not supported in your browser
VIEW IN TELEGRAM
Прошло уже 5 лет как Kotlin стал официально поддерживаемым языком в Android и три года - основным,
#kotlin
#kotlin
🎉91❤8👎2👍1
Вышла kotlinx.serialization 1.4.0
👉 Поддержка Kotlin 1.7.10
👉 Поддержка Okio
👉 Стабильная поддержка inline классов и unsigned чисел
👉 Часть иерархии SerializationException стала публичной
👉 Аннотация
👉 Документация переехала с Github pages на kotlinlang.org
👉 Различные улучшения и исправления багов
👉 Поддержка Kotlin 1.7.10
👉 Поддержка Okio
👉 Стабильная поддержка inline классов и unsigned чисел
👉 Часть иерархии SerializationException стала публичной
👉 Аннотация
@MetaSerializable
, которая дает пользовательским аннотациям такое же поведение при компиляции как и аннотация @Serializable
👉 Документация переехала с Github pages на kotlinlang.org
👉 Различные улучшения и исправления багов
👍23👎2🔥1
👍11👎6
🔥 Touchlab сделал мобильное приложение для Droidcon NYC на Android и iOS, использую Compose для каждой из платформ 😮
Это первый production на Compose iOS, который сделали еще даже до появления dev preview Compose iOS
iPhone у меня нет чтобы оценить приложения, но может вы сможете когда оно опубликуется (на момент выхода поста проходит ревью)
👉 Исходники приложения на GitHub
Это первый production на Compose iOS, который сделали еще даже до появления dev preview Compose iOS
iPhone у меня нет чтобы оценить приложения, но может вы сможете когда оно опубликуется (на момент выхода поста проходит ревью)
👉 Исходники приложения на GitHub
🔥21👎2
Lambda expressions
Разбор лямбд в Kotlin: синтаксис, параметры, лямбда вне параметров функции, результат
Разбор лямбд в Kotlin: синтаксис, параметры, лямбда вне параметров функции, результат
🔥12👎1
Forwarded from iOS Broadcast (Розалия Амирова)
Danger. Автоматизируем ревью на CI и пишем свой плагин
Лучше автоматизировать все, что можно автоматизировать. Поэтому проверку кодстайла и MR тоже делегируем 🤖
О том, как реализовать свой плагин для Danger на Kotlin DSL, читайте в статье
#tools
Лучше автоматизировать все, что можно автоматизировать. Поэтому проверку кодстайла и MR тоже делегируем 🤖
О том, как реализовать свой плагин для Danger на Kotlin DSL, читайте в статье
#tools
👍9👎1
Apollo Kotlin: New Multiplatform Memory Manager
Apollo интегрировали новую модель памяти в Kotlin/Native и делятся своим опытом
#native
Apollo интегрировали новую модель памяти в Kotlin/Native и делятся своим опытом
#native
🔥15👎2
Легкая автоматизация кроссплатформенных тестов с Kotlin DSL
Команда Мир Plat.Form (НСПК) делится опытом в создании и развитии фреймворка для автоматизации тестов на Appium: зачем, что, итоги
#testing
Команда Мир Plat.Form (НСПК) делится опытом в создании и развитии фреймворка для автоматизации тестов на Appium: зачем, что, итоги
#testing
👎5👍2
Forwarded from Android Broadcast (Кирилл Розов)
Kotlin Algorithms and Design Patterns
Примеры реализации различных архитектурных шаблон , аглоритмов и структур данных на Kotlin
Примеры реализации различных архитектурных шаблон , аглоритмов и структур данных на Kotlin
👍17🔥6👎4
Collection processing in Kotlin: Windowing, zipping and chunking
Разбор как работают операторы windowed, zip и chunked, которые позволяют разбить коллекцию на группы элементов
Разбор как работают операторы windowed, zip и chunked, которые позволяют разбить коллекцию на группы элементов
👍34👎2
Что такое Kotlin SAM? [EN]
Single Abstract Method (SAM) или функциональный интерфейс - это когда ваш тип может передаваться как лямбда, но под капотом конвертируется в нужный интерфейс.
#functional
Single Abstract Method (SAM) или функциональный интерфейс - это когда ваш тип может передаваться как лямбда, но под капотом конвертируется в нужный интерфейс.
#functional
🔥17👍6👎5
Знаете для чего нужны Nothing и Unit?
Anonymous Poll
54%
Однозначно да!
32%
Не уверен(а)
7%
Нет
3%
Что это?
4%
Не участвую в опросе
👍7👎6🤔4