AmitJoki/Enigma
Um aplicativo de bate-papo ponto a ponto completo desenvolvido inteiramente em Flutter
- Stars
- 401
- Forks
- 119
- Último push (UTC)
- 9 de jan. de 2023
- Status do projeto
- Ativo
Tópicos técnicos
Dependências usadas
Lista de dependências 29 itens
- flutter
{"sdk":"flutter"} - firebase_auth
^0.11.1+7 - cloud_firestore
^0.12.5+2 - fluttertoast
^3.1.0 - image_picker
^0.6.0+9 - shared_preferences
^0.5.3+1 - firebase_storage
^3.0.1 - cached_network_image
^0.8.0 - intl
^0.15.8 - diacritic
^0.1.1 - sentry
^2.2.0 - image_cropper
^1.0.2 - contacts_service
^0.2.4 - permission_handler
^3.0.0 - share
^0.6.1 - scoped_model
^1.0.1 - local_auth
^0.4.0+1 - crypto
^2.0.6 - encrypt
^3.0.0 - localstorage
^1.2.0 - flutter_cache_manager
^0.3.2 - photo_view
^0.4.0 - mime
^0.9.6+2 - ntp
^1.0.3 - url_launcher
^5.0.2 - launch_review
^2.0.0 - flutter_secure_storage
^3.2.1+1 - giphy_client
^0.2.0 - firebase_messaging
^5.0.2
Rankings
README original
Texto original em inglês. Visite o GitHub para a versão atual.
Expandir / recolher README
Enigma
Enigma - A minimalist, locked-down one-to-one chat app.
Usage
- Flutter - Get Started
- Since this is a Firebase dependent project, create a Firebase Project and enable
- Firebase Phone Authentication (for authentication)
- Cloud Firestore (not Realtime Database)
- Firebase Storage (for storing images)
- Firebase In-App Messaging (for custom messages)
- After enabling the above features, download the
google-services.jsonand paste it inandroid/appfolder. - Do
flutter packages getto get the packages. - Use a device or an emulator and run
flutter run.
Notifications
- Enable FCM in your Firebase Console.
- Notifications use Cloud Functions. Copy the
functionsdirectory to the root of your project. - Do
firebase deploy --only functionsYou need to havefirebase-cliinstalled for this command to execute.
Screenshots
Screenshot #1
Firebase Rules for Storage and Cloud Firestore
I've used the following basic rule
allow read, write: if request.auth.uid != null;
but you can be more restrictive if you so wish. For more info - Get Started on Writing Rules
Google Play and the Google Play logo are trademarks of Google LLC.
Features
Authentication: Passcode authentication is enabled which is needed to unlock hidden and locked chats. If your device supports fingerprint authentication, then you can use it as well.
End-To-End Encryption: Your messages are encrypted right from the moment you send it. This makes sure that only the recipient receives the message and NO ONE ELSE.
Hide Chats: You can hide chats to protect against prying eyes. YOU will have to authorize to unhide the chats.
Lock Chats: Hidden chats not secure enough? Lock individual chats which only open after YOU have authorized it.
End Conversations: Once you're done with a conversation, you can choose to end it, by swiping your friend's message from left to right. Doing so will delete all the conversation up until that message.
Save messages: Double tap on any message to save it locally. Saved messages can be viewed by swiping right to left on the chat screen.
No pesky notifications: We do not believe in keeping users addicted to our app by frequent notifications. Chat when you feel like it. We do not bother you with notifications.
No forwarding: Enigma is developed to be an intimate one-to-one chat application. There's no option for forwarding messages. Hence no fake news.
Beautiful, minimal UI: The UI is uncluttered and beautiful. Gestures are used to make it pragmatic instead of using additional screen space.
Less than 10 MB: All the above features are tucked under a measely < 10 MB APK Size.
Acknowledgement
Passcode Widget: https://github.com/xPutnikx/flutter-passcode Apache 2.0 License