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 #128 · Back to latest

Older Posts 20 shown
Post #127 122
#полезное
😊 Result

Это небольшая библиотека для Kotlin, предназначенная для моделирования операций, которые могут завершиться успехом или неудачей!

✔️ Она предоставляет тип Result<V: Any?, E: Throwable>, где V представляет значение в случае успеха, а E — ошибку в случае неудачи. Это упрощает обработку ошибок и повышает читаемость кода, особенно при выполнении последовательных операций, которые могут завершиться с ошибкой.
Гитхаб

👉Новости 👉База вопросов
Post #126 123
#новости
🛞 Вышел Kotlin 2.1.20 !
В этом выпуске представлены новые мощные возможности и улучшения:


🟠 Поддержка K2 для плагинов kapt и Lombok
🟠 Общие атомарные типы и улучшенные UUID в stdlib
🟠 Новый нативный API отслеживания времени
🟠 Новые оптимизации инлайнинга в Kotlin/Native
🟠 Улучшенная отладка для Kotlin/Wasm
🟠 Новый DSL для замены плагина Gradle Application
🟠 Улучшения в документации Kotlin
Смотреть тут

👉Новости 👉База вопросов
Post #125 112
#Собес
🤔 Объясните концепцию ленивой инициализации в Kotlin.

Ленивая инициализация в Kotlin - это механизм, при котором свойство инициализируется только при первом обращении к нему. Это позволяет избежать лишних затрат ресурсов на инициализацию, если свойство не используется. Для этого используется делегат lazy , который откладывает выполнение инициализирующего кода до первого обращения к свойству. После этого свойство сохраняет свое значение до конца жизни объекта.

👉Новости 👉Платформа
  • 👍 1
Post #123 119
#полезное
🥺 Tiamat

Это библиотека для разработки кроссплатформенной навигации на Jetpack Compose!

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

✔️ Для разработчиков, использующих Jetpack Compose, Tiamat позволяет сократить объем кода, связанного с навигацией, и предоставляет механизмы для реализации навигационных сценариев как в Android, так и в других платформах, поддерживаемых Compose Multiplatform.
Гитхаб

👉Новости 👉База вопросов
Post #122 107
#статьи
😊 Lynx — новый кроссплатформенный фреймворк

Теперь разработчики могут создавать нативные пользовательские интерфейсы для мобильных и веб-приложений на единой кодовой базе.

Lynx предлагает яркие интерфейсы и быструю интерактивность, идеально подходящие для масштабных приложений, таких как TikTok. Основанный на Rust, он поддерживает двухпоточное программирование и обеспечивает мощный движок рендеринга.
Читать подробнее

👉Новости 👉База вопросов
  • 👍 1
Post #121 91
#Собес
🤔 Что такое Flow в Kotlin корутинах?

Flow в Kotlin - это асинхронный поток данных, который может эмитировать несколько значений с течением времени. Он используется для обработки последовательностей данных, получаемых асинхронно, и предоставляет операторов для трансформации и комбинирования данных.

👉Новости 👉Платформа
Post #120 110
#полезное
👍 AssertK

Это библиотека для выполнения утверждений (assertions) в тестах на Kotlin!

✔️ Библиотека вдохновлена AssertJ, но разработана специально для Kotlin, что позволяет использовать преимущества языка, включая методы расширения (extension methods). Это упрощает создание пользовательских утверждений и делает код тестов более лаконичным и читаемым.

✔️ AssertK поддерживает многоплатформенную разработку, работая с JVM, JS и Native. Основной подход заключается в использовании функции assertThat() для обёртки значения и вызова методов утверждений. Например, можно проверять равенство, неравенство, длину строки, свойства объектов и многое другое.
Гитхаб

👉Новости 👉База вопросов
Post #119 79
#полезное
🤓 Представим, что вы хотите реализовать список сессий конференции и разделить их по дате. Кажется, что реализация такой UI-модели будет довольно удачной идеей:


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 интересна, то ставьте реакции и сделаю еще посты по теме.

👉Новости 👉База вопросов
Post #118 93
#полезное
😊 akkurate

Библиотека для валидации данных в приложениях на Kotlin!

Основные возможности

🟠 Проверка данных на соответствие определённым ограничениям.

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

🟠 Трансформация данных перед их проверкой.
Гитхаб

👉Новости 👉База вопросов
Post #117 89
#Собес
🤔 Как обрабатывать исключения в Kotlin корутинах?

В Kotlin корутинах исключения обрабатываются с помощью блоков try-catch внутри самой корутины или в коде, который её вызывает. Если исключение не поймано в корутине, оно будет передано в вызывающий код.

👉Новости 👉Платформа
Post #116 133
#полезное
🥺 miuix

Библиотека компонентов пользовательского интерфейса для Kotlin Multiplatform, разработанная для создания кроссплатформенных приложений.

🚩 Библиотека использует Compose Multiplatform для обеспечения единой кодовой базы, поддерживая Android, iOS, macOS, Web и JVM. Она включает компоненты, такие как кнопки, списки и другие UI-элементы, что упрощает создание адаптивных интерфейсов, не требуя дублирования кода для каждой платформы.
Гитхаб

👉Новости 👉База вопросов
Post #115 110
#статьи
🏕 Процесс локализации для Android-приложения

Локализация относится к изменению текста приложения, форматов валют и других визуальных элементов для соответствия локали пользователя на основе его региональных предпочтений.

С введением языковых предпочтений для каждого приложения в Android 13 управление языками, специфичными для приложений, стало намного проще.
Читать статью

👉Новости 👉База вопросов
Post #114 97
#полезное
😅 Telephoto

Это инструмент для Android-разработчиков, позволяющий упростить работу с мультимедиа, предоставляя компоненты, такие как масштабируемые изображения с поддержкой жестов панорамирования и масштабирования!

🟠 Основные функции включают ZoomableImage — замену стандартного Image() с поддержкой работы с большими изображениями благодаря автоматической субдискретизации, и модификатор Modifier.zoomable(), который можно использовать для создания жестов с другими элементами интерфейса.
Гитхаб

👉Новости 👉База вопросов
Post #113 94
#Собес
🤔 Какова цель функции withContext() в Kotlin корутинах?

Функция withContext() в Kotlin корутинах используется для смены контекста выполнения корутины на другой диспетчер. Она позволяет выполнить код в другом потоке (например, для операций с сетью или ввода/вывода) без блокировки текущего потока.

👉Новости 👉Платформа
  • 👍 2
Post #112 111
#полезное
😊 Руководство по использованию unsafe

В этой статье автор рассматривает различные подходы для работы с небезопасными операциями в Swift. Swift предоставляет несколько способов для работы с указателями и низкоуровневой памятью:

🟠 Прямое использование указателей без обёрток,

🟠 Применение встроенных обёрток (например, UnsafePointer, UnsafeMutablePointer, UnsafeRawPointer, с их вариациями)

🟠 Дополнительные механизмы вроде withUnsafePointer, withUnsafeMutablePointer, Unmanaged и OpaquePointer.
Читать статью

👉Новости 👉База вопросов
Хабр Руководство по использованию unsafe в Swift В этой статье мы рассматрим различные подходы для работы с небезопасными операциями в языке программирования Swift. Swift предоставляет несколько способов для работы с указателями и низкоуровневой...
Post #111 96
#статьи
😴 Task.sleep() и Task.yield()

В Swift Concurrency мы можем использовать Task.sleep() и Task.yield(), чтобы перевести конкретную задачу в режим ожидания или приостановки в течение определённого периода времени. Оба они выглядят и ведут себя одинаково, но есть несколько существенных различий, о которых следует знать Swift-разработчикам.

Зная эти различия, вы сможете лучше понять, когда и как использовать те или иные функции, а также оптимизировать свой код соответствующим образом. Прежде чем перейти к рассмотрению различий, автор сначала объясняет, что делают эти модификаторы.
Читать статью

👉Новости 👉База вопросов
AppTractor Task.sleep() и Task.yield(): в чем разница Оба они выглядят и ведут себя одинаково, но есть несколько существенных различий, о которых следует знать Swift-разработчикам.
Post #110 96
#полезное
🫡 Опасности добавления permission READ_MEDIA_IMAGES

Если вы релизите часто приложение, вы верно знаете о правилах гугла в отношении permission. Автор статьи решает задачу отображения превью существующих фото из девайса. О его попытках можно узнать тут, но как итог - фичу полностью ревертнули, чтобы не блокировать релиз.

👉Новости 👉База вопросов
  • 👎 1
Post #109 96
#Собес
🤔 Объясните концепцию перегрузки операторов в Kotlin.

Перегрузка операторов в Kotlin позволяет определять, как операторы (например, + , -, *) работают с пользовательскими классами. Для этого используется модификатор operator перед функцией, которая описывает поведение оператора. Это улучшает читаемость кода и делает пользовательские классы более интуитивными в использовании.

👉Новости 👉Платформа
Post #108 112
#полезное
😊 Realm-kotlin

SDK для Kotlin Multiplatform и Android, который используется для работы с мобильной базой данных Realm!

🟠 Этот инструмент позволяет эффективно хранить данные в офлайн-режиме и синхронизировать их с Realm Atlas. SDK поддерживает объектно-ориентированные модели данных, асинхронные обновления с использованием корутин и отслеживание изменений данных в реальном времени. Он разработан так, чтобы минимизировать потребление ресурсов.
Гитхаб

👉Новости 👉База вопросов
  • 🔥 1
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 →