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
Change Retrofit Base URL on Runtime
В каждой нормальной компании, для разработки есть каким минимум 2 среды окружения DEV, PROD, а при хорошем раскладе может быть и больше (DEV, STAGE, BETA, PROD), но не суть. И когда таковых несколько, как то нужно переключаться.
Вариантов может быть несколько:
👉 Прописать урлы в конфиге гредла. Допустимый вариант, но каждое переключение будет требовать пересборки, что затратно по времени.
👉 Переключение в рантайме. То, что нам нужно, супер, мега удобная штука, за которую вы получите отдельный респект от тестировщиков 😎
Вот вам статейка, в которой описан 1 из подходов, с помощью которого можно реализовать смену урлов в рантайме.
В каждой нормальной компании, для разработки есть каким минимум 2 среды окружения DEV, PROD, а при хорошем раскладе может быть и больше (DEV, STAGE, BETA, PROD), но не суть. И когда таковых несколько, как то нужно переключаться.
Вариантов может быть несколько:
👉 Прописать урлы в конфиге гредла. Допустимый вариант, но каждое переключение будет требовать пересборки, что затратно по времени.
👉 Переключение в рантайме. То, что нам нужно, супер, мега удобная штука, за которую вы получите отдельный респект от тестировщиков 😎
Вот вам статейка, в которой описан 1 из подходов, с помощью которого можно реализовать смену урлов в рантайме.
👍1
SOLID Principles: The Kotlin Way
Архитектура архитектурой, а принципы SOLID никто не отменял 😉. В статье найдете примеры по каждому принципу на Kotlin.
Архитектура архитектурой, а принципы SOLID никто не отменял 😉. В статье найдете примеры по каждому принципу на Kotlin.
👍3👎1
Что посмотреть на выходных? Подборка полезностей 👇
👉 Android - Что такое Context
👉 Hilt extensions - MAD Skills
👉 Understanding Gradle
👉 Android Jetpack Compose Q&A
👉 Детектим и автоматизируем рутинные задачи в Android / Сергей Боиштян (Авито)
👉 Android - Что такое Context
👉 Hilt extensions - MAD Skills
👉 Understanding Gradle
👉 Android Jetpack Compose Q&A
👉 Детектим и автоматизируем рутинные задачи в Android / Сергей Боиштян (Авито)
👍1
Don’t abuse Kotlin’s scope functions
Небольшая статейка про то, когда и какие
Небольшая статейка про то, когда и какие
scope functions лучше использовать.👍1
Простой ZoomableImageView своими руками за 2 минуты
Пример реализации кастомной вьюшки для зума картинок через
Иногда реально бывает проще накидать что-то своё, чем искать и подключать стороннюю библиотеку.
Пример реализации кастомной вьюшки для зума картинок через
ScaleGestureDetector. Иногда реально бывает проще накидать что-то своё, чем искать и подключать стороннюю библиотеку.
👍1
Convert Android’s Gradle files from Groovy to Kotlin Step by Step
Пошаговая инструкция по конвертации
Зачем? А чтобы всё в проекте было на Kotlin, удобство, понятный синтаксис, все дела 😎
Пошаговая инструкция по конвертации
Gradle файлов в Kotlin.Зачем? А чтобы всё в проекте было на Kotlin, удобство, понятный синтаксис, все дела 😎
👍1
Что посмотреть на выходных? Подборка полезностей
👉 Idiomatic Kotlin – Result type (What it can do for you!)
👉 Рефакторинг Android-проекта / Евгений Мацюк
👉 Дзен-Мобайл: как ускорить рост приложений
👉 Idiomatic Kotlin – Result type (What it can do for you!)
👉 Рефакторинг Android-проекта / Евгений Мацюк
👉 Дзен-Мобайл: как ускорить рост приложений
👍1
RecyclerView с использованием котлиновских sealed классов
Подход, рассматриваемый в статье вполне себе можно применять, но только для списков, которые могут иметь немного типов, иначе получите лапшу из ифчиков, что не есть хорошо.
А вот тут и тут, можно посмотреть best practices по написанию ифчиков и как от них избавиться с помощью полиморфизма 😎
Подход, рассматриваемый в статье вполне себе можно применять, но только для списков, которые могут иметь немного типов, иначе получите лапшу из ифчиков, что не есть хорошо.
А вот тут и тут, можно посмотреть best practices по написанию ифчиков и как от них избавиться с помощью полиморфизма 😎
👍1
Interview Questions for Android Developer
Большой сборник вопросов для собеседования на позицию Android Developer. Начиная от базовых вопросов по
Большой сборник вопросов для собеседования на позицию Android Developer. Начиная от базовых вопросов по
Java, Kotlin и заканчивая платформенными вопросами (Activity, Intent, Room, Lifecycle, LiveData).👍2
Forwarded from Digital Media
Список Public APIs
Если вам нужно затестить какую-то библиотечку или новый компонент, для которых нужно простое API с данными и вам надоели эти однообразные API погоды, переводчиков и т.д., вот вам огроменный список публичных API для использования в своих пет-проектах, на любой вкус и цвет 😎
Если вам нужно затестить какую-то библиотечку или новый компонент, для которых нужно простое API с данными и вам надоели эти однообразные API погоды, переводчиков и т.д., вот вам огроменный список публичных API для использования в своих пет-проектах, на любой вкус и цвет 😎
👍3