This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😅 Telephoto
Это инструмент для Android-разработчиков, позволяющий упростить работу с мультимедиа, предоставляя компоненты, такие как масштабируемые изображения с поддержкой жестов панорамирования и масштабирования!
🟠 Основные функции включают ZoomableImage — замену стандартного Image() с поддержкой работы с большими изображениями благодаря автоматической субдискретизации, и модификатор Modifier.zoomable(), который можно использовать для создания жестов с другими элементами интерфейса.
Гитхаб
👉 Новости 👉 База вопросов
Это инструмент для Android-разработчиков, позволяющий упростить работу с мультимедиа, предоставляя компоненты, такие как масштабируемые изображения с поддержкой жестов панорамирования и масштабирования!
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
🏕 Процесс локализации для Android-приложения
Локализация относится к изменению текста приложения, форматов валют и других визуальных элементов для соответствия локали пользователя на основе его региональных предпочтений.
С введением языковых предпочтений для каждого приложения в Android 13 управление языками, специфичными для приложений, стало намного проще.
Читать статью
👉 Новости 👉 База вопросов
Локализация относится к изменению текста приложения, форматов валют и других визуальных элементов для соответствия локали пользователя на основе его региональных предпочтений.
С введением языковых предпочтений для каждого приложения в Android 13 управление языками, специфичными для приложений, стало намного проще.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🥺 miuix
Библиотека компонентов пользовательского интерфейса для Kotlin Multiplatform, разработанная для создания кроссплатформенных приложений.
🚩 Библиотека использует Compose Multiplatform для обеспечения единой кодовой базы, поддерживая Android, iOS, macOS, Web и JVM. Она включает компоненты, такие как кнопки, списки и другие UI-элементы, что упрощает создание адаптивных интерфейсов, не требуя дублирования кода для каждой платформы.
Гитхаб
👉 Новости 👉 База вопросов
Библиотека компонентов пользовательского интерфейса для Kotlin Multiplatform, разработанная для создания кроссплатформенных приложений.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Как обрабатывать исключения в Kotlin корутинах?
В Kotlin корутинах исключения обрабатываются с помощью блоков
👉 Новости 👉 Платформа
В Kotlin корутинах исключения обрабатываются с помощью блоков
try-catch внутри самой корутины или в коде, который её вызывает. Если исключение не поймано в корутине, оно будет передано в вызывающий код.Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 akkurate
Библиотека для валидации данных в приложениях на Kotlin!
Основные возможности
🟠 Проверка данных на соответствие определённым ограничениям.
🟠 Поддержка пользовательских ограничений и аннотаций для удобной валидации.
🟠 Трансформация данных перед их проверкой.
Гитхаб
👉 Новости 👉 База вопросов
Библиотека для валидации данных в приложениях на Kotlin!
Основные возможности
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 Представим, что вы хотите реализовать список сессий конференции и разделить их по дате. Кажется, что реализация такой UI-модели будет довольно удачной идеей:
В Android это будет работать отлично, так как функция mapOf создает LinkedHashMap, который сохраняет порядок вставки элементов. И на самом деле все будет точно так же работать, если в iOS используется Compose Multiplatform. Однако если UI будет нативным на каждой платформе, то вы столкнетесь с проблемой.
При интеропе Kotlin-кода в Objective-C ваш Map превратится в NSDictionary (или Dictionary в Swift), который не гарантирует порядок вставки элементов.
Таким образом, не стоит полагаться на порядок элементов в Map, так как этот интерфейс не может гарантировать его. Предпочитайте использовать списки в UI-моделях, чтобы обеспечить одинаковое поведение на всех платформах:
Если тема отличий в поведении между платформами в KMP интересна, то ставьте реакции и сделаю еще посты по теме.
👉 Новости 👉 База вопросов
data class SessionsUiModel(
val sessionGroups: Map<String, List<Session>>
)
В Android это будет работать отлично, так как функция mapOf создает LinkedHashMap, который сохраняет порядок вставки элементов. И на самом деле все будет точно так же работать, если в iOS используется Compose Multiplatform. Однако если UI будет нативным на каждой платформе, то вы столкнетесь с проблемой.
При интеропе Kotlin-кода в Objective-C ваш Map превратится в NSDictionary (или Dictionary в Swift), который не гарантирует порядок вставки элементов.
Таким образом, не стоит полагаться на порядок элементов в Map, так как этот интерфейс не может гарантировать его. Предпочитайте использовать списки в UI-моделях, чтобы обеспечить одинаковое поведение на всех платформах:
data class SessionsUiModel(
val sessions: List<SessionItem>
)
sealed interface SessionItem {
data class Header(val header: String) : SessionItem
data class Item(val session: Session) : SessionItem
}
Если тема отличий в поведении между платформами в KMP интересна, то ставьте реакции и сделаю еще посты по теме.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 AssertK
Это библиотека для выполнения утверждений (assertions) в тестах на Kotlin!
✔️ Библиотека вдохновлена AssertJ, но разработана специально для Kotlin, что позволяет использовать преимущества языка, включая методы расширения (extension methods). Это упрощает создание пользовательских утверждений и делает код тестов более лаконичным и читаемым.
✔️ AssertK поддерживает многоплатформенную разработку, работая с JVM, JS и Native. Основной подход заключается в использовании функции assertThat() для обёртки значения и вызова методов утверждений. Например, можно проверять равенство, неравенство, длину строки, свойства объектов и многое другое.
Гитхаб
👉 Новости 👉 База вопросов
Это библиотека для выполнения утверждений (assertions) в тестах на Kotlin!
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое Flow в Kotlin корутинах?
Flow в Kotlin - это асинхронный поток данных, который может эмитировать несколько значений с течением времени. Он используется для обработки последовательностей данных, получаемых асинхронно, и предоставляет операторов для трансформации и комбинирования данных.
👉 Новости 👉 Платформа
Flow в Kotlin - это асинхронный поток данных, который может эмитировать несколько значений с течением времени. Он используется для обработки последовательностей данных, получаемых асинхронно, и предоставляет операторов для трансформации и комбинирования данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😊 Lynx — новый кроссплатформенный фреймворк
Теперь разработчики могут создавать нативные пользовательские интерфейсы для мобильных и веб-приложений на единой кодовой базе.
Lynx предлагает яркие интерфейсы и быструю интерактивность, идеально подходящие для масштабных приложений, таких как TikTok. Основанный на Rust, он поддерживает двухпоточное программирование и обеспечивает мощный движок рендеринга.
Читать подробнее
👉 Новости 👉 База вопросов
Теперь разработчики могут создавать нативные пользовательские интерфейсы для мобильных и веб-приложений на единой кодовой базе.
Lynx предлагает яркие интерфейсы и быструю интерактивность, идеально подходящие для масштабных приложений, таких как TikTok. Основанный на Rust, он поддерживает двухпоточное программирование и обеспечивает мощный движок рендеринга.
Читать подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
🥺 Tiamat
Это библиотека для разработки кроссплатформенной навигации на Jetpack Compose!
✅ Она предназначена для упрощения управления навигацией в мультиплатформенных приложениях, обеспечивая простую и понятную API для реализации переходов между экранами.
✔️ Для разработчиков, использующих Jetpack Compose, Tiamat позволяет сократить объем кода, связанного с навигацией, и предоставляет механизмы для реализации навигационных сценариев как в Android, так и в других платформах, поддерживаемых Compose Multiplatform.
Гитхаб
👉 Новости 👉 База вопросов
Это библиотека для разработки кроссплатформенной навигации на Jetpack Compose!
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Объясните концепцию ленивой инициализации в Kotlin.
Ленивая инициализация в Kotlin - это механизм, при котором свойство инициализируется только при первом обращении к нему. Это позволяет избежать лишних затрат ресурсов на инициализацию, если свойство не используется. Для этого используется делегат
👉 Новости 👉 Платформа
Ленивая инициализация в Kotlin - это механизм, при котором свойство инициализируется только при первом обращении к нему. Это позволяет избежать лишних затрат ресурсов на инициализацию, если свойство не используется. Для этого используется делегат
lazy , который откладывает выполнение инициализирующего кода до первого обращения к свойству. После этого свойство сохраняет свое значение до конца жизни объекта.Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#новости
🛞 Вышел Kotlin 2.1.20 !
В этом выпуске представлены новые мощные возможности и улучшения:
🟠 Поддержка K2 для плагинов kapt и Lombok
🟠 Общие атомарные типы и улучшенные UUID в stdlib
🟠 Новый нативный API отслеживания времени
🟠 Новые оптимизации инлайнинга в Kotlin/Native
🟠 Улучшенная отладка для Kotlin/Wasm
🟠 Новый DSL для замены плагина Gradle Application
🟠 Улучшения в документации Kotlin
Смотреть тут
👉 Новости 👉 База вопросов
В этом выпуске представлены новые мощные возможности и улучшения:
Смотреть тут
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Result
Это небольшая библиотека для Kotlin, предназначенная для моделирования операций, которые могут завершиться успехом или неудачей!
✔️ Она предоставляет тип Result<V: Any?, E: Throwable>, где V представляет значение в случае успеха, а E — ошибку в случае неудачи. Это упрощает обработку ошибок и повышает читаемость кода, особенно при выполнении последовательных операций, которые могут завершиться с ошибкой.
Гитхаб
👉 Новости 👉 База вопросов
Это небольшая библиотека для Kotlin, предназначенная для моделирования операций, которые могут завершиться успехом или неудачей!
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое функция "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