Take your messaging to the next level — basic, better, and best

This document charts the optimal progression of a messaging app from a likely starting place to best-in-class. It's designed to help you think about scaling your app over time, and what features to implement when. While every media app is different, consider these recommendations to achieve a best-in-class app.

Basic messaging app

A basic messaging app provides users with a foundational text-based communications experience, which may include:

Better messaging app

A better messaging app gives users more tools to enhance their communication and provide self-expression, including:

  • Emoji
    Support modern emoji.

  • Push notifications with Intent
    Use payloads with Firebase Cloud Messaging (FCM) to direct users to specific conversations or sections of the app from the notification. This reduces the steps users have to take to reach important content. ()

  • Threaded conversations
    Implement replies to specific messages within group chats to maintain the context and flow of conversations. This feature is crucial for keeping group communications organized and understandable.

  • Image keyboards, drag and drop, and other rich content
    Receive rich content such as images, videos, and audio files. The API includes support for image keyboards and being a drag-and-drop target to make it easy for users to add stickers, animations, and other media to their messages. Also, make sure your app works as a drag-and-drop source to share content with other apps.

  • Search in conversations
    Enable full-text search within conversations so that users can quickly find messages, images, links, and files. Support filtering by date, person, or type of content for efficient searching.

  • Media and file support
    Integrate seamless support for sending and receiving images, videos, documents, and other files with inline previews and clear indicators for download and upload statuses.

  • Notifications

  • Advanced Firebase Cloud Messaging (FCM)
    Make use of advanced Firebase Cloud Messaging features such as data payloads to minimize latency and expensive server round trips.

  • Read receipts
    Provide the option for users to manage the visibility of read receipts. This could be a simple toggle in the settings, allowing users to choose privacy over acknowledgment.

Best messaging app

The best messaging app builds on the previous recommendations to create a seamless multidevice experience for users, along with more advanced expressive capabilities, including:

  • Emoji picker
    Support the emoji picker.

  • Simplified login
    Invest in seamless identity across surfaces using CredentialManager with either Passkeys or federated sign-in.

  • End-to-end encryption
    Implement industry-standard encryption protocols to ensure that messages are secure and only readable by the intended recipient.

  • Add and edit rich content
    Add and edit rich content to text previews when sharing.

  • Synchronization across devices
    Enable users to access their conversations cohesively across multiple devices, ensuring that their communication experience is seamless, whether they're on their phone, tablet, or computer.

    Check out the codelab to create a chat app with Firebase Realtime Database.

  • Message reactions
    Allow users to react to messages with emoji or custom graphics, providing a quick and fun way to respond without typing out a message.

  • Message editing and deletion
    Give users control over their messages after sending, including editing and deletion within a specified time frame.

  • Customizable notifications
    Offer detailed customization options for notifications, including sounds, vibration patterns, and LED colors, on a per-conversation or per-contact basis. Check out Create a custom notification layout.

  • Conversation bubbles
    Support bubbles for conversations.

  • Direct share targets
    Provide direct share targets to allow your users to share directly with contacts within your app.

  • Animate the software keyboard
    Control and animate the software keyboard for extra polish.

  • Voice and video chat
    Incorporate high-quality, real-time voice and video communication capabilities. The Jetpack Telecom Library includes helpful features like dedicated foreground service support, audio routing, and cross-device capabilities between phones, watches, cars, and more, while technologies like WebRTC can provide peer-to-peer connectivity.

  • Wear OS app
    Build a Wear OS app to help people stay connected from their smartwatch.