This is the repository for the Metan Mobile app. It is always updated and is under development.
Metan Mobile is a mobile application that helps owners of CNG vehicles quickly and conveniently find CNG gas stations in their area. With the app's handy map, users can find all CNG gas stations in their area and easily select the one that suits them. Thanks to the detailed information on the cards of gas stations, users can get acquainted with the opening hours, breaks, payment methods, as well as find out the price of natural gas, the distance to the CNG gas station and its workload during the day. In addition, the application offers users the ability to add their favorite gas stations to the Favorites section for quick further navigation within the application, getting the latest news about the CNG gas station and monitoring the status of the station.
The Metan Mobile application is published and actively maintained, with continuous improvements and regular updates to its libraries. The current version is available on the Play Store. The app is under constant development, gradually being covered with tests.
π Starting with version 2.3.8, Metan Mobile is a Kotlin Multiplatform app. The screens, ViewModels, navigation, data layer and design system are shared between Android and iOS with Compose Multiplatform. The iOS version is currently being prepared for release.
Metan Mobile app performs its functions using data obtained from open sources. All rights to the application belong to NGApps Dev.
The application architecture started from the Now in Android app and has since been adapted to Kotlin Multiplatform.
π° News, FAQ section and Calculators, Career in Metan Mobile app help users stay up to date with the latest developments in the industry, get answers to frequently asked questions, calculate the benefit in this type of fuel and find a job. You can share the latest information and information about the CNG gas station with other users so that they also keep up to date with the latest events. For those who need help or have further questions, the app provides contact information, including phone numbers and email addresses.
πΊοΈ With the app's nearest CNG gas station locator, users can quickly and easily find their nearest CNG gas station, making natural gas driving even more convenient. Metan Mobile is a useful application for anyone who prefers to use natural gas as a fuel and wants to fill their car in the most convenient and profitable way and always be aware of the latest news.
- 𧬠Kotlin Multiplatform - for sharing code between Android and iOS
- π§© Compose Multiplatform - for shared UI
- π§ Navigation Compose - for type-safe navigation
- β»οΈ Lifecycle ViewModel - for shared ViewModels
- π Ktor - for networking
- π¦ Kotlinx Serialization - for content negotiation
- β‘ Kotlinx Coroutines - for asynchronous work
- π Kotlinx Datetime - for dates and time zones
- π Koin - for dependency injection
- ποΈ Data Store + Wire - for storing user preferences
- π’οΈ Room - for databasing
- ποΈ Coil 3 - for loading images
- π moko-resources - for shared strings and images (English, Russian, Belarusian)
- π«§ Backdrop - for the liquid glass effect
- π WorkManager - for background sync on Android
- π Firebase Analytics - for analytics logging
- π Firebase Crashlytics - for crashlytics logging
- π Google Maps - for displaying maps on Android
- π MapKit - for displaying maps on iOS
- π Google UMP - for showing consent screen
- π’ Google AdMob - for showing ads (Android and iOS)
- π£ Yandex Mobile Ads - for showing ads in Russia
- βοΈ Cloudflare Workers - Metan Mobile API backend
- π³ Google OSS - for licensing
The Metan Mobile app started from the official architecture guidance described in the Now in Android app architecture learning journey. It is now a Kotlin Multiplatform app built on the same ideas: a layered, offline-first architecture with unidirectional data flow. The libraries and the platform setup are different.
In the Metan Mobile application, we use a Gradle idiomatic approach with convention plugins and a modularized architecture to improve scalability and maintainability:
- π±
composeApp- the shared application shell: theme, Koin modules and the navigation host - π€
app- the Android application - π
iosApp- the iOS application (Xcode project) that hosts the shared Compose UI - π§±
core:*- shared KMP modules: data, domain, database, datastore, network, design system, UI components - π§©
feature:*- one KMP module per feature. Each module contains its UI, ViewModel, state and navigation incommonMain - π
resources- shared strings and images
Platform-specific code, such as maps, location, ads and background work, lives in androidMain and iosMain behind expect/actual declarations.
Data comes from the Metan Mobile API. The app downloads only the changes since the last sync and stores them in Room, so the app works offline. On Android, sync runs in the background with WorkManager.
The app was designed using Material 3 guidelines.
The screens and UI elements are built entirely with Compose Multiplatform, so the same UI runs on Android and iOS.
The app has a floating liquid glass bottom navigation bar and glass top bars.
The app also has several custom elements, such as a gas station busy chart and calculators.
The app supports light and dark themes and three languages: English, Russian and Belarusian.
This application was developed by NGApps Dev. I am continuously working on improving the functionality, optimizing the app's performance, and keeping the libraries up-to-date to ensure its stability and relevance.
You can reach me at [email protected], and feel free to follow my projects on GitHub.
I welcome contributions from the community! Whether it's suggestions, bug fixes, or new features, feel free to open an issue or submit a pull request. Thank you for using the app and for your support!









