Overview
EV Sum 2 is a feature-rich Android mobile application built with Kotlin and Jetpack Compose. The app demonstrates advanced cloud integration with Firebase services and leverages device sensors for voice input and geolocation functionality. It follows the Service-Repository pattern for clear separation of concerns and easy maintenance.This app is designed to run on physical Android devices (API 24+) for optimal performance with voice recognition and sensor features.
Key features
The app provides a comprehensive set of capabilities organized into distinct functional areas:Voice-powered authentication
Dictate your email and password using advanced speech-to-text with intelligent normalization that converts spoken words like “arroba” to ”@” and “punto” to ”.”
Firebase authentication
Complete user management with sign-in, registration, password recovery, and persistent session handling via AuthStateListener
Cloud phrase storage
Full CRUD operations for quick phrases stored in Cloud Firestore with automatic timestamp-based ordering
Advanced geolocation
Precise location tracking using FusedLocationProviderClient with reverse geocoding to convert coordinates into readable addresses
Text-to-speech
Built-in accessibility feature that reads stored phrases aloud using Android’s TTS engine configured for Spanish (Chile)
Material Design 3
Modern UI built with Jetpack Compose and Material Design 3 components with dark/light theme support
Architecture highlights
The project follows a clean, layered architecture that ensures low coupling and high maintainability:- data: Contains repositories (
AuthRepository,PhraseRepository,LocationRepository) that interact asynchronously with Firebase and Google Cloud services - domain: Pure business models (
AppUser,Phrase,DeviceLocation) and framework-agnostic validation logic - services: Hardware abstraction layer with controllers for
LocationService,SpeechController, andTextToSpeechController - ui: Complete visual layer built with Jetpack Compose, organized by feature areas (
auth,home,location) with navigation inAppNavGraph.kt
Technology stack
Core framework
- Kotlin 1.9+
- Jetpack Compose
- Material Design 3
- Android SDK 24-36
Backend services
- Firebase Authentication
- Cloud Firestore
- Google Play Services Location
Architecture
- Jetpack Navigation Compose
- Kotlinx Coroutines & Flow
- Service-Repository pattern
Testing
- JUnit for unit tests
- 100% coverage on speech normalization
Get started
Quickstart
Get the app running in minutes with our quick setup guide
Detailed setup
Complete setup instructions including Firebase configuration and permissions
Architecture
Learn about the app’s structure and design patterns
Features
Explore authentication, voice input, location services, and more