
По данным исследований (Data.ai, Sensor Tower, Statista), Android-приложения имеют на 10-30% более низкие оценки, чем iOS-аналоги. Например, приложение может получить 4,5 на iOS и 3,5-4,0 на Android.
Меня зовут Анастасия Симонова, я Android-разработчик в команде Домклик. Поделюсь нюансами разработки под Android и предложу некоторые решения для избежания проблем в будущем. Готовы? Приступим!
Важно понимать, что в крупных корпоративных приложениях рейтинг зачастую зависит не только от качества самого приложения, но и от общего уровня сервиса, предоставляемого пользователям. Если проанализировать отзывы, оставленные пользователями, становится очевидным, что многие из них касаются не функциональности приложения, а проблем с обслуживанием или недовольством работой компании в целом. Например, распространенные комментарии включают: "Менеджеры ничего не знают", "В чате не отвечают", "Заказал обратный звонок — 3 дня никто не перезванивает", "Ставка 25%, кто будет брать ипотеку?". Поэтому важно не только разрабатывать качественное приложение, но и обеспечивать высокий уровень сервиса. В этой статье мы сосредоточим внимание на корнеркейсы Android-разработки, которые могут повлиять на пользовательский опыт и, соответственно, на рейтинг приложения.
Оглавление
Размер и производительность приложения

Проблема: неоптимизированные приложения для устройств с низкими характеристиками (1-2 ГБ ОЗУ) могут работать медленно и вызывать сбои, что приводит к негативным отзывам. Бюджетные устройства нередко страдают от недостатка объёма внутреннего хранилища для установки и обновления приложений, что также вызывает недовольство пользователей.
Актуальность: подавляющее большинство проданных смартфонов в 2023 году являются бюджетными, и большинство из них имеют менее 32 ГБ памяти. 60 % пользователей бюджетных смартфонов сталкиваются с проблемами её нехватки. Почти 70 % пользователей ожидают, что приложения будут работать быстро, даже на устройствах с ограниченными ресурсами, а медленная работа может увеличить количество негативных отзывов на 35 %.
Решение: оптимизация кода, управление хранилищем и использование легковесных данных (изображения, видео, анимации) повышают производительность и уменьшают потребление памяти. Тестирование нужно проводить на различных устройствах, включая бюджетные модели. Таĸже рассмотрите возможность использования облачных или ĸорпоративных ферм для тестирования.
Примеры решений и оптимизаций
Видео и аудио:
Используйте стандартные форматы и кодеки (H.264 для видео, AAC для аудио).
Предварительно конвертируйте видео в более совместимые форматы или применяйте облачные решения.
Анимации:
Используйте встроенный профайлер Android Studio для мониторинга производительности и уменьшения тяжёлых операций в UI-потоке.
Используйте легковесные векторные анимации с Lottie для улучшения отзывчивости.
Изображения:
Используйте библиотеки, такие как Glide или Coil, для автоматической обработки форматов и кеширования изображений.
Создавайте адаптивные ресурсы для различных плотностей экрана.
Системные ресурсы:
Оптимизируйте фоновую работу, избегая активных процессов, которые могут разряжать батарею (например, GPS).
Используйте WorkManager или JobScheduler для управления фоновыми процессами.
Анализируйте использование ресурсов (процессора, памяти, сети) с помощью Android Profiler.
Управление памятью:
Оптимизируйте данные, используя сжатие (например, WebP) и удаляя неиспользуемые компоненты.
Удаляйте неиспользуемый код для старых версий Android и поддерживайте только необходимые API. Применяйте ProGuard/R8 для уменьшения размера APK и используйте режим сборки release для финальных версий.
Используйте динамические модули и отложенную загрузку для больших ресурсов.
Минимизируйте зависимости от внешних библиотек и выбирайте лёгкие альтернативы.
Используйте apk analyzer и gradle profiler для выявления проблем с памятью. Также используйте Android App Bundle для оптимизации загрузки.
Отсутствие поддержки стандартных API

Проблема: отсутствие поддержки стандартных API на некоторых устройствах (например, от Huawei) ограничивает функциональность приложений, что может вызывать недовольство пользователей из-за недостатка привычных возможностей.
Актуальность: в 2023 году более 25 % смартфонов работают без Google Services, что требует адаптации под них. Исследование AppFigures показало, что 30 % пользователей недовольны ограниченной функциональностью таких приложений.
Решение: разработчики могут использовать альтернативные решения и внедрять различные flavors для настройки приложений под разные магазины и API. Это поможет адаптировать функциональность под уникальные требования устройств.
Примеры: устройства без Google Services (например, Huawei) создают собственные экосистемы и API. Например, Huawei AppGallery и HMS предоставляют аналоги функций Google. Также на некоторых устройствах механизм WebView может работать некорректно или вовсе не работать.
Рекомендации:
Тестируйте на устройствах без Google Services для выявления проблем на ранней стадии.
Заменяйте зависимости от Google на альтернативные решения, например, Organic Maps для работы с картами.
Участвуйте в форумах и платформах разработчиков для получения актуальной информации и поддержки.
Качество и стабильность

Проблема: некорректно выстроенные пользовательские пути в фичах приложения и частые падения могут привести к негативному пользовательскому опыту и снижению рейтинга в магазинах приложений, а также к удалению приложения.
Актуальность: по данным исследования, более 70 % пользователей удаляют приложение после одной неудачной попытки его использования. В условиях высокой конкуренции на рынке мобильных приложений качество и стабильность стали важнейшими факторами успеха. Приложения с высокими рейтингами, как правило, предлагают пользователям плавный и надёжный опыт.
Решения:
Используйте инструменты для отслеживания статистики падений приложения, такие как Firebase, AppMetrica или Sentry, и создавайте план регулярных обновлений приложения, чтобы исправлять замеченные баги.
Детально анализируйте текущие пользовательские пути, выявляя узкие места и точки, где пользователи сталкиваются с трудностями. Используйте методы прототипирования и тестирования, чтобы оптимизировать взаимодействие. Проводите А/Б-тестирование.
Проводите ревизию кода для улучшения структуры и качества, а также используйте современные паттерны проектирования, способствующие более стабильной работе приложения.
Проведите нагрузочное тестирование вашего приложения, чтобы убедиться в его способности справляться с большим количеством пользователей и запросов одновременно.
Следите за обновлениями зависимостей и библиотек, чтобы использовать последние версии, которые могут улучшить производительность и исправить известные ошибки.
Собирайте отзывы пользователей о производительности приложения и используйте их для выявления проблем и улучшения качества.
Безопасность данных

Проблема: недостаточная защита пользовательских данных и утечки конфиденциальной информации угрожают репутации приложения и снижению доверия пользователей, особенно когда приложения требуют ненужные разрешения.
Актуальность: 70 % пользователей считают безопасность данных важным фактором при выборе приложения. В 2023 году утечки данных увеличились на 45 %, что ведёт к потере до 50 % рейтинга и удалению приложений 62 % пользователей.
Решение: разработчики должны использовать современные методы шифрования и безопасные протоколы (например, HTTPS), а также предоставлять прозрачные политики конфиденциальности.
Методы обеспечения безопасности:
Используйте для защиты информации современные алгоритмы, такие как AES.
Не допускайте передачу чувствительны данных без шифрования. Используйте HTTPS для безопасных запросов, например с помощью библиотеки OkHttp.
Не запрашивайте у пользователей лишних разрешений. Например, если вашему приложению не требуется доступ к камере или геолокации для выполнения его основных функций, не запрашивайте эти разрешения.
Внедрите двухфакторную аутентификацию, используя Google Authenticator или SMS-верификацию.
Обновляйте приложение и его зависимости для устранения уязвимостей.
Создайте понятную политику конфиденциальности о том, как используются данные пользователей.
UX

Проблема: разные размеры экранов и разрешения могут вызывать проблемы с отображением интерфейса, что приводит к недовольству пользователей.
Актуальность: в 2023 году на рынке было много моделей с экранами от 5 до 7 дюймов. Около 60 % пользователей сталкивались с проблемами отображения интерфейса, и 85 % заявили, что неудобства заставляют их отказаться от приложения или оставить плохие отзывы.
Решение: используйте гибкие макеты и обеспечьте совместимость с интерфейсами различных вендоров.
Примеры проблем:
Кастомные шрифты. Учитывайте, что они могут быть не предустановлены. Различия могут повлиять на читабельность;
Кастомные элементы управления. Кнопки могут отображаться неправильно.
Темы. Оболочки, такие как MIUI от Xiaomi, могут изменять дизайн приложения.
Внешний вид уведомлений. Некоторые производители используют свои стили.
Oppo
Рекомендации:
Придерживайтесь стандартов Material Design для лучшего отображения.
Тестируйте на реальных устройствах для проверки адаптивности интерфейса. Используйте бюджетные Xiaomi, Huawei, Oppo, не ограничивайтесь флагманскими устройствами.
Динамически изменяйте стили в зависимости от производителя.
val isXiaomi = Build.MANUFACTURER.equals("Xiaomi", ignoreCase = true)
.Создавайте отдельные макеты для портретной и альбомной ориентации, используя соответствующие папки. Требуйте от дизайнеров согласованные с бизнесом макеты под различные разрешения.
Accessibility

Проблема: приложения, игнорирующие потребности пользователей с ограниченными возможностями, могут стать недоступными для значительного сегмента аудитории, что ведёт к недовольству и снижению рейтинга.
Актуальность: более 1 миллиарда людей (15 % населения) живут с нарушениями здоровья, однако более 98 % веб-сайтов не соответствует стандартам доступности (WCAG), что также касается мобильных приложений. Это приводит к трудностям для пользователей с ограниченными возможностями и может снизить рейтинг приложения на 20-30 %.
Решение: разработчики должны интегрировать функции доступности, следуя рекомендациям WCAG и тестируя приложения с участием пользователей с ограниченными возможностями. Важно включать голосовые подсказки, текстовые альтернативы для изображений, масштабирование шрифта и легкую навигацию.
Примеры:
Приложение для чтения книг без экранного чтения не сможет обслуживать пользователей с нарушениями зрения (не игнорируйте атрибут
contentDescription
для кнопок и изображений).Приложение для управления задачами без интуитивной навигации может быть неудобным для пользователей с ограниченной подвижностью.
Отсутствие локализации

Проблема: многие приложения не поддерживают несколько языков и культурные особенности, что ограничивает их использование в разных регионах.
Актуальность: 70 % пользователей хотят использовать приложения на своём родном языке, а более 50 % удаляют приложения без необходимого языка или оставляют негативные отзывы. Приложения с поддержкой нескольких языков могут привлечь на 50 % больше пользователей на международных рынках.
Решение: разработчики должны с самого начала внедрять поддержку нескольких языков и адаптировать контент к различным культурным контекстам. Для этого следует использовать инструменты локализации и регулярно обновлять переводы, особенно если приложение предполагает использование в других странах.
Примеры:
Приложение для общения, доступное только на английском, потеряет пользователей в странах с другим основным языком.
Приложение для планирования путешествий без учёта местных привычек будет сложно воспринимаемо международной аудиторией.
Обновление и поддержка

Проблема: приложения без регулярных обновлений становятся уязвимыми к ошибкам и проблемам с безопасностью, что приводит к недовольству пользователей.
Актуальность: 70 % пользователей ожидают обновлений, а 45 % сообщают, что проблемы с производительностью заставили их отключить уведомления или удалить приложение. 65 % пользователей считают приложение менее надёжным, если оно не обновляется более трёх месяцев, что может повлиять на его рейтинг.
Решение: разработчикам следует регулярно обновлять приложения для устранения ошибок и добавлять новые функции, а также организовывать каналы обратной связи для пользователей.
Примеры:
Приложение для обмена сообщениями без обновлений безопасности может потерять доверие пользователей.
Игра без новых уровней и контента может снизить интерес и вовлечённость пользователей.
Регулярные обновления и поддержка важны для положительного пользовательского опыта и доверия к приложению.
Заключение
Создание успешного мобильного приложения — это не только удачная идея или привлекательный дизайн, но и многогранный процесс, в котором учитываются множество факторов. Проблемы, рассмотренные в статье, могут существенно повлиять на пользовательский опыт и репутацию приложения. Разработчикам необходимо тщательно анализировать каждую из этих областей и постоянно совершенствовать свои продукты, отвечая на потребности пользователей.

Ваши идеи и опыт крайне важны, поэтому делитесь в комментариях интересными и неочевидными корнеркейсами, решение которых поможет сделать приложение лучше, надежнее и успешнее!