Android Native project
MyAbEnergie
A native Android customer app for managing electricity and gas supplies, reviewing bills and consumption, submitting meter readings, and keeping account information up to date.
Overview
MyAbEnergie
MyAbEnergie is a native Android customer-area application that gives electricity and gas customers a direct, practical way to manage their relationship with their energy provider.
From a single account, users can review linked supplies, check contract and meter information, understand recent consumption, browse billing history, and open individual bill details. The app also supports self-meter readings, helping customers submit usage data through a guided mobile flow instead of relying on separate channels.
Profile tools bring together personal data, customer codes, addresses, cadastral information, privacy options, biometric access, application appearance, and customer-support entry points. Light, dark, and system themes allow the interface to adapt to the user's device and preferences.
Additional capabilities include:
- Electricity and gas supply overview with contract status, address, meter identifiers, and offer information.
- Consumption visualization for reviewing annual usage trends directly from each supply.
- Bill management with billing history, payment state, period totals, consumption, and downloadable bill details.
- Guided self-meter readings for electricity and gas customers.
- Customer and cadastral data management with supply association workflows.
- Account access and verification including email-based sign-in, social authentication, OTP verification, and optional biometric login.
- Notification and service messaging for customer communications and operational updates.
- Theme and launcher customization alongside light, dark, and system appearance modes.
Architecture
The application uses a layered Android architecture that separates presentation, domain logic, and data access while supporting both established Android views and newer Compose-based screens.
- Presentation layer built with Android fragments, data binding, Jetpack Compose components, and screen-specific ViewModels.
- Domain layer organized around models, repository contracts, and use cases for account, supply, invoice, self-reading, notification, and cadastral workflows.
- Data layer combining Retrofit-backed services, repository implementations, local Room persistence, and preference storage.
- Dependency injection managed with Koin across Android and Compose entry points.
- Asynchronous work handled with Kotlin Coroutines and reactive LiveData and StateFlow state.
- Navigation implemented through Jetpack Navigation, Safe Args, and Compose navigation where appropriate.
Project Strategies
- Feature-oriented packaging groups invoices, supplies, self-meter readings, and profile capabilities into focused areas.
- Repository abstraction keeps API and persistence details outside presentation code.
- Multiple build variants support development, staging, testing, demo, and production environments.
- Incremental Compose adoption introduces reusable declarative components while retaining proven fragment-based flows.
- Local persistence supports cached customer, notification, and cadastral information.
- Operational monitoring uses Firebase Analytics, Crashlytics, Performance Monitoring, messaging, and remote data services.
Core Technology
- Kotlin and Java 17
- Android SDK
- Jetpack Compose and Material 3
- Android Views and Data Binding
- Koin
- Room
- Retrofit and OkHttp
- Kotlin Coroutines, StateFlow, and LiveData
- Jetpack Navigation and Safe Args
- Firebase services
- WorkManager
Links
1 / 23

