Kotlin

Description
Подборки полезного материала по Kotlin. По всем вопросам @evgenycarter
Advertising
We recommend to visit

Бизнес блог #1
Выжимаю книги до самой сути.

? Реклама - @jaMasha

? Хотите свою книгу? Мы напишем её за вас и сделаем книгу бестселлером. Подробности в боте @Summary_library_bot

? Оставьте след в истории с помощью книги
https://expert-book.pro

Фильмы и сериалы со всей планеты. Мы знаем, что посмотреть, где посмотреть и на что сходить в кино.

Last updated 3 days, 10 hours ago

Все материалы размещены по партнёрской програме ivi.ru | All materials are posted on the partner program ivi.ru

По всем вопросам: @kuzr103
Купить рекламу: https://telega.in/c/k1noxa103
Основной канал: https://t.me/kino_hd2

Last updated 2 weeks, 2 days ago

6 months, 3 weeks ago
**Navigating the Waters of Kotlin Multiplatform: …

Navigating the Waters of Kotlin Multiplatform: Exploring Navigation Solutions

Эта запись в блоге не ставит целью сравнение различных навигационных библиотек; вместо этого она предлагает взглянуть на мой личный путь к навигационному решению. Цель не в том, чтобы дать сравнительный анализ различных библиотек, а в том, чтобы поделиться своим процессом принятия решений.

https://proandroiddev.com/navigating-the-waters-of-kotlin-multiplatform-exploring-navigation-solutions-eef81aaa1a61

✍️ @kotlin_lib

6 months, 3 weeks ago
**Kotlin Faker — генератор фейковых данных**

Kotlin Faker — генератор фейковых данных

Порт популярного гема ruby faker, написанного на kotlin. Генерирует реалистично выглядящие поддельные данные, такие как имена, адреса, банковские реквизиты и многое другое, которые могут быть использованы для тестирования и анонимизации данных.

https://github.com/serpro69/kotlin-faker

✍️ @kotlin_lib

7 months ago
**Построение графиков финансовых данных в Kotlin …

Построение графиков финансовых данных в Kotlin с помощью Kandy
Я хочу показать простой рабочий процесс с финансовыми данными - загрузка, анализ и визуализация - с использованием инструментов Kotlin для анализа данных.

https://medium.com/@andrejkingsley/plotting-financial-data-in-kotlin-with-kandy-66757aef05ef

✍️ @kotlin_lib

8 months, 4 weeks ago

Как перенести статичные методы из Java в Kotlin?

В Kotlin нет статических методов, для этих целей обычно служит companion object.
Для того чтобы метод из Java был представлен как статический используется аннотация @JvmStatic. Эта аннотация говорит компилятору Kotlin создать статический метод в байт-коде, что позволяет использовать методы так же, как в Java.

Например, если у нас есть статический метод в Java:

public class MyClass { public static int sum(int a, int b) { return a + b; } }
Мы можем использовать этот метод в Kotlin, добавив аннотацию @JvmStatic:

object MyClass { @JvmStatic fun sum(a: Int, b: Int): Int { return a + b } }

Подробнее https://kotlinlang.ru/docs/reference/java-to-kotlin-interop.html

✍️ @kotlin_lib

9 months ago

Разница между Exception в Java и Kotlin

Одним из ключевых отличий между Java и Kotlin является подход к исключениям. В Java есть два типа исключений: checked и unchecked.

Checked исключения это те, которые должны быть обработаны в коде, иначе компилятор не позволит коду скомпилироваться. Unchecked исключения не требуют обработки в коде.

С точки зрения исключений компилятор Kotlin отличается тем, что не различает checked и unchecked исключения. Все исключения — только unchecked, поэтому нет необходимости отлавливать или объявлять какие-либо исключения (вы самостоятельно принимаете решение, стоит ли их отлавливать и обрабатывать).

Такой подход был выбран разработчиками Kotlin, чтобы упростить и ускорить процесс разработки, сократив количество бойлерплейта и улучшив читаемость кода. Однако, это может привести к тому, что некоторые ошибки могут быть упущены при компиляции и проявиться только во время выполнения программы.

Некоторые разработчики считают, что отказ от checked исключений является недостатком Kotlin, поскольку это может привести к ошибкам, которые могут быть предотвращены на этапе компиляции в Java. Однако, другие разработчики утверждают, что этот подход снижает количество шаблонного кода и упрощает написание программ.

Более подробно тут и тут

✍️ @kotlin_lib

9 months ago

Kotlin и Java

Преимущества языка Kotlin перед Java
Код на Kotlin компактнее на 30-40%
Меньше кода = меньше ошибок, выше скорость разработки.

Безопасная работа с обнуляемыми переменными (Null Safety)
В отличие от Java, в Kotlin по умолчанию все типы являются non-nullable, то есть не могут принимать значение null. Присвоение или возврат null приведет к ошибке компиляции. Чтобы присвоить переменной значение null, в Kotlin необходимо явно пометить эту переменную как nullable (добавив после типа знак вопроса). В Java же при использовании ссылки на объект с указанным значением null, появляется исключение в виде «NullPointerException!».

Функции-расширения (Extensions)
Kotlin позволяет расширять класс путём добавления нового функционала без необходимости наследования от такого класса. Это реализовано с помощью специальных выражений, называемых расширения. Например, вы можете написать новые функции для класса из сторонней библиотеки, которую вы не можете изменить. Такие функции можно вызывать обычным способом, как если бы они были методами исходного класса. Этот механизм называется функцией расширения.

Классы данных (data classes)
Разработчику на Java приходится писать много стандартного, но часто встречающегося кода (т.н. шаблонный код или boilerplate). В Kotlin же есть возможность создания специальных классов для определения полей для хранения данных, конструктора, функций сеттеров и геттеров для каждого поля, и функций Hashcode(), toString() и equals(). Для этого достаточно добавить data в определение класса, затем компилятор сделает все сам.

Синглтоны на уровне языка (Object)
В Java все должно объявляться внутри класса. Но в Kotlin все иначе. Компоненты могут объявляться за пределами класса, и это автоматически делает их статическими. Поэтому нам не требуется ключевое слово static. В Java статические члены обрабатываются не так, как члены-объекты. Это означает, что для статических членов нам недоступны такие вещи, как реализация интерфейса, помещение экземпляра в ассоциативный список (map) или передача его в качестве параметра методу, который принимает объект. В Kotlin static не является ключевым словом и вместо статических членов используются объекты-компаньоны, позволяющие преодолеть вышеуказанные ограничения. В этом и заключается преимущество. Даже если члены объектов-компаньонов выглядят как статические члены в других языках, во время выполнения они все равно остаются членами экземпляров реальных объектов и могут, например, реализовывать интерфейсы.

Корутины
Kotlin предоставляет возможность создавать дополнительные потоки, однако в нем также существуют т.н. корутины (сопрограммы), которые позволяют использовать меньше памяти в сравнении с обычным потоком, т.к. реализованы они без стека. Корутины же в свою очередь способны выполнять интенсивные и длительные задачи методом приостановления выполнения без блокировки потока и его последующего восстановления. Что в дальнейшем позволяет сгенерировать асинхронный код без блокирования, который при его выполнении не отличить от синхронного. К тому же, они генерируют эффектные доп. стили например async или await.

✍️ @kotlin_lib

10 months, 3 weeks ago

IntelliJ IDEA Tips and Tricks

Антон Архипов - специалист по работе с разработчиками в команде Kotlin в компании JetBrains. В сферу его профессиональных интересов входят языки программирования и инструментарий для разработчиков. С 2014 года он является чемпионом по Java.

источник

✍️ @kotlin_lib

10 months, 3 weeks ago

Андрей Данилов — Gradle Kotlin DSL: о чем умолчали в документации
Gradle.kts уже давно не новая технология, но далеко не все на нее перешли. Причины разные: кто-то слышал о плохом перформансе, кто-то пытался мигрировать, но с ходу не вышло. Даже спустя 5 лет после релиза скуповатая на детали документация не проясняет многие кейсы. Андрей постарается исправить эту ситуацию в своем докладе.

Вы узнаете, есть ли вообще причины переходить на kts в 2023 году и насколько все плохо (или хорошо) с перформансом, учитывая что во многих release notes сообщают об ускорениях. Спикер также разберет все проблемы, возникающие как при миграции крупного проекта, так и при интеропе Kotlin/Groovy.

источник

✍️ @kotlin_lib

11 months ago
**Тюнинг производительности Kotlin: 20 советов**

Тюнинг производительности Kotlin: 20 советов
Производительность — это критический показатель, который может привести к успеху или сломать ваше приложение. Хотя Kotlin предлагает множество функций, облегчающих разработку, знание того, как использовать их для повышения производительности, может стать решающим фактором. В этой статье приведены 20 советов, которые помогут вам писать высокопроизводительный код на Kotlin.

https://medium.com/@android-world/kotlin-performance-tuning-20-best-practices-you-should-know-354011076664

✍️ @kotlin_lib

11 months, 1 week ago

Работаем с enum в kotlin/jvm правильно

А вы знали, что HashMap для enum уступает по эффективности EnumMap? Или что EnumSet под капотом это обычный long? Под катом несколько рецептов удобного применения этих структур.

https://habr.com/ru/articles/781730/

✍️ @kotlin_lib

Хабр

Работаем с enum в kotlin/jvm правильно

А вы знали, что HashMap для enum уступает по эффективности EnumMap? Или что EnumSet под капотом это обычный long? Под катом несколько рецептов удобного применения этих структур. Классы над которыми...

**Работаем с enum в kotlin/jvm правильно**
We recommend to visit

Бизнес блог #1
Выжимаю книги до самой сути.

? Реклама - @jaMasha

? Хотите свою книгу? Мы напишем её за вас и сделаем книгу бестселлером. Подробности в боте @Summary_library_bot

? Оставьте след в истории с помощью книги
https://expert-book.pro

Фильмы и сериалы со всей планеты. Мы знаем, что посмотреть, где посмотреть и на что сходить в кино.

Last updated 3 days, 10 hours ago

Все материалы размещены по партнёрской програме ivi.ru | All materials are posted on the partner program ivi.ru

По всем вопросам: @kuzr103
Купить рекламу: https://telega.in/c/k1noxa103
Основной канал: https://t.me/kino_hd2

Last updated 2 weeks, 2 days ago