Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

Releases

Packages

Contributors

Languages