Поднимите свои сообщения на новый уровень — базовый, лучший и лучший.
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
В этом документе показан оптимальный путь развития приложения для обмена сообщениями от вероятного отправного пункта до лучшего в своем классе. Он разработан, чтобы помочь вам подумать о масштабировании вашего приложения с течением времени и о том, какие функции и когда реализовать. Хотя каждое мультимедийное приложение отличается от других, примите во внимание эти рекомендации, чтобы создать лучшее в своем классе приложение.
Базовое приложение для обмена сообщениями
Базовое приложение для обмена сообщениями предоставляет пользователям базовые возможности текстового общения, которые могут включать в себя:
Поддержка офлайн-сообщений
Обеспечьте возможность постановки сообщений в очередь в автономном режиме, используя стратегии локального кэширования и повторных попыток. Сигналы пользовательского интерфейса, такие как индикаторы «отправка…» или «не удалось отправить», помогают управлять ожиданиями пользователей.
Обработка ошибок
Предлагайте четкую и информативную обратную связь для различных сценариев сбоя, таких как проблемы с сетью или заблокированные получатели. Включите практические шаги или объяснения, чтобы уменьшить разочарование пользователей.
Уведомления
Предоставление уведомлений при получении сообщений в фоновом режиме.
Облачный обмен сообщениями Firebase (FCM)
Используйте Firebase Cloud Messaging, чтобы уведомлять приложение о новых сообщениях.
Проверка орфографии
Внедрите и получите доступ к проверке орфографии в своем приложении.
Доступность
Следуйте рекомендациям Material Design, чтобы спроектировать и разработать приложение с учетом специальных возможностей .
Совместное использование
Лучшее приложение для обмена сообщениями
Лучшее приложение для обмена сообщениями предоставляет пользователям больше инструментов для улучшения общения и самовыражения, в том числе:
Эмодзи
Поддержка современных смайлов .
Push-уведомления с намерением
Используйте полезные данные с Firebase Cloud Messaging (FCM), чтобы направлять пользователей к определенным разговорам или разделам приложения из уведомления. Это сокращает количество шагов, которые пользователи должны предпринять для доступа к важному контенту. ()
Цепочки бесед
Реализуйте ответы на определенные сообщения в групповых чатах, чтобы сохранить контекст и поток разговоров. Эта функция имеет решающее значение для поддержания организованности и понимания группового общения.
Клавиатуры изображений, перетаскивание и другой богатый контент
Получайте богатый контент, такой как изображения, видео и аудиофайлы. API включает поддержку графических клавиатур и функцию перетаскивания, позволяющую пользователям легко добавлять стикеры, анимацию и другие мультимедийные материалы в свои сообщения. Кроме того, убедитесь, что ваше приложение работает как источник перетаскивания для обмена контентом с другими приложениями.
Искать в беседах
Включите полнотекстовый поиск в беседах, чтобы пользователи могли быстро находить сообщения, изображения, ссылки и файлы. Поддержка фильтрации по дате, человеку или типу контента для эффективного поиска.
Поддержка мультимедиа и файлов
Интегрируйте бесперебойную поддержку отправки и получения изображений , видео, документов и других файлов со встроенным предварительным просмотром и четкими индикаторами статусов загрузки и выгрузки.
Уведомления
Расширенный облачный обмен сообщениями Firebase (FCM)
Используйте расширенные функции Firebase Cloud Messaging , такие как полезная нагрузка данных, чтобы минимизировать задержку и дорогостоящие обращения к серверу.
Чтение квитанций
Предоставьте пользователям возможность управлять видимостью уведомлений о прочтении. Это может быть простой переключатель в настройках, позволяющий пользователям выбирать конфиденциальность вместо подтверждения.
Лучшее приложение для обмена сообщениями
Лучшее приложение для обмена сообщениями основано на предыдущих рекомендациях и обеспечивает удобство работы пользователей с несколькими устройствами, а также более продвинутые выразительные возможности, в том числе:
Выбор эмодзи
Поддержите сборщика смайлов .
Упрощенный вход
Инвестируйте в надежную идентификацию на разных платформах, используя CredentialManager с ключами доступа или федеративным входом .
Сквозное шифрование
Внедрите стандартные протоколы шифрования, чтобы гарантировать, что сообщения безопасны и доступны для чтения только предполагаемому получателю.
Добавляйте и редактируйте богатый контент
Добавляйте и редактируйте богатый контент в предварительный просмотр текста при совместном использовании.
Синхронизация между устройствами
Предоставьте пользователям единый доступ к своим разговорам на нескольких устройствах, гарантируя, что их общение будет бесперебойным, независимо от того, используют ли они телефон, планшет или компьютер.
Ознакомьтесь с кодовой лабораторией, чтобы создать приложение для чата с помощью базы данных Firebase Realtime .
Реакции на сообщения
Разрешите пользователям реагировать на сообщения с помощью смайликов или пользовательской графики, предоставляя быстрый и интересный способ ответить, не печатая сообщение.
Редактирование и удаление сообщений
Предоставьте пользователям контроль над своими сообщениями после отправки, включая редактирование и удаление в течение определенного периода времени.
Настраиваемые уведомления
Предлагайте подробные параметры настройки уведомлений, включая звуки, шаблоны вибрации и цвета светодиодов, для каждого разговора или каждого контакта. Ознакомьтесь со статьей Создание пользовательского макета уведомлений .
Разговорные пузыри
Поддержка пузырей для разговоров .
Целевые показатели прямых акций
Укажите цели прямого обмена , чтобы ваши пользователи могли напрямую делиться с контактами в вашем приложении.
Анимация программной клавиатуры
Управляйте программной клавиатурой и анимируйте ее для большего удобства.
Голосовой и видеочат
Включите возможности высококачественной голосовой и видеосвязи в реальном времени. Библиотека Jetpack Telecom включает в себя полезные функции, такие как поддержка выделенных приоритетных служб, маршрутизация звука и возможности взаимодействия между устройствами между телефонами, часами, автомобилями и т. д., а такие технологии, как WebRTC, могут обеспечить одноранговое соединение.
Приложение Wear OS
Создайте приложение для Wear OS, которое поможет людям оставаться на связи со своими умными часами.
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2024-10-29 UTC.
[null,null,["Последнее обновление: 2024-10-29 UTC."],[],[],null,["# Take your messaging to the next level — basic, better, and best\n\nThis document charts the optimal progression of a messaging app from a likely\nstarting place to best-in-class. It's designed to help you think about scaling\nyour app over time, and what features to implement when. While every media app\nis different, consider these recommendations to achieve a best-in-class app.\n\nBasic messaging app\n-------------------\n\nA basic messaging app provides users with a foundational text-based\ncommunications experience, which may include:\n\n- **Offline message support** \n\n Ensure messages can be queued when offline, with strategies for local caching\n and retry attempts. UI cues such as 'sending...' or 'failed to send' indicators\n help manage user expectations.\n\n - [Save data in a local database using Room](/training/data-storage/room).\n - [Run background tasks using WorkManager](/develop/background-work/background-tasks/persistent/getting-started).\n- **Error handling** \n\n Offer clear, informative feedback for different failure scenarios, like network\n issues or blocked recipients. Include actionable steps or explanations to reduce\n user frustration.\n\n- **Notifications** \n\n Provide notifications when messages are received in the background.\n\n - [Work with the Notification runtime permission](/develop/ui/views/notifications/notification-permission).\n - [Create and manage notification channels](/develop/ui/views/notifications/channels).\n- **Firebase Cloud Messaging (FCM)** \n\n Leverage [Firebase Cloud Messaging](https://firebase.google.com/docs/cloud-messaging) to notify the app of new\n messages.\n\n- **Spellcheck** \n\n [Implement and access spell checking](/develop/ui/views/touch-and-input/spell-checker-framework#SpellCheckClient) in your app.\n\n- **Accessibility** \n\n [Follow Material Design guidelines to design and develop your app for\n accessibility](/guide/topics/ui/accessibility).\n\n- **Sharing**\n\n - [Use the Android Sharesheet to share data and content with other apps and\n targets](/training/sharing/send#why-to-use-system-sharesheet).\n - [Support receiving](/develop/ui/views/touch-and-input/spell-checker-framework#SpellCheckClient) data and content [from other apps](/training/sharing/receive).\n\nBetter messaging app\n--------------------\n\nA better messaging app gives users more tools to enhance their communication and\nprovide self-expression, including:\n\n- **Emoji** \n\n Support [modern emoji](/develop/ui/views/text-and-emoji/emoji2).\n\n- **Push notifications with Intent** \n\n Use payloads with Firebase Cloud Messaging (FCM) to [direct users to specific\n conversations or sections of the app](/develop/ui/views/notifications/navigation) from the notification. This reduces\n the steps users have to take to reach important content. ()\n\n- **Threaded conversations** \n\n Implement replies to specific messages within group chats to maintain the\n context and flow of conversations. This feature is crucial for keeping group\n communications organized and understandable.\n\n- **Image keyboards, drag and drop, and other rich content** \n\n Receive [rich content](/develop/ui/views/receive-rich-content) such as images, videos, and audio files. The\n API includes support for image keyboards and being a drag-and-drop target\n to make it easy for users to add stickers, animations, and other media to\n their messages. Also, make sure your app works as a [drag-and-drop source](/develop/ui/views/touch-and-input/drag-drop)\n to share content with other apps.\n\n- **Search in conversations** \n\n Enable [full-text search](/develop/ui/views/search/training/search) within conversations so that users can quickly\n find messages, images, links, and files. Support filtering by date, person, or\n type of content for efficient searching.\n\n- **Media and file support** \n\n Integrate seamless support for [sending and receiving images](/training/data-storage/shared/photopicker), videos,\n documents, and other files with inline previews and clear indicators for\n download and upload statuses.\n\n- **Notifications**\n\n - [Wait to show the notification permission](/develop/ui/views/notifications/notification-permission#wait-to-show-prompt) until the user is familiar with your app. Trigger the permission from a user action if possible.\n - Support [notification badges](/develop/ui/views/notifications/badges).\n - Support [direct replies](/develop/ui/views/notifications/build-notification#reply-action) in notifications.\n - Make thoughtful use of [notification channels](/develop/ui/views/notifications/channels), potentially including custom [importance level](/develop/ui/views/notifications/channels#importance) and notification behaviors for notification channels.\n - Support [conversation notifications](/develop/ui/views/notifications/conversations#api-notifications) with [long-lived shortcuts](/develop/ui/views/notifications/conversations#api-shortcuts) so users can add people and group shortcuts to their homescreens.\n- **Advanced Firebase Cloud Messaging (FCM)** \n\n Make use of advanced [Firebase Cloud Messaging](https://firebase.google.com/docs/cloud-messaging) features such as\n data payloads to minimize latency and expensive server round trips.\n\n- **Read receipts** \n\n Provide the option for users to manage the visibility of read receipts. This\n could be a simple toggle in the settings, allowing users to choose privacy over\n acknowledgment.\n\nBest messaging app\n------------------\n\nThe best messaging app builds on the previous recommendations to create a\nseamless multidevice experience for users, along with more advanced expressive\ncapabilities, including:\n\n- **Emoji picker** \n\n Support the [emoji picker](/develop/ui/views/text-and-emoji/emoji-picker).\n\n- **Simplified login** \n\n Invest in seamless identity across surfaces using [CredentialManager](/training/sign-in/passkeys) with\n either [Passkeys](/training/sign-in/passkeys#about-passkeys) or [federated sign-in](/training/sign-in/credential-manager).\n\n- **End-to-end encryption** \n\n Implement industry-standard encryption protocols to ensure that messages are\n secure and only readable by the intended recipient.\n\n- **Add and edit rich content** \n\n Add and edit [rich content](/training/sharing/send#adding-rich-content-previews) to text previews when sharing.\n\n- **Synchronization across devices** \n\n Enable users to access their conversations cohesively across multiple devices,\n ensuring that their communication experience is seamless, whether they're on\n their phone, tablet, or computer.\n\n Check out the [codelab to create a chat app with Firebase Realtime\n Database](https://firebase.google.com/codelabs/firebase-android).\n- **Message reactions** \n\n Allow users to react to messages with emoji or custom graphics, providing a\n quick and fun way to respond without typing out a message.\n\n- **Message editing and deletion** \n\n Give users control over their messages after sending, including editing and\n deletion within a specified time frame.\n\n- **Customizable notifications** \n\n Offer detailed customization options for notifications, including sounds,\n vibration patterns, and LED colors, on a per-conversation or per-contact basis.\n Check out\n [Create a custom notification layout](/develop/ui/views/notifications/custom-notification).\n\n- **Conversation bubbles** \n\n Support [bubbles for conversations](/develop/ui/views/notifications/bubbles).\n\n- **Direct share targets** \n\n Provide [direct share targets](/training/sharing/direct-share-targets) to allow your users to share directly with\n contacts within your app.\n\n- **Animate the software keyboard** \n\n [Control and animate the software keyboard](/develop/ui/views/layout/sw-keyboard) for extra polish.\n\n- **Voice and video chat** \n\n Incorporate high-quality, real-time voice and video communication capabilities.\n The [Jetpack Telecom Library](https://android-developers.googleblog.com/2023/11/alpha-release-of-telecom-library.html) includes helpful features like dedicated\n foreground service support, audio routing, and cross-device capabilities between\n phones, watches, cars, and more, while technologies like WebRTC can provide\n peer-to-peer connectivity.\n\n- **Wear OS app** \n\n Build a [Wear OS app](/wear/gallery/messaging) to help people stay connected from their smartwatch."]]