#Собес
🤔 Что такое функция "let" в Kotlin?
Функция
👉 Новости 👉 Платформа
Функция
let позволяет выполнить блок кода с обьектом, предоставляя его как аргумент лямбда-выражения. Она особенно полезна для работы с объектами, которые могут быть равны null , и помогает безопасно обрабатывать такие случаи. Внутри лямбды объект доступен через it.Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 648. Replace Words
В английском языке есть понятие "корень", за которым может следовать какое-то другое слово, чтобы образовать другое более длинное слово - назовем это слово производным. Например, если за корнем "help" следует слово "ful", мы можем образовать производное "helpful". Дайте словарь, состоящий из множества корней, и предложение, состоящее из слов, разделенных пробелами, замените все производные в предложении на образующий их корень. Если производное может быть заменено более чем одним корнем, замените его корнем, имеющим наименьшую длину. Верните предложение после замены.
Пример:
👨💻 Алгоритм:
1⃣ Преобразуйте словарь корней в набор для быстрого поиска.
2⃣ Пройдите по каждому слову в предложении и найдите самый короткий корень, который является префиксом этого слова.
3⃣ Замените слово найденным корнем и соберите обновленное предложение.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 648. Replace Words
В английском языке есть понятие "корень", за которым может следовать какое-то другое слово, чтобы образовать другое более длинное слово - назовем это слово производным. Например, если за корнем "help" следует слово "ful", мы можем образовать производное "helpful". Дайте словарь, состоящий из множества корней, и предложение, состоящее из слов, разделенных пробелами, замените все производные в предложении на образующий их корень. Если производное может быть заменено более чем одним корнем, замените его корнем, имеющим наименьшую длину. Верните предложение после замены.
Пример:
Input: dictionary = ["cat","bat","rat"], sentence = "the cattle was rattled by the battery"
Output: "the cat was rat by the bat"
fun replaceWords(roots: List<String>, sentence: String): String {
val rootSet = roots.toSet()
fun replace(word: String): String {
for (i in 1..word.length) {
val prefix = word.substring(0, i)
if (rootSet.contains(prefix)) {
return prefix
}
}
return word
}
return sentence.split(" ").joinToString(" ") { replace(it) }
}Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🥺 Что такое tuple?
Значения
Вы можете создать
Например:
Чтобы получить доступ к значению внутри tuple, используйте точечную нотацию и индекс:
Кортежи также могут быть созданы таким образом, чтобы каждое значение имело имя:
В этом случае вы можете получить доступ к определённому значению кортежа по его имени:
👉 Новости 👉 База вопросов
Tuple (кортеж) — это значение, которое можно использовать для объединения нескольких значений вместе, например, в виде пары.Значения
tuple не обязательно должны быть одного типа.Вы можете создать
tuple, разделив значения запятыми внутри круглых скобок.Например:
var coordinates3D = (1.0, 2.0, 5.0)
Чтобы получить доступ к значению внутри tuple, используйте точечную нотацию и индекс:
let xPos = coordinates3D.0
Кортежи также могут быть созданы таким образом, чтобы каждое значение имело имя:
var coordinates3D = (x: 1.0, y: 2.0, z: 5.0)
В этом случае вы можете получить доступ к определённому значению кортежа по его имени:
let xPos = coordinates3D.x
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚1
#полезное
🤯 UUID
Это библиотека для работы с универсальными уникальными идентификаторами (UUID) в Kotlin Multiplatform проектах!
✔️ Она предоставляет API для генерации и обработки UUID, полностью совместимого со спецификацией RFC4122. Библиотека поддерживает все основные платформы, включая JVM, iOS, macOS и Kotlin/Native, что делает её идеальным выбором для проектов с общей кодовой базой.
Гитхаб
👉 Новости 👉 База вопросов
Это библиотека для работы с универсальными уникальными идентификаторами (UUID) в Kotlin Multiplatform проектах!
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#Собес
🤔 Что такое функция "also" в Kotlin?
Функция
👉 Новости 👉 Платформа
Функция
also выполняет дополнительные действия с объектом внутри лямбда- выражения, но возвращает сам обьект без изменений. Это полезно, когда нужно выполнить побочные эффекты, такие как логирование или проверку состояния, но оставить объект неизменным.Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Multiplatform Settings
Kotlin-библиотека для сохранения данных в формате "ключ-значение" в мультиплатформенных приложениях!
✔️ Это позволяет разработчикам писать общую логику для различных платформ, таких как Android, iOS, macOS, Windows, JavaScript, WebAssembly и другие, используя единую API.
✅ Библиотека поддерживает интеграцию с платформенными механизмами хранения, включая Android SharedPreferences, iOS Keychain, NSUserDefaults и другие. Также предусмотрены расширения для работы с корутинами, сериализацией и наблюдателями (обработка изменений данных).
Гитхаб
👉 Новости 👉 База вопросов
Kotlin-библиотека для сохранения данных в формате "ключ-значение" в мультиплатформенных приложениях!
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 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