Skip to content

DenTower/WeatherPet

Repository files navigation

WeatherPet

Android Studio API Kotlin Version Weather API

(EN) Switch language:

Static Badge

Android-app weather forecast developed with Jetpack Compose and MVVM architechture. App gets data from WeatherAPI and provides user with current weather, forecast and other related information.

Key Features

  • Weather forecast by user location (using Google Location Services)
  • Weather forecast by city search (requests to Weather API)
  • 3-day hourly forecast (fbased on the free Weather API plan)
  • Hourly temperature chart for the current day
  • Localization support (EN/RU depending on system language)
  • History of weather requests (stored in Room DB)
  • UI color theme consistent with the system theme
  • Passive notifications with current weather condition

Visuals

Main screen with weather forecast

image image image

Search screen and notification with current weather condition

image image image

Tech Stack

  • Kotlin - programming language of the app
  • Jetpack Compose - declarative UI toolkit replacing XML-based layouts
  • Hilt (Dagger) - dependency injection for easier component management
  • MVVM - architectural pattern (Model-View-ViewModel)
  • Ktor Client - network requests to the Weather API
  • Kotlinx Serialization - JSON parsing from the Weather API
  • Room - local storage for weather history
  • Coroutines / Flow - asynchronous work and reactive UI updates
  • Google Location Services - geolocation handling
  • Service - background task execution (push notifications with current weather)
  • WorkManager - scheduling delayed and periodic tasks (automatic background forecast updates and start service with pushing notification)

WeatherPet

Android Studio API Kotlin Version Weather API

(RU) Переключить язык:

Static Badge

Android-приложение прогноза погоды разработанное с использованием Jetpack Compose и архитектуры MVVM. Приложение получает данные из WeatherAPI и предоставляет пользователю интерфейс для просмотра текущей погоды, прогноза и дополнительной информации о погоде.

Основные возможности

  • Прогноз по местоположению пользователя (используя Google Location Services)
  • Прогноз по поиску города (поиск с обрашением к Weather API)
  • 3-х дневный почасовой прогноз (бесплатный тариф Weather API)
  • График почасовой температуры текущего дня
  • Поддержка локализаций (ru/en в зависимости от языка системы)
  • История запросов (сохранение в локальной БД Room)
  • Цвета интерфейса в соответствии с темой системы
  • Пассивные уведомления с текущим состоянием погоды

Визуал

Главный экран с прогнозом погоды

Screenshot_20250920-215913 Screenshot_20250920-215925 Screenshot_20250920-215937

Экран поиска и уведомление о текущей погоде

Screenshot_20250920-220045 Screenshot_20250920-220119 Screenshot_20250920-220245

Стек

  • Kotlin - язык разработки
  • Jetpack Compose - декларативный UI, всё больше вытесняющий подход с XML
  • Hilt (Dagger) - внедрение зависимостей для облегчения доступа к компонентам приложения
  • MVVM - архитектурный паттерн (Model-View-ViewModel)
  • Ktor Client - сетевые запросы к Weather API
  • Kotlinx Serialization - парсинг JSON приходящего с Weather API
  • Room - локальное хранилище для сохранения истории погоды
  • Coroutines / Flow - асинхронная работа и реактивные обновления UI
  • Google Location Services - работа с геолокацией
  • Service - фоновое выполнение задач (пуш уведомления с текущей погодой)
  • WorkManager - планирование отложенных и периодических задач (автоматическое обновление прогноза в фоне и запуск сервиса для пуша уведомления)

About

Weather forecast app created as a pet project

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages