#видео
👍 Decompose шаг за шагом
Если вы хотели попробовать Decompose, но не знали, с чего начать, то специально для вас Максим Казанцев выпустил подробный туториал по библиотеке. Шаг за шагом автор покажет, как создать простое приложение и познакомит вас со всеми основными компонентами Decompose.
Это лишь первая часть серии видео, в которых вы подробно узнаете, как использовать Decompose на разных платформах.
📱 Смотреть на YouTube
👉 Новости 👉 Платформа
Если вы хотели попробовать Decompose, но не знали, с чего начать, то специально для вас Максим Казанцев выпустил подробный туториал по библиотеке. Шаг за шагом автор покажет, как создать простое приложение и познакомит вас со всеми основными компонентами Decompose.
Это лишь первая часть серии видео, в которых вы подробно узнаете, как использовать Decompose на разных платформах.
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое data class в Kotlin?
Data class в Kotlin - это специальный тип класса, предназначенный для хранения данных. Он автоматически генерирует стандартные методы, такие как
👉 Новости 👉 Платформа
Data class в Kotlin - это специальный тип класса, предназначенный для хранения данных. Он автоматически генерирует стандартные методы, такие как
equals(), hashCode() , toString() , и сору() , основываясь на свойствах, определенных в классе. Data class полезен для создания структур, хранящих данные, с минимальными усилиями по написанию дополнительного кода.Please open Telegram to view this post
VIEW IN TELEGRAM
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, которые имеют доступ к высокоточному источнику времени.
Читать статью
👉 Новости 👉 Платформа
Google выпустил новое API для безопасной работы с временем на устройстве.
TrustedTime использует защищенную инфраструктуру Google для предоставления надежного источника времени и периодически синхронизирует свои часы с серверами Google, которые имеют доступ к высокоточному источнику времени.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес
🤔 Объясните концепцию расширений функций в Kotlin.
Расширение функций в Kotlin позволяет добавлять новые функции к существующим классам без их изменения. Это достигается путем создания специальных функций, которые могут быть вызваны на экземпляре существующего класса. Такое расширение удобно для добавления полезных методов или для улучшения функциональности классов.
👉 Новости 👉 Платформа
Расширение функций в Kotlin позволяет добавлять новые функции к существующим классам без их изменения. Это достигается путем создания специальных функций, которые могут быть вызваны на экземпляре существующего класса. Такое расширение удобно для добавления полезных методов или для улучшения функциональности классов.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
#полезное
😊 Krontab
Это библиотека Kotlin, которая позволяет планировать выполнение задач с использованием синтаксиса, похожего на Crontab!
🟠 Она интегрируется с Kotlin Coroutines, обеспечивая эффективное и простое планирование повторяющихся или отложенных задач в приложениях.
🖥 Гитхаб
👉 Новости 👉 Платформаa
Это библиотека Kotlin, которая позволяет планировать выполнение задач с использованием синтаксиса, похожего на Crontab!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#статьи
😊 Koin: Простой и легковесный фреймворк для внедрения зависимостей
Принцип внедрения зависимостей становится все более неотъемлемой частью процесса разработки. Без него сложно представить себе достижение желанного разделения обязанностей в коде или обеспечение должного уровня тестируемости.
Читать статью
👉 Новости 👉 Платформа
Принцип внедрения зависимостей становится все более неотъемлемой частью процесса разработки. Без него сложно представить себе достижение желанного разделения обязанностей в коде или обеспечение должного уровня тестируемости.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Teletype
Koin: Простой и легковесный фреймворк для внедрения зависимостей
Принцип внедрения (инжектирования) зависимостей становится все более неотъемлемой частью процесса разработки. Без него сложно...
#полезное
👍 Orbit-MVI
Это легковесная библиотека Model-View-Intent (MVI) в приложениях на Kotlin!
🟠 Она предоставляет простой и интуитивный API для управления состоянием и обработки действий пользователя. Основное назначение Orbit — помочь разработчикам создавать масштабируемые, тестируемые и легко поддерживаемые приложения. Библиотека интегрируется с популярными инструментами и архитектурными компонентами, такими как Jetpack Compose, ViewModel, SavedState и RxJava.
Гитхаб
👉 Новости 👉 Платформа
Это легковесная библиотека Model-View-Intent (MVI) в приложениях на Kotlin!
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое sealed class в Kotlin?
Sealed class в Kotlin - это класс, который имеет ограниченное количество подтипов, все из которых должны быть определены внутри этого класса. Sealed классы полезны для создания иерархий типов с ограниченным набором вариантов, что позволяет более безопасно и полно обрабатывать все возможные случаи, например, с помощью выражений
👉 Новости 👉 Платформа
Sealed class в Kotlin - это класс, который имеет ограниченное количество подтипов, все из которых должны быть определены внутри этого класса. Sealed классы полезны для создания иерархий типов с ограниченным набором вариантов, что позволяет более безопасно и полно обрабатывать все возможные случаи, например, с помощью выражений
when .Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😍 Создаем понятный и приятный глазу пользовательский интерфейс без привлечения дизайнера
— нейронка Galileo AI справится даже со сложным таском на UI и сэкономит часы при разработке, а также бюджет проекта.
🟠 Создает дизайны ЛЮБЫХ приложений.
🟠 Работает шустро.
🟠 Готовый результат можно редачить сразу.
🟠 Есть возможность экспорта в Figma напрямую.
Тестируем здесь.
👉 Новости 👉 Платформа
— нейронка Galileo AI справится даже со сложным таском на UI и сэкономит часы при разработке, а также бюджет проекта.
Тестируем здесь.
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".
Пример:
👨💻 Алгоритм:
1⃣ Инициализируйте две очереди для хранения индексов сенаторов от партий Radiant и Dire.
2⃣ Выполните цикл, пока обе очереди не станут пустыми: Сравните индексы первых сенаторов из обеих очередей. Удалите сенатора с меньшим индексом из очереди и добавьте его с индексом, увеличенным на длину строки. Удалите сенатора с большим индексом из очереди.
3⃣ Если одна из очередей опустела, объявите победу партии, чья очередь еще содержит сенаторов.
😎 Решение:
👉 Новости 👉 Платформа
Задача: 649. Dota2 Senate
В мире Dota2 есть две партии: Radiant и Dire. Сенат Dota2 состоит из сенаторов, представляющих две партии. Теперь сенат хочет принять решение об изменении игры Dota2. Голосование за это изменение проходит в несколько раундов. В каждом раунде каждый сенатор может воспользоваться одним из двух прав: Запретить право одного сенатора: Сенатор может заставить другого сенатора потерять все свои права в этом и всех последующих раундах. Объявить о победе: Если этот сенатор обнаружил, что все сенаторы, у которых еще есть право голоса, принадлежат к одной партии, он может объявить о победе и принять решение об изменении игры. Дана строка senate, представляющая партийную принадлежность каждого сенатора. Символы "R" и "D" обозначают партию Лучезарных и партию Ужасных. Если сенаторов n, то размер данной строки будет равен n. Процедура голосования по кругу начинается от первого сенатора к последнему в заданном порядке. Эта процедура длится до конца голосования. Все сенаторы, потерявшие свои права, будут пропущены во время процедуры. Предположим, что каждый сенатор достаточно умен и будет играть по лучшей стратегии для своей партии. Предскажите, какая партия в итоге объявит о победе и изменит игру в Dota2. На выходе должно получиться "Radiant" или "Dire".
Пример:
Input: senate = "RD"
Output: "Radiant"
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 позволяют создавать анонимные обьекты с определённым поведением, которые могут реализовывать интерфейсы или наследовать классы. Эти объекты полезны, когда нужно создать объект для одноразового использования, без создания отдельного именованного класса. Они делают код более компактным и выразительным.
👉 Новости 👉 Платформа
Object expressions в Kotlin позволяют создавать анонимные обьекты с определённым поведением, которые могут реализовывать интерфейсы или наследовать классы. Эти объекты полезны, когда нужно создать объект для одноразового использования, без создания отдельного именованного класса. Они делают код более компактным и выразительным.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
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.
Читать статью
👉 Новости 👉 Платформа
Для создания динамичных и визуально привлекательных карт иногда требуется отображать изображения, например, аватары пользователей, загружаемые с сервера.
В статье автор рассматривает, как загрузить изображение через Coil и отобразить его на карте при помощи SDK для Yandex MapKit.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
#Собес
🤔 Что такое корутины в Kotlin?
Корутины в Kotlin - это механизм для асинхронного программирования, который позволяет писать код, как обычный последовательный, но с возможностью приостановки и возобновления выполнения без блокировки потока. Они упрощают работу с параллельными задачами и позволяют выполнять асинхронные операции в удобной и структурированной форме.
👉 Новости 👉 Платформа
Корутины в Kotlin - это механизм для асинхронного программирования, который позволяет писать код, как обычный последовательный, но с возможностью приостановки и возобновления выполнения без блокировки потока. Они упрощают работу с параллельными задачами и позволяют выполнять асинхронные операции в удобной и структурированной форме.
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🤯 Генерим любое мобильное приложение за пару кликов
Cursor может синхронинизироваться как с Xcode, так и Android Studio. Нужен только интернет, ноут и всего ОДИН промпт.
Разработчик пошагово показал весь процесс на видосе — он создал софт для медитации без единой строки кода.
Гайд тут
👉 Новости 👉 Платформа
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, которая добавляет эффект размытия фона!
Гитхаб
👉 Новости 👉 База вопросов
Библиотека для Jetpack Compose и Compose Multiplatform, которая добавляет эффект размытия фона!
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2