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.

AndroidEnergyCustomer service
MyAbEnergie

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