#полезное
👍 ColorPicker Compose
Библиотека Kotlin Multiplatform для выбора цвета из изображений!
🚩 Пользователи могут нажатием на нужную область изображения получать цветовые значения. Также поддерживаются слайдеры для управления яркостью и прозрачностью (ARGB).
Эта библиотека совместима с Compose для Android, iOS, WebAssembly, macOS и других платформ. Она подходит для приложений, где требуется гибкое управление цветами, таких как графические редакторы, редакторы тем или приложения дизайна.
Гитхаб
👉 Новости 👉 База вопросов
Библиотека Kotlin Multiplatform для выбора цвета из изображений!
Эта библиотека совместима с Compose для Android, iOS, WebAssembly, macOS и других платформ. Она подходит для приложений, где требуется гибкое управление цветами, таких как графические редакторы, редакторы тем или приложения дизайна.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😐 ServerSocket для IPC в Android
Идея для статьи возникла из желания разобраться, как организовать общение между браузером и Android‑приложением для передачи данных. В поисках удобного решения автор обратил внимание на
Прежде чем перейти к практической реализации, автор разбирает основные сценарии использования
👉 Новости 👉 База вопросов
Идея для статьи возникла из желания разобраться, как организовать общение между браузером и Android‑приложением для передачи данных. В поисках удобного решения автор обратил внимание на
ServerSocket — простой и гибкий способ локального взаимодействия без лишних сложностей.Прежде чем перейти к практической реализации, автор разбирает основные сценарии использования
ServerSocket и межпроцессного взаимодействия в рамках одного процесса и приводит примеры рабочего кода.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#Собес
🤔 Объясни концепцию функционального программирования в контексте Kotlin
Функциональное программирование в Kotlin - это подход к написанию кода, который основывается на использовании чистых функций, неизменяемых данных и композиции функций. Kotlin поддерживает функциональное программирование через такие возможности, как лямбда-выражения, функции высшего порядка и коллекционные операции (
👉 Новости 👉 База вопросов
Функциональное программирование в Kotlin - это подход к написанию кода, который основывается на использовании чистых функций, неизменяемых данных и композиции функций. Kotlin поддерживает функциональное программирование через такие возможности, как лямбда-выражения, функции высшего порядка и коллекционные операции (
filter, map, reduce ). Этот подход делает код более читаемым, предсказуемым и легким для тестирования.Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
#статьи
👨💻 Выжимаем максимум из код-ревью
Большинство разработчиков не любит проводить код-ревью. Все понимают, что это важно и нужно, могут с ходу назвать три-четыре причины необходимости этого процесса. Но раз за разом они всячески избегают его. Или участвуют в нём неэффективно.
Поэтому разрушим шаблоны — не будем акцентировать внимание на важности и полезности код-ревью, а разберёмся в причинах сложившейся неприязни к этому процессу. И попробуем понять, как с этим жить.
Читать статью
👉 Новости 👉 База вопросов
Большинство разработчиков не любит проводить код-ревью. Все понимают, что это важно и нужно, могут с ходу назвать три-четыре причины необходимости этого процесса. Но раз за разом они всячески избегают его. Или участвуют в нём неэффективно.
Поэтому разрушим шаблоны — не будем акцентировать внимание на важности и полезности код-ревью, а разберёмся в причинах сложившейся неприязни к этому процессу. И попробуем понять, как с этим жить.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 moko-resources
Это библиотека для Kotlin Multiplatform, предоставляющая доступ к ресурсам (строкам, изображениям, цветам и другим) в приложениях для iOS, Android, macOS, браузеров и JVM!
Она позволяет использовать ресурсы из общего кода, обеспечивая поддержку локализации, тёмной темы и других платформенных особенностей.
Гитхаб
👉 Новости 👉 База вопросов
Это библиотека для Kotlin Multiplatform, предоставляющая доступ к ресурсам (строкам, изображениям, цветам и другим) в приложениях для iOS, Android, macOS, браузеров и JVM!
Она позволяет использовать ресурсы из общего кода, обеспечивая поддержку локализации, тёмной темы и других платформенных особенностей.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#ЛитКод
Задача: 360. Sort Transformed Array
Дан отсортированный массив целых чисел nums и три целых числа a, b и c. Примените квадратичную функцию вида f(x) = ax^2 + bx + c к каждому элементу nums[i] в массиве и верните массив в отсортированном порядке.
Пример:
👨💻 Алгоритм:
1⃣ Преобразование и сортировка
Преобразуем каждый элемент массива nums по квадратичной функции f(x) = ax^2 + bx + c и сохраняем результаты в массив transformed. Используем алгоритм поразрядной сортировки для сортировки массива transformed.
2⃣ Поразрядная сортировка
Находим максимальное значение по модулю в массиве для определения количества цифр. Применяем поразрядную сортировку к массиву transformed.
3⃣ Сортировка по цифре
Для каждой цифры (разряда) используем подсчет для сортировки массива.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 360. Sort Transformed Array
Дан отсортированный массив целых чисел nums и три целых числа a, b и c. Примените квадратичную функцию вида f(x) = ax^2 + bx + c к каждому элементу nums[i] в массиве и верните массив в отсортированном порядке.
Пример:
Input: nums = [-4,-2,2,4], a = 1, b = 3, c = 5
Output: [3,9,15,33]
Преобразуем каждый элемент массива nums по квадратичной функции f(x) = ax^2 + bx + c и сохраняем результаты в массив transformed. Используем алгоритм поразрядной сортировки для сортировки массива transformed.
Находим максимальное значение по модулю в массиве для определения количества цифр. Применяем поразрядную сортировку к массиву transformed.
Для каждой цифры (разряда) используем подсчет для сортировки массива.
class Solution {
fun sortTransformedArray(nums: IntArray, a: Int, b: Int, c: Int): IntArray {
val transformed = nums.map { a * it * it + b * it + c }.toIntArray()
radixSort(transformed)
return transformed
}
private fun radixSort(array: IntArray) {
val maxElement = array.map { Math.abs(it) }.maxOrNull() ?: 0
var placeValue = 1
while (maxElement / placeValue > 0) {
countingSortByDigit(array, placeValue)
placeValue *= 10
}
val negatives = array.filter { it < 0 }.sorted()
val positives = array.filter { it >= 0 }.sorted()
array.indices.forEach { array[it] = if (it < negatives.size) negatives[it] else positives[it - negatives.size] }
}
private fun countingSortByDigit(array: IntArray, placeValue: Int) {
val output = IntArray(array.size)
val count = IntArray(10)
array.forEach { count[(Math.abs(it) / placeValue) % 10]++ }
for (i in 1 until 10) count[i] += count[i - 1]
for (i in array.indices.reversed()) {
val digit = (Math.abs(array[i]) / placeValue) % 10
output[count[digit] - 1] = array[i]
count[digit]--
}
output.indices.forEach { array[it] = output[it] }
}
}Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Для чего используется модификатор reified в Kotlin?
Модификатор
👉 Новости 👉 База вопросов
Модификатор
reified используется в сочетании с inline , чтобы сохранить информацию о типе в generic-функциях, несмотря на стирание типов (type erasure). С его помощью можно проверять типы, создавать объекты и вызывать методы по типу во время выполнения. Это полезно для работы с рефлексией или написания более универсального кода.Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#полезное
📞 Emoji
Это библиотека для Kotlin Multiplatform, которая добавляет поддержку эмодзи в Android, iOS и JVM-приложениях!
Она предоставляет инструменты для выбора, отображения и работы с эмодзи в текстовых полях, кнопках и других UI-элементах. Библиотека включает несколько провайдеров эмодзи, таких как Google, iOS, Facebook и Twitter, что позволяет адаптировать внешний вид эмодзи под нужды приложения.
Гитхаб
👉 Новости 👉 База вопросов
Это библиотека для Kotlin Multiplatform, которая добавляет поддержку эмодзи в Android, iOS и JVM-приложениях!
Она предоставляет инструменты для выбора, отображения и работы с эмодзи в текстовых полях, кнопках и других UI-элементах. Библиотека включает несколько провайдеров эмодзи, таких как Google, iOS, Facebook и Twitter, что позволяет адаптировать внешний вид эмодзи под нужды приложения.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#полезное
😊 Calf
Это библиотека для Compose Multiplatform, упрощающая создание адаптивных пользовательских интерфейсов и доступ к платформенно-специфичным API!
✅ Она предоставляет готовые компоненты для UI, работы с файлами, WebView, разрешениями и мультимедиа на Android, iOS, настольных и веб-платформах.
Гитхаб
👉 Новости 👉 База вопросов
Это библиотека для Compose Multiplatform, упрощающая создание адаптивных пользовательских интерфейсов и доступ к платформенно-специфичным API!
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2🔥1
#Собес
🤔 Объясните концепцию делегатов в Kotlin.
Делегаты в Kotlin позволяют делегировать реализацию свойств или функций другим объектам. Это упрощает реализацию таких задач, как ленивая инициализация (
👉 Новости 👉 База вопросов
Делегаты в Kotlin позволяют делегировать реализацию свойств или функций другим объектам. Это упрощает реализацию таких задач, как ленивая инициализация (
lazy ), наблюдение за изменениями ( observable ) или добавление дополнительного поведения без наследования.Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
👍1
#полезное
🤓 KMP-App-Template-Native — шаблон для создания приложений на Kotlin Multiplatform с использованием нативных UI для Android и iOS!
✅ Он включает общую бизнес-логику и обработку данных, а также нативные UI-реализации с использованием Jetpack Compose для Android и SwiftUI для iOS. Шаблон использует различные библиотеки Kotlin Multiplatform для сетевых запросов, сериализации JSON, внедрения зависимостей и работы с ViewModel.
Гитхаб
👉 Новости 👉 База вопросов
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1🔥1
#полезное
🤯 Koin — это лёгкий и прагматичный фреймворк для внедрения зависимостей (Dependency Injection) на языке Kotlin!
✅ Он поддерживает как Kotlin Multiplatform, так и Android. Koin предоставляет удобный DSL для настройки зависимостей, минимизирует избыточность кода и интегрируется с различными экосистемами, включая Jetpack Compose и Ktor.
Гитхаб
👉 Новости 👉 База вопросов
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 Ныне популярный vibe-coding теперь и в Android Studio благодаря Firebender!
По своей сути, то же самое, что и Cursor, Trae и windsurf, но встроено внутрь Android Studio. Демо для тех кто слышит об этом впервые можно глянуть тут: https://firebender.com/
Это кратно удобнее, чем задавать вопросы в чат. Доступны как популярные модели
👉 Новости 👉 База вопросов
По своей сути, то же самое, что и Cursor, Trae и windsurf, но встроено внутрь Android Studio. Демо для тех кто слышит об этом впервые можно глянуть тут: https://firebender.com/
Это кратно удобнее, чем задавать вопросы в чат. Доступны как популярные модели
claude-3.7, так и локально запущенные llm. Пробовали ли на своих проектах работу с AI агентами в паре?Please open Telegram to view this post
VIEW IN TELEGRAM
vas3k.blog
Вайб-кодинг
Новый способ программирования в эпоху GenAI
#Собес
🤔 Каково назначение ключевого слова by в Kotlin?
Ключевое слово
👉 Новости 👉 База вопросов
Ключевое слово
by используется для делегирования. Оно позволяет классу передавать выполнение функций или управление свойством другому объекту. Это упрощает повторное использование кода и добавление дополнительного поведения к уже существующей функциональности.Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
👍1
#полезное
😊 KoalaPlot — это библиотека для создания графиков и диаграмм, основанная на Compose Multiplatform и написанная на языке Kotlin!
✅ Она позволяет создавать интерактивные диаграммы для Android, десктопа, iOS и веба с использованием единого API. Поддерживает разнообразные виды графиков, такие как круговые, линейные, столбчатые, а также графики на основе полярных координат. В библиотеке предусмотрена широкая настройка визуальных элементов, таких как цвета, шрифты, взаимодействие с пользователем и анимации.
Гитхаб
👉 Новости 👉 База вопросов
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#полезное
😵💫 EitherNet — это библиотека для Kotlin, предназначенная для обработки API-ответов в приложениях!
✅ Она предоставляет типизированный подход к обработке результатов сетевых запросов, используя sealed-классы для представления успешных и неудачных ответов. Это упрощает работу с ошибками, исключая необходимость использования исключений для обработки ошибок. Например, можно различать типы ошибок, такие как сетевые сбои, HTTP-ошибки или специфические API-ошибки, что делает код более безопасным и понятным.
✅ Библиотека интегрируется с Retrofit, позволяя разработчикам легко подключить её к существующим API-запросам. Она поддерживает аннотации, такие как @.DecodeErrorBody, для автоматической обработки тела ошибок HTTP-ответов. Это делает работу с API более удобной и предсказуемой, улучшая качество обработки ошибок и делая код проще для чтения и поддержки.
Гитхаб
👉 Новости 👉 База вопросов
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#ЛитКод
Задача: 364. Nested List Weight Sum II
Вам дан вложенный список целых чисел nestedList. Каждый элемент является либо целым числом, либо списком, элементы которого также могут быть целыми числами или другими списками.
Глубина целого числа — это количество списков, внутри которых оно находится. Например, вложенный список [1,[2,2],[[3],2],1] имеет значение каждого целого числа, установленное равным его глубине. Пусть maxDepth будет максимальной глубиной любого целого числа.
Вес целого числа определяется как maxDepth - (глубина целого числа) + 1.
Верните сумму каждого целого числа в nestedList, умноженную на его вес.
Пример:
👨💻 Алгоритм:
1⃣ Инициализировать первый уровень BFS-дерева, добавив все элементы из входного nestedList в очередь.
2⃣ Для каждого уровня извлекать передний элемент из очереди. Если это список, то добавить его элементы в очередь. В противном случае обновить значения sumOfElements, maxDepth и sumOfProducts.
3⃣ Когда очередь станет пустой, вернуть значение (maxDepth + 1) * sumOfElements - sumOfProducts.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 364. Nested List Weight Sum II
Вам дан вложенный список целых чисел nestedList. Каждый элемент является либо целым числом, либо списком, элементы которого также могут быть целыми числами или другими списками.
Глубина целого числа — это количество списков, внутри которых оно находится. Например, вложенный список [1,[2,2],[[3],2],1] имеет значение каждого целого числа, установленное равным его глубине. Пусть maxDepth будет максимальной глубиной любого целого числа.
Вес целого числа определяется как maxDepth - (глубина целого числа) + 1.
Верните сумму каждого целого числа в nestedList, умноженную на его вес.
Пример:
Input: nestedList = [[1,1],2,[1,1]]
Output: 8
Explanation: Four 1's with a weight of 1, one 2 with a weight of 2.
1*1 + 1*1 + 2*2 + 1*1 + 1*1 = 8
class Solution {
fun depthSumInverse(nestedList: List<NestedInteger>): Int {
val queue: Queue<NestedInteger> = LinkedList(nestedList)
var depth = 1
var maxDepth = 0
var sumOfElements = 0
var sumOfProducts = 0
while (queue.isNotEmpty()) {
val size = queue.size
maxDepth = maxOf(maxDepth, depth)
repeat(size) {
val nested = queue.poll()
if (nested.isInteger()) {
val value = nested.getInteger()
sumOfElements += value
sumOfProducts += value * depth
} else {
queue.addAll(nested.getList())
}
}
depth++
}
return (maxDepth + 1) * sumOfElements - sumOfProducts
}
}Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Объясните модификатор suspend в Kotlin.
Модификатор
👉 Новости 👉 База вопросов
Модификатор
suspend в Kotlin используется для пометки функций, которые могут быть приостановлены и возобновлены в рамках корутин. Это позволяет функции выполнять асинхронные операции, не блокируя поток, и вызывать другие приостанавливаемые функции внутри себя.Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
👍1
#полезное
🥺 AAY-chart — это библиотека для создания графиков в приложениях на Kotlin Multiplatform и Jetpack Compose!
✅ Она поддерживает несколько типов диаграмм, таких как линейные, столбчатые, круговые, пончиковые и радарные.
Гитхаб
👉 Новости 👉 База вопросов
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
😊 Это база: companion object (также Singleton)
Объекты можно объявлять внутри класса, при этом нет каких-либо ограничений по их количеству. Но только один объект можно пометить ключевым словом
Синглтон-свойство
Важно отметить, что
Такому объекту можно не указывать свое имя, и обращаться к методам и свойствам объекта через имя содержащего его класса без явного указания имени объекта.
Компилируется в
👉 Новости 👉 База вопросов
Объекты можно объявлять внутри класса, при этом нет каких-либо ограничений по их количеству. Но только один объект можно пометить ключевым словом
companion object в рамках одного класса.Синглтон-свойство
companion object достигается за счет того, что он создается внутри класса в качестве статического поля. Он будет инициализирован при первом обращении к нему или при создании первого экземпляра класса, в котором он объявлен.Важно отметить, что
companion object будет инициализирован первым, а затем уже будет создан экземпляр класса:class MyClass {
init {
// Выполняется всегда после инициализации companion object
}
companion object {
init {
// Выполняется всегда перед блоком init содержащего класса
}}}
val myClass = MyClass()Такому объекту можно не указывать свое имя, и обращаться к методам и свойствам объекта через имя содержащего его класса без явного указания имени объекта.
class SomeClass {
companion object {
fun create()
}
}
val someClass = SomeClass.create()Компилируется в
public static final class на Java. Работает подобно ключевому слову static в Java.Please open Telegram to view this post
VIEW IN TELEGRAM