Forwarded from Arina Shmerkovich
Тренажёры:
https://www.interviewbit.com
topcoder.com
https://www.hackerrank.com
https://yandexdataschool.ru/edu-process/courses/algorithms
https://leetcode.com
https://www.interviewbit.com
topcoder.com
https://www.hackerrank.com
https://yandexdataschool.ru/edu-process/courses/algorithms
https://leetcode.com
InterviewBit
InterviewBit: Coding Interview Questions
Learn and Practice on almost all coding interview questions asked historically and get referred to the best tech companies
Forwarded from Android Broadcast
#Codelab #Coroutines #ArchitectureComponents
Advanced Coroutines with Kotlin Flow and LiveData
Продолжительность: 57 минут
В библиотеках ViewMode, Lifecycle и LiveData 2.2.0 было добавлена расширенная поддержка Kotlin Coroutines:
👉 Специальный билдер
👉 Конвертация
👉 Поддержка запуска
В новой Codelab вы можете найти практическое занятие, которое поможет усвоить вам все аспекты нового функционала, а также расскажет о
Почему стоит обратить внимание на
1️⃣ Это полностью нативный для Kotlin способ для работы с реактивными потоками данных
2️⃣ Он проще чем RxJava. Написать свой оператор намного проще
3️⃣ Flow быстрее RxJava и других существующих реализации Rx на Java/Kotlin (тесты есть в репозитории kotlinx.coroutines)
Advanced Coroutines with Kotlin Flow and LiveData
Продолжительность: 57 минут
В библиотеках ViewMode, Lifecycle и LiveData 2.2.0 было добавлена расширенная поддержка Kotlin Coroutines:
👉 Специальный билдер
liveData {}, который внутри может выполнять suspend функции👉 Конвертация
Flow <-> LiveData👉 Поддержка запуска
Coroutine с Lifecycle и соответсвующие CoroutineScope в Fragment и ActivityВ новой Codelab вы можете найти практическое занятие, которое поможет усвоить вам все аспекты нового функционала, а также расскажет о
Flow, принципах работы с ними и его интеграции в ваши Android приложения для решения распространённых задач.Почему стоит обратить внимание на
Flow?1️⃣ Это полностью нативный для Kotlin способ для работы с реактивными потоками данных
2️⃣ Он проще чем RxJava. Написать свой оператор намного проще
3️⃣ Flow быстрее RxJava и других существующих реализации Rx на Java/Kotlin (тесты есть в репозитории kotlinx.coroutines)
Forwarded from Android Broadcast
#Kotlin #Coroutines #Flow
Instant Search with Kotlin Coroutines
В продолжение темы работы с Coroutine Flow - в статье разбирается задача организации поиска «на лету» (по мере ввода) в UI для Android на основе Flow.
Instant Search with Kotlin Coroutines
В продолжение темы работы с Coroutine Flow - в статье разбирается задача организации поиска «на лету» (по мере ввода) в UI для Android на основе Flow.
helw.net
Kotlin Default Interface Methods and Binary Compatibility
blog of ahmed el-helw
Forwarded from Android Live 🤖
Android Coroutine Recipes
#разработка #статьи #опрос
Уверен, что многие используют Kotlin в своих проектах. Сегодня нет веских причин для того, чтобы писать новые проекты на Java. И я рад, что большинство разработчиков считает так же. Но про способ выполнения асинхронных операций — нет такого четкого мнения.
Coroutines использует далеко не каждый проект, во многих до сих пор используется RxJava по нескольким причинам.
Во-первых, из-за легаси кода в проекте. Ведь много проектов переписывалось с Java, и средство для выполнения асинхронных операций используется то же самое.
Во-вторых, страх использования нового инструмента в большом проекте или отсутствие знаний о нем.
А для того, чтобы пополнить ваши знания о coroutines, предлагаю к прочтению две интересные статьи.
В этой статье можно прочитать про то, как наилучшим образом использовать coroutines. Кратко, емко и с примерами кода.
Тут описаны самые частые ошибки при использовании coroutines. Ненужные async/await, suspend со скрытым dispatcher и несколько других. Все также с примерами и по делу.
А что используется у вас в проекте?
#разработка #статьи #опрос
Уверен, что многие используют Kotlin в своих проектах. Сегодня нет веских причин для того, чтобы писать новые проекты на Java. И я рад, что большинство разработчиков считает так же. Но про способ выполнения асинхронных операций — нет такого четкого мнения.
Coroutines использует далеко не каждый проект, во многих до сих пор используется RxJava по нескольким причинам.
Во-первых, из-за легаси кода в проекте. Ведь много проектов переписывалось с Java, и средство для выполнения асинхронных операций используется то же самое.
Во-вторых, страх использования нового инструмента в большом проекте или отсутствие знаний о нем.
А для того, чтобы пополнить ваши знания о coroutines, предлагаю к прочтению две интересные статьи.
В этой статье можно прочитать про то, как наилучшим образом использовать coroutines. Кратко, емко и с примерами кода.
Тут описаны самые частые ошибки при использовании coroutines. Ненужные async/await, suspend со скрытым dispatcher и несколько других. Все также с примерами и по делу.
А что используется у вас в проекте?
Forwarded from Android Broadcast
#Splash #Coroutines
A Guide on Splash Screen in Android in 2020
Экран-заставка (Splash Screen) довольно часто явление в мобильных приложениях. Цели его разные:
👉 Красивое интро в приложение
👉 Начальная Activity приложения определяется динамически
👉 Быстры рендеринг просто экрана, пока идет инициализация приложения (холодный старт)
👉 Комбинация описанных выше пунктов 😁
В статье рассматриваются рекомендации по созданию Splash Screen:
👉 Использование
👉 Как правильно отсчитывать время до закрытия Splash Screen: Handler / Timer / Coroutines
A Guide on Splash Screen in Android in 2020
Экран-заставка (Splash Screen) довольно часто явление в мобильных приложениях. Цели его разные:
👉 Красивое интро в приложение
👉 Начальная Activity приложения определяется динамически
👉 Быстры рендеринг просто экрана, пока идет инициализация приложения (холодный старт)
👉 Комбинация описанных выше пунктов 😁
В статье рассматриваются рекомендации по созданию Splash Screen:
👉 Использование
android:windowBackground для задания фона экрана👉 Как правильно отсчитывать время до закрытия Splash Screen: Handler / Timer / Coroutines
Medium
🕐 Revisited — 📚 A Guide on Splash Screen in Android in 2020
👀 A fresh look on the splash screen in Android in Kotlin and Coroutines
The onDraw() method is called every time the screen refreshes, which can be many times a second. For performance reasons and to avoid visual glitches, you should do as little work as possible in onDraw(). In particular, don't place allocations in onDraw(), because allocations may lead to a garbage collection that may cause a visual stutter.
Forwarded from Android frameworks
Pokedex
🗡️ Pokedex demonstrates modern Android development with Hilt, Coroutines, Flow, Jetpack (Room, ViewModel), and Material Design based on MVVM architecture.
https://github.com/skydoves/Pokedex
#Hilt #Coroutines #Flow #Jetpack #Material #MVVM
🗡️ Pokedex demonstrates modern Android development with Hilt, Coroutines, Flow, Jetpack (Room, ViewModel), and Material Design based on MVVM architecture.
https://github.com/skydoves/Pokedex
#Hilt #Coroutines #Flow #Jetpack #Material #MVVM
Краткая дока по командам в adb shell
https://adbshell.com/commands
Нашел там, что у adb shell top есть офигенный флаг -H, который позволяет показывать потоки приложений
https://adbshell.com/commands
Нашел там, что у adb shell top есть офигенный флаг -H, который позволяет показывать потоки приложений
Особенная крутость этого способа в том, что он позволяет профилировать приложение на релизных сборках. Но, конечно, по методам он не распишет.
Так выглядит метод, которым я получил эту стату:
-H - тот самый офигенный флаг для вывода потоков
-u
-d 5 - задержка в 5 секунд
adb shell top -s 9 -H -u u0_a302 -d 5
-s 9 - сортировка по 9ой колонке (по процессору)-H - тот самый офигенный флаг для вывода потоков
-u
u0_a302 - выводить потоки только юзера u0_a302, который является нашим приложением (требуется подобрать вручную)-d 5 - задержка в 5 секунд
adb shell top
он тебе покажет список всех процессов, тебе нужен user твоего приложения
в крайней правой колонке пакеты приложений
во второй слева - имена юзеров, которым linux назначает установленные приложения, чтобы одно приложение не имело возможности ковыряться в другом. Ну типа одно приложение - один linux user
он тебе покажет список всех процессов, тебе нужен user твоего приложения
в крайней правой колонке пакеты приложений
во второй слева - имена юзеров, которым linux назначает установленные приложения, чтобы одно приложение не имело возможности ковыряться в другом. Ну типа одно приложение - один linux user