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