TGViewer
Channel Public Channel
Android Mobile | YeaHub

Android Mobile | YeaHub

@yeahub_android_mobile

Теория, подготовка к интервью и курсы для Android разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Subscribers
431
Photos
332
Videos
21
Links
597

Showing posts older than #148 · Back to latest

Older Posts 20 shown
Post #147 108
#полезное
🤯 Koin — это лёгкий и прагматичный фреймворк для внедрения зависимостей (Dependency Injection) на языке Kotlin!

✅ Он поддерживает как Kotlin Multiplatform, так и Android. Koin предоставляет удобный DSL для настройки зависимостей, минимизирует избыточность кода и интегрируется с различными экосистемами, включая Jetpack Compose и Ktor.
Гитхаб

👉Новости 👉База вопросов
Post #146 119
#полезное
🤓 KMP-App-Template-Native — шаблон для создания приложений на Kotlin Multiplatform с использованием нативных UI для Android и iOS!

✅ Он включает общую бизнес-логику и обработку данных, а также нативные UI-реализации с использованием Jetpack Compose для Android и SwiftUI для iOS. Шаблон использует различные библиотеки Kotlin Multiplatform для сетевых запросов, сериализации JSON, внедрения зависимостей и работы с ViewModel.
Гитхаб

👉Новости 👉База вопросов
  • 👍 2
  • ❤ 1
  • 🔥 1
Post #145 116
#Собес
🤔 Объясните концепцию делегатов в Kotlin.

Делегаты в Kotlin позволяют делегировать реализацию свойств или функций другим объектам. Это упрощает реализацию таких задач, как ленивая инициализация ( lazy ), наблюдение за изменениями ( observable ) или добавление дополнительного поведения без наследования.

👉Новости 👉База вопросов
YeaHub YeaHub — тренажер собеседований по IT 5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
  • 👍 1
Post #144 115
#полезное
😊 Calf

Это библиотека для Compose Multiplatform, упрощающая создание адаптивных пользовательских интерфейсов и доступ к платформенно-специфичным API!

✅ Она предоставляет готовые компоненты для UI, работы с файлами, WebView, разрешениями и мультимедиа на Android, iOS, настольных и веб-платформах.
Гитхаб

👉Новости 👉База вопросов
  • ❤ 2
  • 👍 2
  • 🔥 1
Post #143 128
#полезное
📞 Emoji

Это библиотека для Kotlin Multiplatform, которая добавляет поддержку эмодзи в Android, iOS и JVM-приложениях!

Она предоставляет инструменты для выбора, отображения и работы с эмодзи в текстовых полях, кнопках и других UI-элементах. Библиотека включает несколько провайдеров эмодзи, таких как Google, iOS, Facebook и Twitter, что позволяет адаптировать внешний вид эмодзи под нужды приложения.
Гитхаб

👉Новости 👉База вопросов
  • 👍 2
Post #141 145
#Собес
🤔 Для чего используется модификатор reified в Kotlin?

Модификатор reified используется в сочетании с inline , чтобы сохранить информацию о типе в generic-функциях, несмотря на стирание типов (type erasure). С его помощью можно проверять типы, создавать объекты и вызывать методы по типу во время выполнения. Это полезно для работы с рефлексией или написания более универсального кода.

👉Новости 👉База вопросов
YeaHub YeaHub — тренажер собеседований по IT 5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
  • ❤ 1
Post #140 125
#ЛитКод
Задача: 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]


👨‍💻 Алгоритм:

1⃣Преобразование и сортировка
Преобразуем каждый элемент массива nums по квадратичной функции f(x) = ax^2 + bx + c и сохраняем результаты в массив transformed. Используем алгоритм поразрядной сортировки для сортировки массива transformed.

2⃣Поразрядная сортировка
Находим максимальное значение по модулю в массиве для определения количества цифр. Применяем поразрядную сортировку к массиву transformed.

3⃣Сортировка по цифре
Для каждой цифры (разряда) используем подсчет для сортировки массива.

😎 Решение:
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] }
}
}


👉Новости 👉База вопросов
Post #139 120
#полезное
🤓 moko-resources

Это библиотека для Kotlin Multiplatform, предоставляющая доступ к ресурсам (строкам, изображениям, цветам и другим) в приложениях для iOS, Android, macOS, браузеров и JVM!

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

👉Новости 👉База вопросов
  • 🔥 1
Post #138 117
#статьи
👨‍💻 Выжимаем максимум из код-ревью

Большинство разработчиков не любит проводить код-ревью. Все понимают, что это важно и нужно, могут с ходу назвать три-четыре причины необходимости этого процесса. Но раз за разом они всячески избегают его. Или участвуют в нём неэффективно.

Поэтому разрушим шаблоны — не будем акцентировать внимание на важности и полезности код-ревью, а разберёмся в причинах сложившейся неприязни к этому процессу. И попробуем понять, как с этим жить.
Читать статью

👉Новости 👉База вопросов
Post #137 112
#Собес
🤔 Объясни концепцию функционального программирования в контексте Kotlin

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

👉Новости 👉База вопросов
YeaHub YeaHub — тренажер собеседований по IT 5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
Post #136 107
#полезное
😐 ServerSocket для IPC в Android

Идея для статьи возникла из желания разобраться, как организовать общение между браузером и Android‑приложением для передачи данных. В поисках удобного решения автор обратил внимание на ServerSocket — простой и гибкий способ локального взаимодействия без лишних сложностей.

Прежде чем перейти к практической реализации, автор разбирает основные сценарии использования ServerSocket и межпроцессного взаимодействия в рамках одного процесса и приводит примеры рабочего кода.

👉Новости 👉База вопросов
  • 🔥 1
Post #135 102
#полезное
👍 ColorPicker Compose

Библиотека Kotlin Multiplatform для выбора цвета из изображений!

🚩 Пользователи могут нажатием на нужную область изображения получать цветовые значения. Также поддерживаются слайдеры для управления яркостью и прозрачностью (ARGB).

Эта библиотека совместима с Compose для Android, iOS, WebAssembly, macOS и других платформ. Она подходит для приложений, где требуется гибкое управление цветами, таких как графические редакторы, редакторы тем или приложения дизайна.
Гитхаб

👉Новости 👉База вопросов
Post #134 101
#полезное
😊 Multiplatform Settings
Kotlin-библиотека для сохранения данных в формате "ключ-значение" в мультиплатформенных приложениях!

✔️ Это позволяет разработчикам писать общую логику для различных платформ, таких как Android, iOS, macOS, Windows, JavaScript, WebAssembly и другие, используя единую API.

✅ Библиотека поддерживает интеграцию с платформенными механизмами хранения, включая Android SharedPreferences, iOS Keychain, NSUserDefaults и другие. Также предусмотрены расширения для работы с корутинами, сериализацией и наблюдателями (обработка изменений данных).
Гитхаб

👉Новости 👉База вопросов
Post #133 94
#Собес
🤔 Что такое функция "also" в Kotlin?

Функция also выполняет дополнительные действия с объектом внутри лямбда- выражения, но возвращает сам обьект без изменений. Это полезно, когда нужно выполнить побочные эффекты, такие как логирование или проверку состояния, но оставить объект неизменным.

👉Новости 👉Платформа
Post #132 100
#полезное
🤯UUID

Это библиотека для работы с универсальными уникальными идентификаторами (UUID) в Kotlin Multiplatform проектах!

✔️ Она предоставляет API для генерации и обработки UUID, полностью совместимого со спецификацией RFC4122. Библиотека поддерживает все основные платформы, включая JVM, iOS, macOS и Kotlin/Native, что делает её идеальным выбором для проектов с общей кодовой базой.
Гитхаб

👉Новости 👉База вопросов
  • 🔥 1
Post #131 92
#полезное
🥺 Что такое 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


👉Новости 👉База вопросов
  • 🌚 1
Post #130 104
#ЛитКод
Задача: 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"


👨‍💻 Алгоритм:

1⃣Преобразуйте словарь корней в набор для быстрого поиска.

2⃣Пройдите по каждому слову в предложении и найдите самый короткий корень, который является префиксом этого слова.

3⃣Замените слово найденным корнем и соберите обновленное предложение.

😎 Решение:
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) }
}


👉Новости 👉База вопросов
Post #129 98
#Собес
🤔 Что такое функция "let" в Kotlin?

Функция let позволяет выполнить блок кода с обьектом, предоставляя его как аргумент лямбда-выражения. Она особенно полезна для работы с объектами, которые могут быть равны null , и помогает безопасно обрабатывать такие случаи. Внутри лямбды объект доступен через it.

👉Новости 👉Платформа
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →