Гайд по тестированию рекламы для мобильных приложений
Оставлю тут статейку про тестирование рекламы в мобильных приложениях. Вдруг кому-то понадобится.
Оставлю тут статейку про тестирование рекламы в мобильных приложениях. Вдруг кому-то понадобится.
Фоновая работа в Android: обзор возможностей WorkManager
Каждый разработчик периодически сталкивается с задачами, которые нужно выполнить в фоне, кейсов может быть множество от загрузки/отгрузки больших данных до синка локальной БД с удаленной. И вот тут начинается делема, как же это сделать. Одним из актуальных решений были Services, но потом появился WorkManager.
Если вы его еще не юзали, на хабре есть отличная статейка, в которой демонстрируются его возможности (периодичность выполнения, цепочки, критерии запуска и т.д.). Кстати, WorkManager совместим с Rx и Корутинами, что очень радует.
Каждый разработчик периодически сталкивается с задачами, которые нужно выполнить в фоне, кейсов может быть множество от загрузки/отгрузки больших данных до синка локальной БД с удаленной. И вот тут начинается делема, как же это сделать. Одним из актуальных решений были Services, но потом появился WorkManager.
Если вы его еще не юзали, на хабре есть отличная статейка, в которой демонстрируются его возможности (периодичность выполнения, цепочки, критерии запуска и т.д.). Кстати, WorkManager совместим с Rx и Корутинами, что очень радует.
👍1
Как работа с тикетом «Тормозит скролл в RecyclerView» растянулась на три недели
Крутой доклад о том, как искать узкие места, какими инструментами пользоваться и как оптимизировать скролл.
Достаточно старый, но тем не менее, актуальный доклад и на сегодняшний день.
Крутой доклад о том, как искать узкие места, какими инструментами пользоваться и как оптимизировать скролл.
Достаточно старый, но тем не менее, актуальный доклад и на сегодняшний день.
2021 Best Open Source Android Apps written in Kotlin
Возможно вы уже видели эту подборку, но все же оставлю на канале. Все проекты не смотрел конечно, но вот понравилась организация и структура кода проекта MoneyFlow. Проект написан на Kotlin Multiplatform, Jetpack Compose и Swift UI.
P.S. Собираю материалы по Compose, скоро сделаю крутую подборку с полезными статейками и инструментами 🔥
Возможно вы уже видели эту подборку, но все же оставлю на канале. Все проекты не смотрел конечно, но вот понравилась организация и структура кода проекта MoneyFlow. Проект написан на Kotlin Multiplatform, Jetpack Compose и Swift UI.
P.S. Собираю материалы по Compose, скоро сделаю крутую подборку с полезными статейками и инструментами 🔥
Получаем результат правильно. Activity Result API.
Как все мы уже знаем,
Если вы еще не в теме или не успели заюзать, на хабре есть серия статей "Получаем результат правильно". Вот тут первая часть, а вот тут вторая.
Как все мы уже знаем,
onActivityResult() объявлен deprecated, а на его замену пришел Activity Result API.Если вы еще не в теме или не успели заюзать, на хабре есть серия статей "Получаем результат правильно". Вот тут первая часть, а вот тут вторая.
Бесплатный курс Kotlin Basics от JetBrains
На платформе JetBrains Academy добавлен бесплатный курс Kotlin Basic, который включает в себя 10 проектов разного уровня сложности, более 120 образовательных тем и более 300 задач по программированию.
На платформе JetBrains Academy добавлен бесплатный курс Kotlin Basic, который включает в себя 10 проектов разного уровня сложности, более 120 образовательных тем и более 300 задач по программированию.
Hilt. Подборка полезных материалов.
Если кто-то еще не знает, Hilt – DI библиотека, которая работает поверх Dagger и якобы упрощает жизнь, за счет готовых компонентов и генерируемого bolierplate кода.
Сам я Hilt еще не юзал, поэтому решил закинуть на канал подборку. Возможно кому-то тоже будет полезно.
1. Официальная дока (En)
2. Hilt+Retrofit+Coroutine (Ru). В статье описаны базовые штуки.
3. Hilt еще один DI (Ru). Еще одна статья, в которой описаны основные моменты.
4. Пример проекта (En) с исользованием Hilt, MVVM, Coroutines, Flow.
5. Кратчайшее руководство (Ru) по Hilt
Если кто-то еще не знает, Hilt – DI библиотека, которая работает поверх Dagger и якобы упрощает жизнь, за счет готовых компонентов и генерируемого bolierplate кода.
Сам я Hilt еще не юзал, поэтому решил закинуть на канал подборку. Возможно кому-то тоже будет полезно.
1. Официальная дока (En)
2. Hilt+Retrofit+Coroutine (Ru). В статье описаны базовые штуки.
3. Hilt еще один DI (Ru). Еще одна статья, в которой описаны основные моменты.
4. Пример проекта (En) с исользованием Hilt, MVVM, Coroutines, Flow.
5. Кратчайшее руководство (Ru) по Hilt
Safe delay in Android Views: goodbye Handlers, Hello Coroutines!
Уверен, все вы использовали
Для таких кейсов, есть элегантное решение – Kotlin + Coroutine + Lifecycle, для использования, достаточно подрубить несколько зависимостей и использовать экстеншн метод
Уверен, все вы использовали
Handler для выполнения операций с задержкой (postDelay) и наверняка сталкивались с проблемами/крешами, из-за чего приходилось городить дополнительные проверки – классика. А все потому, что Handler имеет один жирный минус – не имеет привязки к жизненному циклу Activity/Fragment/View.Для таких кейсов, есть элегантное решение – Kotlin + Coroutine + Lifecycle, для использования, достаточно подрубить несколько зависимостей и использовать экстеншн метод
View.delayOnLifecycle(...). В статье можно посмотреть, как все это дело подрубить.👍3
Что посмотреть на выходных? Подборка полезностей 👇
👉 Performance - MAD Skills. Плейлист MADSkills по производительности приложений.
👉 Android Custom View. Крутые видосы про создание кастомных вьюшек.
👉 Jetpack DataStore. Основы DataStore с примерами кода.
👉 Performance - MAD Skills. Плейлист MADSkills по производительности приложений.
👉 Android Custom View. Крутые видосы про создание кастомных вьюшек.
👉 Jetpack DataStore. Основы DataStore с примерами кода.
👍1
Android in-app purchases
Один из способов монетизации приложений – встроенные покупки/подписки внутри приложения. На хабре есть целая серия статей от крутых ребят, с подробным руководством по использованию.
Если хотите подрубить в свое приложение или просто разобраться в in-app purchase, закидывайте пост в закладки 😎
Часть 1: конфигурация и добавление в проект
Часть 2: инициализация и обработка покупок
Часть 3: получение активных покупок и смена подписки
Часть 4: коды ошибок от Billing Library и как не облажаться с тестированием
Один из способов монетизации приложений – встроенные покупки/подписки внутри приложения. На хабре есть целая серия статей от крутых ребят, с подробным руководством по использованию.
Если хотите подрубить в свое приложение или просто разобраться в in-app purchase, закидывайте пост в закладки 😎
Часть 1: конфигурация и добавление в проект
Часть 2: инициализация и обработка покупок
Часть 3: получение активных покупок и смена подписки
Часть 4: коды ошибок от Billing Library и как не облажаться с тестированием
Производительность и скорость: как в Duolingo внедрили MVVM на Android
Статья, о том, как в Duolingo удалось повысить производительность и скорость работы приложения за счет рефакторинга и внедрения MVVM, Android Jetpack, Dagger и Hilt.
👉 количество ANR снизилось на 41%
👉 увеличили frame rate на 28%
👉 на 40% увеличилась скорость прокрутки уроков
Статья, о том, как в Duolingo удалось повысить производительность и скорость работы приложения за счет рефакторинга и внедрения MVVM, Android Jetpack, Dagger и Hilt.
👉 количество ANR снизилось на 41%
👉 увеличили frame rate на 28%
👉 на 40% увеличилась скорость прокрутки уроков
Серия статей по работе с Gradle
Достаточно полезные статьи, в которых максимально подробно описаны базовые моменты, конфигурации, зависимости, сборки, таски, плагины и вот это вот всё.
👉 Готовьсь, цельсь, пли! Как не обжечься при сборке Gradle-приложения, и настолько ли всё серьезно?
👉 Gradle Plugin: Что, зачем и как?
👉 Дикая природа Gradle Task: руководство по выживанию
Достаточно полезные статьи, в которых максимально подробно описаны базовые моменты, конфигурации, зависимости, сборки, таски, плагины и вот это вот всё.
👉 Готовьсь, цельсь, пли! Как не обжечься при сборке Gradle-приложения, и настолько ли всё серьезно?
👉 Gradle Plugin: Что, зачем и как?
👉 Дикая природа Gradle Task: руководство по выживанию
Android in-app purchases: серверная валидация покупок
Вышла 5-я часть цикла статей по реализации Android in-app purchases. В статье рассказывают про то, что такое серверная валидация и зачем валидировать покупки.
Вышла 5-я часть цикла статей по реализации Android in-app purchases. В статье рассказывают про то, что такое серверная валидация и зачем валидировать покупки.
Что посмотреть на выходных? Подборка полезностей👇
👉 Mobile QA от создания ферм до тонкостей релиза
👉 Экспертное Android собеседование. Боиштян собеседует Розова
👉 Публичное собеседование по многопоточности в Android / Сергей Боиштян (Авито)
Из собесов я сделал несколько важных заметок, на которые стоит обратить внимание и хотя бы поверхностно знать. Подготовлю материалы и закину отдельным постом 🤟
👉 Mobile QA от создания ферм до тонкостей релиза
👉 Экспертное Android собеседование. Боиштян собеседует Розова
👉 Публичное собеседование по многопоточности в Android / Сергей Боиштян (Авито)
Из собесов я сделал несколько важных заметок, на которые стоит обратить внимание и хотя бы поверхностно знать. Подготовлю материалы и закину отдельным постом 🤟
👍1
Оптимизируем отображение 10 000 объектов на карте
Интересная статья, о том, как в приложении ЦИАН оптимизировали отображение большого количества объектов на карте.
Я бы конечно поспорил на счет приведенных аргументов не использовать кластеризацию, но да ладно 😉
Интересная статья, о том, как в приложении ЦИАН оптимизировали отображение большого количества объектов на карте.
Я бы конечно поспорил на счет приведенных аргументов не использовать кластеризацию, но да ладно 😉
👍1
Improving perceived load times of images using blurred thumbnails — with Glide and custom loaders
Существует такой подход (Progressive image loading), когда картинка загружается частями, нужно это для того, чтобы улучшить воспринимаемое время загрузки. В статье показан 1 из подходов через Glide, с помощью которого можно сделать такую загрузку.
Работает это так: вначале загружается размытая картинка (можно с более меньшими размерами) через
О загрузке картинок из сети, с вашего бэка. Будет вообще красиво, если на бэке будет использоваться Thumbor – сервис, который поддерживает всевозможные трансформации картинок от ресайзов до различных кропов, фильтров и т.д.
Существует такой подход (Progressive image loading), когда картинка загружается частями, нужно это для того, чтобы улучшить воспринимаемое время загрузки. В статье показан 1 из подходов через Glide, с помощью которого можно сделать такую загрузку.
Работает это так: вначале загружается размытая картинка (можно с более меньшими размерами) через
thumbnail, и параллельно грузится картинка нужного размера.
О загрузке картинок из сети, с вашего бэка. Будет вообще красиво, если на бэке будет использоваться Thumbor – сервис, который поддерживает всевозможные трансформации картинок от ресайзов до различных кропов, фильтров и т.д.
👍1
10 лучших советов по повышению скорости сборки Android-проектов
В статье собраны 10 советов, которые могут ускорить сборку вашего проекта. Обратите внимание на 8 пункт: Использование динамических версий в Gradle зависимостях.
Никогда так не делайте, можно напороться на отсутствие каких-то методов в новой версии или отличное поведение работы той или иной функции. Всегда управляйте версиями зависимостей самостоятельно – проверено 😉.
В статье собраны 10 советов, которые могут ускорить сборку вашего проекта. Обратите внимание на 8 пункт: Использование динамических версий в Gradle зависимостях.
compile 'com.android.support:appcompat-v7:+'
Никогда так не делайте, можно напороться на отсутствие каких-то методов в новой версии или отличное поведение работы той или иной функции. Всегда управляйте версиями зависимостей самостоятельно – проверено 😉.
👍1
Как Telegram оптимизирует изображения перед отправкой на сервер
Еще одна интересная статья про работу с изображениями. Автор поковырял исходники телеграм и изложил алгоритм сжатия картинок в статье. Ну и выложил готовый класс хелпер на гитхаб, который можете заюзать у себя в проекте 😉
Кстати, если кто не знает – у телеги открытый код, посмотреть на его чудо архитектуру можно тут.
Еще одна интересная статья про работу с изображениями. Автор поковырял исходники телеграм и изложил алгоритм сжатия картинок в статье. Ну и выложил готовый класс хелпер на гитхаб, который можете заюзать у себя в проекте 😉
Кстати, если кто не знает – у телеги открытый код, посмотреть на его чудо архитектуру можно тут.
👍4
8 распространенных ошибок при разработке Android-приложений
В статье собраны распространенные ошибки при разработке Android-приложений.
Если коротко: юзайте библиотеки Jetpack, Kotlin, корутины, следите за структурой проекта (строки, цвета), используйте фрагменты и все возможности
Обратите внимание на 7 пункт о возможностях Android Studio – shortcuts и live template реально позволяют ускорить разработку, если по каким-то причинам до сих пор не юзали – обязательно попробуйте.
В статье собраны распространенные ошибки при разработке Android-приложений.
Если коротко: юзайте библиотеки Jetpack, Kotlin, корутины, следите за структурой проекта (строки, цвета), используйте фрагменты и все возможности
ConstraintLayout.Обратите внимание на 7 пункт о возможностях Android Studio – shortcuts и live template реально позволяют ускорить разработку, если по каким-то причинам до сих пор не юзали – обязательно попробуйте.
👍1