Мир Android Разработки
3.6K subscribers
134 photos
2 videos
99 links
Все о android разработке
Download Telegram
💻 Статические методы и синхронизация в Котлин

На собеседовании может всплыть вопрос в духе: "Что будет являться монитором для блока кода, помеченного сразу двумя аннотациями и в Котлин?".
Держите полезную статью, в которой рассматривается, для чего используются данные аннотации и каким будет результат при их одновременном использовании.

А пока немного о и :

🟡Аннотация в Kotlin является аннотацией для методов и блоков кода, которая обеспечивает синхронизацию доступа к ним между потоками. Когда метод или блок кода помечены аннотацией , только один поток может получить право их выполнения в определенный момент времени, остальные потоки будут ожидать освобождения монитора, прежде чем получить доступ. Это позволяет избежать состояния гонки и обеспечить правильное выполнение кода в многопоточной среде.

🟡Аннотация в Kotlin указывает компилятору, что функция или свойство должны быть статическими в Java-коде после компиляции. Когда мы используем перед функцией или свойством в объекте- компаньоне или вну...
💻 Каррирование в Kotlin

Kotlin поддерживает парадигму функционального программирования (ФП). Часто объектно ориентированный подход (ООП) ставят в противовес ФП, но они не соперники и могут дополнить друг друга. Одно из понятий ФП — каррирование функций.

Например, преобразование функции в вид f(a)(b) называется каррированием в честь Хаскелла Карри.
// Пример каррированной функции с применением fun
fun f(a: Int) = { b: Int -> a + b }

// Пример каррированной функции с применением переменной
val f2: (Int) -> (Int) -> Int = { b -> { a -> a + b } }


▶️ Погружение в каррирование в Kotlin
💻 Что такое Kotlin Channel?

При использовании корутин в Kotlin рано или поздно появляется вопрос о том, какие примитивы необходимо использовать для передачи потоков данных между несколькими корутинами.
Для этого в библиотеке kotlinx.coroutines имеется специальный механизм, который так и называется — Channel.

▶️ Посмотрим на него поподробнее
📱 Google меняет способ обновления Android Studio с помощью Feature Drops

Google обновляет цикл выпуска инструмента для создания приложений Android Studio. С помощью Feature Drops разработчики получат «более частые и целенаправленные обновления».

Первое обновление включает новейшие возможности платформы IntelliJ IDEA компании Jetbrains, на которой основана Android Studio. Сюда входят «улучшения удобства использования, производительности и стабильности», такие как обновления терминала и редактора.
Эти изменения появятся в стабильном канале быстрее, чем это происходило ранее.

Затем последует выпуск функций, в том числе инструментов, помогающих тестировать/оптимизировать форм-фактор большого экрана. Бета-версия станет доступна вскоре после того, как обновление платформы IDE выйдет в стабильном канале. В предстоящем выпуске функций Koala Feature Drop будут добавлены:

— новый процесс входа в систему, который значительно упрощает подключение к нескольким сервисам Google, таким как Firebase и Gemini, в Androi...
This media is not supported in your browser
VIEW IN TELEGRAM
💻 Кинетические часы — интересный проект на Kotlin

Отличная идея для пет-проекта)
Создано с использованием Compose Desktop

🖥 GitHub
🔥🔥🔥 Google объявила конкурс для всех разработчиков Gemini API с призовым фондом в $3 млн и Custom Electric 1981 DeLorean (Легендарная машина из фильма Назад в будущее)

В рекламе снялся легендарный Кристофер Ллойд, актер снимавшийся в трилогии Назад в будущее.

🛻 Главный приз: полностью электрическая версия DeLorean 1981, произведенная на заказ.

Общий призовой фонд: $3 млн.

Конкурс Google Gemini API открыт как для отдельных участников, так и для команд. Разработчикам предлагается создать и представить приложения с использованием API Gemini.

⚡️Критерии оценки

Google оценивает приложения по пяти основным критериям:

* Креативность
* Полезность
* Исполнение
* Новизна
* Влияние

Компания будет выбирать приложения, которые:

*Ииспользуют API Gemini
* Решают реальные проблемы
* Оригинальны и хорошо продуманы
* Дают потяьный пользовательский опыт

Призы

В рамках конкурса также будут вручаться денежные призы в различных категориях:

* Лучшее приложение для Android
* Лучшее веб-приложение
* Лучшая игра

Кром...
💻 detekt — статический анализатор кода на Kotlin

brew install detekt

detekt предоставляет высококонфигурируемые наборы правил, имеет бесшовную интеграцию с Gradle от первого лица с помощью плагина Gradle, и предоставляет ещё массу возможностей.
Поддерживает различные форматы отчетов: HTML, Markdown, SARIF, XML (Checkstyle) и кастомные форматы.

🖥 GitHub
🟡 Доки
💻 Exposed — ORM библиотека для Kotlin

val exposed_version = "0.50.0"
dependencies {
implementation("org.jetbrains.exposed", "exposed-core", exposed_version)
implementation("org.jetbrains.exposed", "exposed-dao", exposed_version)
implementation("org.jetbrains.exposed", "exposed-jdbc", exposed_version)
}


Exposed — это легковесная библиотека SQL поверх драйвера JDBC для Kotlin. Exposed имеет два варианта доступа к базам данных: облегченный ORM (с использованием DAO) и безопасный для типов SQL (с использованием DSL).

Exposed можно использовать для имитации различных движков баз данных, что позволяет создавать приложения без зависимости от конкретного движка и переключаться между ними с минимальными изменениями или вообще без них.

Поддерживает MariaDB, MySQL, Oracle, Postgres, SQLite, Microsoft SQL Server

🖥 GitHub
💻 fmodel — функциональное, алгебраическое и реактивное моделирование доменов с помощью Kotlin

Библиотека fmodel написана на чистом Kotlin без зависимостей

🖥 GitHub
🟡 Страничка fmodel
💻 LeakCanary — библиотека Kotlin для обнаружения утечек памяти

При анализе кода LeakCanary опирается на внутреннее устройство Android Framework, что позволяет определить причину каждой утечки
В итоге можно свести к минимуму количество зависаний, Application Not Responding и сбоев OutOfMemoryError

🖥 GitHub
💻 Ktor — это асинхронный open-source фреймворк для создания микросервисов, веб-приложений и многого другого

Ktor позволяет создавать асинхронные клиентские и серверные приложения. Все, от микросервисов до многоплатформенных клиентских приложений HTTP.
Полностью написан на Kotlin.

🖥 GitHub
🟡 Доки
💻 kotlin-logging — легковесный фреймворк для логгирования, написанный на чистом Kotlin

implementation 'io.github.oshai:kotlin-logging-jvm:5.1.0'

kotlin-logging предоставляет обертку для slf4j-api для использования классами Kotlin; при этом kotlin-logging имеет такие преимущества:
— нет необходимости писать шаблонный код, содержащий имя логгера и класса или имя логгера
— простой способ регистрации сообщений в виде строки с ленивой оценкой с помощью лямбда-выражения {}
— все предыдущие реализации slf4j по-прежнему могут быть использованы

🖥 GitHub
🟡 Wiki