![](https://habrastorage.org/getpro/habr/upload_files/1fe/035/098/1fe0350985b3a963771d6ec9119bb2a3.png)
По данным исследований (Data.ai, Sensor Tower, Statista), Android-приложения имеют на 10-30% более низкие оценки, чем iOS-аналоги. Например, приложение может получить 4,5 на iOS и 3,5-4,0 на Android.
Меня зовут Анастасия Симонова, я Android-разработчик в команде Домклик. Поделюсь нюансами разработки под Android и предложу некоторые решения для избежания проблем в будущем. Готовы? Приступим!
Оглавление
Размер и производительность приложения
![](https://habrastorage.org/getpro/habr/upload_files/c51/bbe/1ca/c51bbe1ca86eb94508e5a3f47f29e7d6.png)
Проблема: неоптимизированные приложения для устройств с низкими характеристиками (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
![](https://habrastorage.org/getpro/habr/upload_files/f6c/c47/91e/f6cc4791ef5b670343d88a54b704548c.png)
Проблема: отсутствие поддержки стандартных API на некоторых устройствах (например, от Huawei) ограничивает функциональность приложений, что может вызывать недовольство пользователей из-за недостатка привычных возможностей.
Актуальность: в 2023 году более 25 % смартфонов работают без Google Services, что требует адаптации под них. Исследование AppFigures показало, что 30 % пользователей недовольны ограниченной функциональностью таких приложений.
Решение: разработчики могут использовать альтернативные решения и внедрять различные flavors для настройки приложений под разные магазины и API. Это поможет адаптировать функциональность под уникальные требования устройств.
Примеры: устройства без Google Services (например, Huawei) создают собственные экосистемы и API. Например, Huawei AppGallery и HMS предоставляют аналоги функций Google. Также на некоторых устройствах механизм WebView может работать некорректно или вовсе не работать.
Рекомендации:
Тестируйте на устройствах без Google Services для выявления проблем на ранней стадии.
Заменяйте зависимости от Google на альтернативные решения, например, Organic Maps для работы с картами.
Участвуйте в форумах и платформах разработчиков для получения актуальной информации и поддержки.
Качество и стабильность
![Пример крашлитики Firebase Пример крашлитики Firebase](https://habrastorage.org/getpro/habr/upload_files/94c/159/9fb/94c1599fbe0685802400f96a9452603e.png)
Проблема: некорректно выстроенные пользовательские пути в фичах приложения и частые падения могут привести к негативному пользовательскому опыту и снижению рейтинга в магазинах приложений, а также к удалению приложения.
Актуальность: по данным исследования, более 70 % пользователей удаляют приложение после одной неудачной попытки его использования. В условиях высокой конкуренции на рынке мобильных приложений качество и стабильность стали важнейшими факторами успеха. Приложения с высокими рейтингами, как правило, предлагают пользователям плавный и надёжный опыт.
Решения:
Используйте инструменты для отслеживания статистики падений приложения, такие как Firebase, AppMetrica или Sentry, и создавайте план регулярных обновлений приложения, чтобы исправлять замеченные баги.
Детально анализируйте текущие пользовательские пути, выявляя узкие места и точки, где пользователи сталкиваются с трудностями. Используйте методы прототипирования и тестирования, чтобы оптимизировать взаимодействие. Проводите А/Б-тестирование.
Проводите ревизию кода для улучшения структуры и качества, а также используйте современные паттерны проектирования, способствующие более стабильной работе приложения.
Проведите нагрузочное тестирование вашего приложения, чтобы убедиться в его способности справляться с большим количеством пользователей и запросов одновременно.
Следите за обновлениями зависимостей и библиотек, чтобы использовать последние версии, которые могут улучшить производительность и исправить известные ошибки.
Собирайте отзывы пользователей о производительности приложения и используйте их для выявления проблем и улучшения качества.
Безопасность данных
![](https://habrastorage.org/getpro/habr/upload_files/082/28a/483/08228a4837d6cf565bbeae7defe18934.png)
Проблема: недостаточная защита пользовательских данных и утечки конфиденциальной информации угрожают репутации приложения и снижению доверия пользователей, особенно когда приложения требуют ненужные разрешения.
Актуальность: 70 % пользователей считают безопасность данных важным фактором при выборе приложения. В 2023 году утечки данных увеличились на 45 %, что ведёт к потере до 50 % рейтинга и удалению приложений 62 % пользователей.
Решение: разработчики должны использовать современные методы шифрования и безопасные протоколы (например, HTTPS), а также предоставлять прозрачные политики конфиденциальности.
Методы обеспечения безопасности:
Используйте для защиты информации современные алгоритмы, такие как AES.
Не допускайте передачу чувствительны данных без шифрования. Используйте HTTPS для безопасных запросов, например с помощью библиотеки OkHttp.
Не запрашивайте у пользователей лишних разрешений. Например, если вашему приложению не требуется доступ к камере или геолокации для выполнения его основных функций, не запрашивайте эти разрешения.
Внедрите двухфакторную аутентификацию, используя Google Authenticator или SMS-верификацию.
Обновляйте приложение и его зависимости для устранения уязвимостей.
Создайте понятную политику конфиденциальности о том, как используются данные пользователей.
UX
![](https://habrastorage.org/getpro/habr/upload_files/042/a61/eb9/042a61eb923e6af4c4c364d4f4d6aeb7.jpg)
Проблема: разные размеры экранов и разрешения могут вызывать проблемы с отображением интерфейса, что приводит к недовольству пользователей.
Актуальность: в 2023 году на рынке было много моделей с экранами от 5 до 7 дюймов. Около 60 % пользователей сталкивались с проблемами отображения интерфейса, и 85 % заявили, что неудобства заставляют их отказаться от приложения или оставить плохие отзывы.
Решение: используйте гибкие макеты и обеспечьте совместимость с интерфейсами различных вендоров.
Примеры проблем:
Кастомные шрифты. Учитывайте, что они могут быть не предустановлены. Различия могут повлиять на читабельность;
Кастомные элементы управления. Кнопки могут отображаться неправильно.
Темы. Оболочки, такие как MIUI от Xiaomi, могут изменять дизайн приложения.
-
Внешний вид уведомлений. Некоторые производители используют свои стили.
Oppo
Рекомендации:
Придерживайтесь стандартов Material Design для лучшего отображения.
Тестируйте на реальных устройствах для проверки адаптивности интерфейса. Используйте бюджетные Xiaomi, Huawei, Oppo, не ограничивайтесь флагманскими устройствами.
Динамически изменяйте стили в зависимости от производителя.
val isXiaomi = Build.MANUFACTURER.equals("Xiaomi", ignoreCase = true)
.Создавайте отдельные макеты для портретной и альбомной ориентации, используя соответствующие папки. Требуйте от дизайнеров согласованные с бизнесом макеты под различные разрешения.
Accessibility
![](https://habrastorage.org/getpro/habr/upload_files/eb7/917/bb9/eb7917bb9b94144bc02e8a1eff9a33f8.png)
Проблема: приложения, игнорирующие потребности пользователей с ограниченными возможностями, могут стать недоступными для значительного сегмента аудитории, что ведёт к недовольству и снижению рейтинга.
Актуальность: более 1 миллиарда людей (15 % населения) живут с нарушениями здоровья, однако более 98 % веб-сайтов не соответствует стандартам доступности (WCAG), что также касается мобильных приложений. Это приводит к трудностям для пользователей с ограниченными возможностями и может снизить рейтинг приложения на 20-30 %.
Решение: разработчики должны интегрировать функции доступности, следуя рекомендациям WCAG и тестируя приложения с участием пользователей с ограниченными возможностями. Важно включать голосовые подсказки, текстовые альтернативы для изображений, масштабирование шрифта и легкую навигацию.
Примеры:
Приложение для чтения книг без экранного чтения не сможет обслуживать пользователей с нарушениями зрения (не игнорируйте атрибут
contentDescription
для кнопок и изображений).Приложение для управления задачами без интуитивной навигации может быть неудобным для пользователей с ограниченной подвижностью.
Отсутствие локализации
![](https://habrastorage.org/getpro/habr/upload_files/641/20f/d1e/64120fd1e51036568f6f9a0cb6b70f29.png)
Проблема: многие приложения не поддерживают несколько языков и культурные особенности, что ограничивает их использование в разных регионах.
Актуальность: 70 % пользователей хотят использовать приложения на своём родном языке, а более 50 % удаляют приложения без необходимого языка или оставляют негативные отзывы. Приложения с поддержкой нескольких языков могут привлечь на 50 % больше пользователей на международных рынках.
Решение: разработчики должны с самого начала внедрять поддержку нескольких языков и адаптировать контент к различным культурным контекстам. Для этого следует использовать инструменты локализации и регулярно обновлять переводы, особенно если приложение предполагает использование в других странах.
Примеры:
Приложение для общения, доступное только на английском, потеряет пользователей в странах с другим основным языком.
Приложение для планирования путешествий без учёта местных привычек будет сложно воспринимаемо международной аудиторией.
Обновление и поддержка
![](https://habrastorage.org/getpro/habr/upload_files/1a0/13f/41e/1a013f41e54b4238b2cdb5cd109ed5ef.png)
Проблема: приложения без регулярных обновлений становятся уязвимыми к ошибкам и проблемам с безопасностью, что приводит к недовольству пользователей.
Актуальность: 70 % пользователей ожидают обновлений, а 45 % сообщают, что проблемы с производительностью заставили их отключить уведомления или удалить приложение. 65 % пользователей считают приложение менее надёжным, если оно не обновляется более трёх месяцев, что может повлиять на его рейтинг.
Решение: разработчикам следует регулярно обновлять приложения для устранения ошибок и добавлять новые функции, а также организовывать каналы обратной связи для пользователей.
Примеры:
Приложение для обмена сообщениями без обновлений безопасности может потерять доверие пользователей.
Игра без новых уровней и контента может снизить интерес и вовлечённость пользователей.
Регулярные обновления и поддержка важны для положительного пользовательского опыта и доверия к приложению.
Заключение
Создание успешного мобильного приложения — это не только удачная идея или привлекательный дизайн, но и многогранный процесс, в котором учитываются множество факторов. Проблемы, рассмотренные в статье, могут существенно повлиять на пользовательский опыт и репутацию приложения. Разработчикам необходимо тщательно анализировать каждую из этих областей и постоянно совершенствовать свои продукты, отвечая на потребности пользователей.
![](https://habrastorage.org/getpro/habr/upload_files/1b0/03e/7d9/1b003e7d999643aa62dd279f4ed12ff6.jpg)
Ваши идеи и опыт крайне важны, поэтому делитесь в комментариях интересными и неочевидными корнеркейсами, решение которых поможет сделать приложение лучше, надежнее и успешнее!
Комментарии (2)
radioxoma
13.02.2025 11:19Отсутствие локализации лучше плохой локализации, которую нельзя переключить.
zudwalex
TL;DR: пользователи любят хорошие приложения и не любят плохие.