How to Set Up Enigma: A Minimalist, Locked-Down One-to-One Chat App

Jul 25, 2024 | Programming

Welcome to a step-by-step guide on how to create a secure and minimalist chat experience using Enigma. With features like end-to-end encryption, customizable authentication, and a sleek UI, Enigma is designed to prioritize user privacy and simplicity.

Getting Started with Enigma

Before diving into the app’s configuration, it’s essential to have Flutter installed on your machine. If you’re a rookie, here’s the link to get you started:

Setting Up Firebase

Because Enigma relies on Firebase services for its backend, you’ll need to set up a Firebase project and configure several features:

  • Create a new Firebase Project.
  • Enable the following services:
    • Firebase Phone Authentication (for authentication)
    • Cloud Firestore (this is crucial; avoid using Realtime Database)
    • Firebase Storage (to store images)
    • Firebase In-App Messaging (for sending custom messages)
  • Download the google-services.json file and place it in the android/app folder.
  • Run flutter packages get to download the required packages.
  • Using a device or an emulator, execute flutter run to run the app.

Implementing Notifications

To enable notifications in your app, follow these instructions:

  1. Enable FCM in your Firebase Console.
  2. Copy the functions directory to the root of your project, as notifications utilize Cloud Functions.
  3. Install firebase-cli if you haven’t already, and then execute firebase deploy --only functions.

Screenshots

Get a sneak peek of Enigma:

Screenshot #1

Firebase Rules for Storage and Cloud Firestore

For enhanced security, you can set up Firebase rules. The basic rule looks like this:

allow read, write: if request.auth.uid != null;

Feel free to make these rules more stringent based on your app’s requirements. For detailed guidance, check out Get Started on Writing Rules.

Features of Enigma

  • Authentication: Use passcode or fingerprint authentication to unlock chats.
  • End-To-End Encryption: Ensures only the intended recipient can read the messages.
  • Hide and Lock Chats: Keep your conversations private and ask for authorization to unhide them.
  • End Conversations: Swipe to delete chat histories with ease.
  • Save Messages: Double-tap messages to store them locally.
  • No Pesky Notifications: Enjoy chatting without constant distractions.
  • No Forwarding: Maintain an intimate chat experience; no message forwarding allowed.
  • Beautiful Minimal UI: A clean interface using gestures for seamless navigation.
  • Less than 10 MB: All these features packaged in a lightweight APK.

Troubleshooting Tips

If you encounter any challenges while setting up your Enigma app, here are a few troubleshooting tips:

  • Ensure that all Firebase services are properly enabled and configured.
  • Double-check that the google-services.json file is in the correct location.
  • Run flutter clean followed by flutter pub get to ensure that all dependencies are correctly installed.
  • If notifications are not working, verify that FCM is enabled in your Firebase Console.

For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.

Final Words

Setting up Enigma might seem like piecing together a jigsaw puzzle at first. Think of it as crafting a secret haven for your conversations—like building a digital fortress where only you and your selected friends hold the keys. By leveraging Flutter and Firebase prudently, you’ve turned this vision into a reality. At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.

Stay Informed with the Newest F(x) Insights and Blogs

Tech News and Blog Highlights, Straight to Your Inbox