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 app for monitoring recent seismic activity worldwide through the USGS earthquake feed.
It lets users browse and filter recent earthquake events, view them on an interactive map, sort them by time, magnitude, or proximity, and inspect event-level details such as distance from the user and direct links to the official USGS event pages.
The app also supports manual position selection, so distance-based exploration works even without live GPS access.

From a product perspective, the app is designed as a practical data-driven utility: remote earthquake data is fetched from the USGS API, normalized, stored locally, and then presented through a responsive UI optimized for list exploration, map visualization, and user preference customization.
It includes location onboarding, theme and unit settings, GDPR/ad-consent handling, and offline-friendly local persistence for previously synced data.

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, and querying earthquake data.
  • Data layer split between remote API access and local Room persistence.
  • Dependency injection managed with Hilt modules.
  • State-driven UI using StateFlow and lifecycle-aware collection.
  • Navigation handled with Compose Navigation.
  • Preferences and lightweight app state persisted with DataStore.

This structure keeps UI code focused on rendering and interaction, while business rules such as refresh, filtering, sorting, and database synchronization stay encapsulated in use cases and repositories.

Project Strategies

The implementation emphasizes maintainability and real-world app behavior rather than demo-only patterns.

  • Repository pattern to abstract remote and local data sources.
  • Offline-first leaning flow: fetch remotely, persist locally, then render from database.
  • User-centric location strategy with both GPS-based and manual positioning.
  • Preference-driven customization for theme mode, measurement system, and saved location context.
  • Modular feature packaging by concern: list, map, settings, intro, details, ads, and shared core utilities.
  • Compose-first UI strategy with reusable scaffold/navigation patterns.
  • External service integration kept isolated behind dedicated utilities and modules.

Core Technology

  • Kotlin
  • Android SDK
  • Jetpack Compose
  • Material 3
  • Hilt
  • Room
  • DataStore
  • StateFlow / Kotlin Coroutines
  • Compose Navigation
  • Google Maps Compose
  • Ktor HTTP client
  • USGS Earthquake API integration
  • Google Mobile Ads / UMP consent flow