Android Mobile | YeaHub
431 subscribers
332 photos
21 videos
597 links
Теория, подготовка к интервью и курсы для Android разработчиков

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#видео
👍 Decompose шаг за шагом

Если вы хотели попробовать Decompose, но не знали, с чего начать, то специально для вас Максим Казанцев выпустил подробный туториал по библиотеке. Шаг за шагом автор покажет, как создать простое приложение и познакомит вас со всеми основными компонентами Decompose.

Это лишь первая часть серии видео, в которых вы подробно узнаете, как использовать Decompose на разных платформах.
📱 Смотреть на YouTube

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое data class в Kotlin?

Data class в Kotlin - это специальный тип класса, предназначенный для хранения данных. Он автоматически генерирует стандартные методы, такие как equals(), hashCode() , toString() , и сору() , основываясь на свойствах, определенных в классе. Data class полезен для создания структур, хранящих данные, с минимальными усилиями по написанию дополнительного кода.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 С сеткой на мобилках больше не паримся нашел простой гайд как юзать гриды на экранах смартфонов с iOS и Android.

Все параметры указаны вплоть до пикселя.

Сохраняем себе и подсматриваем во время работы.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
👍 Why Not Compose!

Репозиторий представляет собой сборник коллекций анимаций, композиций и пользовательских интерфейсов с использованием Jetpack Compose.
Гитхаб

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2❤1
#новости
😊 TrustedTime API: Introducing a reliable approach to time keeping for your apps

Google выпустил новое API для безопасной работы с временем на устройстве.

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес
🤔 Объясните концепцию расширений функций в Kotlin.

Расширение функций в Kotlin позволяет добавлять новые функции к существующим классам без их изменения. Это достигается путем создания специальных функций, которые могут быть вызваны на экземпляре существующего класса. Такое расширение удобно для добавления полезных методов или для улучшения функциональности классов.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
#полезное
😊 Krontab
Это библиотека Kotlin, которая позволяет планировать выполнение задач с использованием синтаксиса, похожего на Crontab!

🟠 Она интегрируется с Kotlin Coroutines, обеспечивая эффективное и простое планирование повторяющихся или отложенных задач в приложениях.
🖥 Гитхаб

👉Новости 👉Платформаa
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#статьи
😊 Koin: Простой и легковесный фреймворк для внедрения зависимостей

Принцип внедрения зависимостей становится все более неотъемлемой частью процесса разработки. Без него сложно представить себе достижение желанного разделения обязанностей в коде или обеспечение должного уровня тестируемости.
Читать статью

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 Orbit-MVI

Это легковесная библиотека Model-View-Intent (MVI) в приложениях на Kotlin!

🟠 Она предоставляет простой и интуитивный API для управления состоянием и обработки действий пользователя. Основное назначение Orbit — помочь разработчикам создавать масштабируемые, тестируемые и легко поддерживаемые приложения. Библиотека интегрируется с популярными инструментами и архитектурными компонентами, такими как Jetpack Compose, ViewModel, SavedState и RxJava.
Гитхаб

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое sealed class в Kotlin?

Sealed class в Kotlin - это класс, который имеет ограниченное количество подтипов, все из которых должны быть определены внутри этого класса. Sealed классы полезны для создания иерархий типов с ограниченным набором вариантов, что позволяет более безопасно и полно обрабатывать все возможные случаи, например, с помощью выражений when .

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
😊 Пример(EN,6м) реализации онбординга (рассказ про новые элементы приложения) пользователю на Compose Multiplatform. Решается задача определения положения Compose элемента на экране, затемнение фона и показ подсказки, где есть свободное место на экране
Тык сюда

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😍 Создаем понятный и приятный глазу пользовательский интерфейс без привлечения дизайнера

—
нейронка Galileo AI справится даже со сложным таском на UI и сэкономит часы при разработке, а также бюджет проекта.

🟠 Создает дизайны ЛЮБЫХ приложений.
🟠 Работает шустро.
🟠 Готовый результат можно редачить сразу.
🟠 Есть возможность экспорта в Figma напрямую.
Тестируем здесь.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 649. Dota2 Senate

В мире Dota2 есть две партии: Radiant и Dire. Сенат Dota2 состоит из сенаторов, представляющих две партии. Теперь сенат хочет принять решение об изменении игры Dota2. Голосование за это изменение проходит в несколько раундов. В каждом раунде каждый сенатор может воспользоваться одним из двух прав: Запретить право одного сенатора: Сенатор может заставить другого сенатора потерять все свои права в этом и всех последующих раундах. Объявить о победе: Если этот сенатор обнаружил, что все сенаторы, у которых еще есть право голоса, принадлежат к одной партии, он может объявить о победе и принять решение об изменении игры. Дана строка senate, представляющая партийную принадлежность каждого сенатора. Символы "R" и "D" обозначают партию Лучезарных и партию Ужасных. Если сенаторов n, то размер данной строки будет равен n. Процедура голосования по кругу начинается от первого сенатора к последнему в заданном порядке. Эта процедура длится до конца голосования. Все сенаторы, потерявшие свои права, будут пропущены во время процедуры. Предположим, что каждый сенатор достаточно умен и будет играть по лучшей стратегии для своей партии. Предскажите, какая партия в итоге объявит о победе и изменит игру в Dota2. На выходе должно получиться "Radiant" или "Dire".

Пример:
Input: senate = "RD"
Output: "Radiant"


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

1⃣Инициализируйте две очереди для хранения индексов сенаторов от партий Radiant и Dire.

2⃣Выполните цикл, пока обе очереди не станут пустыми: Сравните индексы первых сенаторов из обеих очередей. Удалите сенатора с меньшим индексом из очереди и добавьте его с индексом, увеличенным на длину строки. Удалите сенатора с большим индексом из очереди.

3⃣Если одна из очередей опустела, объявите победу партии, чья очередь еще содержит сенаторов.

😎 Решение:
fun predictPartyVictory(senate: String): String {
val radiant = ArrayDeque<Int>()
val dire = ArrayDeque<Int>()

for (i in senate.indices) {
if (senate[i] == 'R') {
radiant.add(i)
} else {
dire.add(i)
}
}

while (radiant.isNotEmpty() && dire.isNotEmpty()) {
val r = radiant.removeFirst()
val d = dire.removeFirst()
if (r < d) {
radiant.add(r + senate.length)
} else {
dire.add(d + senate.length)
}
}

return if (radiant.isEmpty()) "Dire" else "Radiant"
}


👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Объясните концепцию object expressions в Kotlin.

Object expressions в Kotlin позволяют создавать анонимные обьекты с определённым поведением, которые могут реализовывать интерфейсы или наследовать классы. Эти объекты полезны, когда нужно создать объект для одноразового использования, без создания отдельного именованного класса. Они делают код более компактным и выразительным.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Джун: пашет сутками и ловит кучу ошибок.

Тот самый тимлид с зп 700к в секунду:

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Упрощенное тестирование ViewModel

Начиная с androidx.lifecycle:lifecycle-viewmodel-testing:2.9.0-alpha01 нам доступна структура ViewModelScenario для проверки того как ViewModel переживает реконфигурацию или восстановление состояния. Пример:

class MyViewModelTest {

@Test
fun testStateRestoration() = runTest { // this: TestScope
viewModelScenario { // this: CreationExtras
MyViewModel(
scope = this@runTest,
handle = createSavedStateHandle(),
)
}.use { scenario: ViewModelScenario ->
// Устанавливаем `ViewModel` state.
scenario.recreate()
// Проверяем что state восстановился корректно
}
}
}

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
🏕 Pисуем аватарки на карте

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

В статье автор рассматривает, как загрузить изображение через Coil и отобразить его на карте при помощи SDK для Yandex MapKit.
Читать статью

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
#Собес
🤔 Что такое корутины в Kotlin?

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🤯 Генерим любое мобильное приложение за пару кликов

Cursor может синхронинизироваться как с Xcode, так и Android Studio. Нужен только интернет, ноут и всего ОДИН промпт.

Разработчик пошагово показал весь процесс на видосе — он создал софт для медитации без единой строки кода.
Гайд тут

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
👍 Haze

Библиотека для Jetpack Compose и Compose Multiplatform, которая добавляет эффект размытия фона!
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2