Android Native project

Earthquake Watchdog icon

Earthquake Watchdog

A location-aware Android utility for exploring recent earthquakes, browsing maps, filtering results, and checking event details.

AndroidDataUtility app
Earthquake Watchdog

Overview

Earthquake Watchdog

Earthquake Watchdog is a location-aware Android application for exploring recently reported seismic activity worldwide using data from the USGS Earthquake API.

Users can browse, search, and filter earthquake events; sort them by date, magnitude, or distance; and visualize their locations on an interactive map.
Event actions provide quick access to map navigation and official USGS information and reporting pages.

The app supports both device-based location and manual position selection, allowing proximity-based exploration even when GPS access is unavailable or location permission is not granted.

The latest releases introduce a dedicated Statistics and Insights dashboard, providing:

  • Earthquake totals for today, the last 7 days, the last 30 days, and the current year.
  • The strongest and nearest recently reported events.
  • Global seismic activity trends.
  • Nearby activity analysis within a configurable geographic context.
  • Magnitude and depth distributions.
  • Rankings of the most active regions.
  • Direct navigation from statistics to individual earthquake events.

Statistics are cached locally and loaded independently, allowing the screen to remain useful even when some remote data is temporarily unavailable.

From a product perspective, Earthquake Watchdog is designed as a practical, data-driven monitoring and exploration utility.
Remote earthquake data is normalized, stored locally, and presented through a responsive interface optimized for list exploration, map visualization, statistical analysis, and preference-driven customization.

Additional capabilities include:

  • Location onboarding and permission management.
  • Manual map-based position selection.
  • Configurable map styles and display options.
  • Light, dark, and system theme modes.
  • Metric and imperial measurement units.
  • Italian and English localization.
  • GDPR and advertising consent management.
  • Offline-friendly persistence of previously synchronized data.
  • Updated application branding, launcher icons, and Play Store assets.

Earthquake Watchdog is an informational tool and is not a replacement for official emergency warning systems.

Architecture

The project follows a layered Android architecture, with clear separation between presentation, domain, and data responsibilities.

  • Presentation layer built with Jetpack Compose and screen-specific ViewModels.
  • Domain layer organized around use cases for fetching, saving, filtering, sorting, querying, and analyzing earthquake data.
  • Data layer divided between remote USGS API access and local Room persistence.
  • Statistics module responsible for cached summaries, regional rankings, distribution analysis, and location-aware insights.
  • Dependency injection managed through Hilt modules.
  • State-driven UI implemented with StateFlow and lifecycle-aware state collection.
  • Navigation handled with Compose Navigation 3.
  • Preferences and lightweight application state persisted with DataStore.

This structure keeps UI components focused on rendering and interaction, while business rules such as synchronization, filtering, sorting, statistical analysis, location handling, and database persistence remain encapsulated in dedicated use cases and repositories.

Project Strategies

The implementation emphasizes maintainability, resilience, and real-world application behavior rather than demo-only patterns.

  • Repository pattern to abstract remote and local data sources.
  • Offline-first leaning workflow: fetch remotely, persist locally, and render from the database.
  • Resilient statistics loading with independent sections, cached fallbacks, and partial-data states.
  • User-centric location strategy supporting GPS-based and manually selected positions.
  • Location-aware insights for nearest earthquakes and nearby seismic activity.
  • Preference-driven customization for theme, measurement units, map appearance, and saved location context.
  • Feature-oriented modularization covering earthquake lists, maps, statistics, settings, onboarding, event details, advertising, and shared utilities.
  • Compose-first UI strategy with reusable navigation and scaffold components.
  • Isolated external-service integration through dedicated repositories, clients, and utility modules.
  • Automated Android validation using dedicated emulator and release-check scripts.
  • Fastlane-based Play Store metadata and asset management for repeatable store-listing workflows.

Core Technology

  • Kotlin
  • Android SDK
  • Jetpack Compose
  • Material 3
  • Hilt
  • Room
  • DataStore
  • StateFlow and Kotlin Coroutines
  • Compose Navigation 3
  • Google Maps Compose
  • Ktor HTTP Client
  • USGS Earthquake API
  • Google Mobile Ads
  • Google User Messaging Platform consent flow
  • Fastlane
  • Android emulator-based CI validation

Links