По данным исследований (Data.ai, Sensor Tower, Statista), Android-приложения имеют на 10-30% более низкие оценки, чем iOS-аналоги. Например, приложение может получить 4,5 на iOS и 3,5-4,0 на Android.

Меня зовут Анастасия Симонова, я Android-разработчик в команде Домклик. Поделюсь нюансами разработки под Android и предложу некоторые решения для избежания проблем в будущем. Готовы? Приступим!

Оглавление

  1. Размер и производительность приложения

  2. Отсутствие поддержки стандартных API

  3. Качество и стабильность

  4. Безопасность данных

  5. UX

  6. Accessibility

  7. Отсутствие локализации

  8. Обновление и поддержка

Размер и производительность приложения

Проблема: неоптимизированные приложения для устройств с низкими характеристиками (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 для работы с картами.

  • Участвуйте в форумах и платформах разработчиков для получения актуальной информации и поддержки.

Качество и стабильность

Пример крашлитики Firebase
Пример крашлитики Firebase

Проблема: некорректно выстроенные пользовательские пути в фичах приложения и частые падения могут привести к негативному пользовательскому опыту и снижению рейтинга в магазинах приложений, а также к удалению приложения.

Актуальность: по данным исследования, более 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
    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 % пользователей считают приложение менее надёжным, если оно не обновляется более трёх месяцев, что может повлиять на его рейтинг.

Решение: разработчикам следует регулярно обновлять приложения для устранения ошибок и добавлять новые функции, а также организовывать каналы обратной связи для пользователей.

Примеры:

  • Приложение для обмена сообщениями без обновлений безопасности может потерять доверие пользователей.

  • Игра без новых уровней и контента может снизить интерес и вовлечённость пользователей.

Регулярные обновления и поддержка важны для положительного пользовательского опыта и доверия к приложению.

Заключение

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

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

Комментарии (2)


  1. zudwalex
    13.02.2025 11:19

    TL;DR: пользователи любят хорошие приложения и не любят плохие.


  1. radioxoma
    13.02.2025 11:19

    Отсутствие локализации лучше плохой локализации, которую нельзя переключить.