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 theandroid/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:
- Enable FCM in your Firebase Console.
- Copy the functions directory to the root of your project, as notifications utilize Cloud Functions.
- Install firebase-cli if you haven’t already, and then execute
firebase deploy --only functions
.
Screenshots
Get a sneak peek of Enigma:

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 byflutter 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.