This project contains a demo messenger for communicating with each other without knowledge of English in English (through a translator), created using Kotlin and Firebase.
The ideology of the project is to improve the level of English by communicating with each other, sending a message in Russian, it is translated into English and saved in both languages. It is possible to send a message in English (if you know how to write a sentence in English) - it will be translated into Russian and saved in both languages. Upon receipt, all messages are displayed in English.
To get started you need to first create a Firebase project for your app and add the google-service.json file in your project. After adding the google-services.json file, you need to create a database in Firebase Authentication, Firebase Database, Firebase Storage. Firebase Authentication needs to allow user registration by email.
You can see the application in action on youtube video hosting at the link: https://youtu.be/KlT0G5GxQU4 .
- Kotlin
- Kotlin flows
- Clean Architecture - Clean architecture in Android.
- MVVM - Architectural pattern.
- Dagger Hilt - Standard library to incorporate Dagger dependency injection into an Android application.
- Coroutines - Asynchronous programming.
- View Binding - Declaratively bind observable data to UI elements.
- Lifecycles - Create a UI that automatically responds to lifecycle events.
- LiveData - Build data objects that notify views when the underlying database changes.
- Navigation - Handle everything needed for in-app navigation.
- Firebase - Tools to develop high-quality apps.
- SDP - Scalable size unit.
- SSP - Scalable size unit for text.
- Android Image Cropper - Powerful (Zoom, Rotation, Multi-Source), customizable (Shape, Limits, Style), optimized (Async, Sampling, Matrix) and simple image cropping library for Android.
- Picasso - Load and cache images by URL.
- Groupie - Groupie is a simple, flexible library for complex RecyclerView layouts.
- Ml-Kit Translator - Ml-Kit translator API.
- Ml-kit Language - Ml-Kit language id identificator for text.
Support it by joining stargazers for this repository 🌟