Skip to content

khaatteerr/Weather-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Weather-Ktor-Client 💦:

LinkedIn Badge

Weather App That's Built With Kotlin to get accurate, real-time weather information with a beautiful, user-friendly interface that makes checking the weather a delightful experience. This repository contains a Weather App This is an educational App at the chance. Use and run this App to learn more about Apps design and best practices. That's built with Kotlin language with compose, That's implements Coroutines,Ktor-client for HTTP requests,clean architecture,koin,etc.

Features

  • 🌡️ Current Weather Conditions
  • ⏲️ Hourly Weather Forecast per current day
  • 📅 Weekly Weather Forecast

App Overview

Weather Screens

App Demo Videos

Dark Theme Light Theme
dark.theme.mp4
light.theme.mp4

Built With 🛠

Project Structure

weather app

📂 app
└── 📂 weather
├── 📄 WeatherApplication.kt
├── 📂 data
│   ├── 📂 networking
│   │   ├── 📄 ResponseToResult.kt
│   │   └── 📄 SafeCallNetworkConnection.kt
│   ├── 📂 repositories
│   │   ├── 📄 LocationRepositoryImpl.kt
│   │   └── 📄 WeatherRepositoryImpl.kt
│   ├── 📂 source
│   │   └── 📂 remote
│   │       ├── 📂 dataSource
│   │       │   ├── 📂 location
│   │       │   │   ├── 📄 LocationDataSource.kt
│   │       │   │   └── 📄 LocationRemoteDataSource.kt
│   │       │   └── 📂 weather
│   │       │       ├── 📄 WeatherDataSource.kt
│   │       │       └── 📄 WeatherRemoteDataSource.kt
│   │       └── 📂 responseDto
│   │           ├── 📂 locationDto
│   │           │   ├── 📄 IpAddressResponseModel.kt
│   │           │   └── 📄 LocationResponseModel.kt
│   │           └── 📂 weatherDto
│   │               ├── 📄 CurrentUnitsWeatherResponseModel.kt
│   │               ├── 📄 CurrentWeatherResponseModel.kt
│   │               ├── 📄 DailyUnitsWeatherTemperatureResponseModel.kt
│   │               ├── 📄 DailyWeatherTemperatureResponseModel.kt
│   │               ├── 📄 HourlyUnitsResponseModel.kt
│   │               ├── 📄 HourlyWeatherResponseModel.kt
│   │               └── 📄 WeatherResponseModel.kt
│   └── 📂 utils
│       ├── 📄 Constants.kt
│       ├── 📄 ExceptionMapper.kt
│       └── 📄 NetworkException.kt
├── 📂 di
│   └── 📂 modules
│       ├── 📄 DataSourceModule.kt
│       ├── 📄 NetworkModule.kt
│       ├── 📄 RepositoryModule.kt
│       └── 📄 ViewModelModule.kt
├── 📂 domain
│   ├── 📂 entities
│   │   ├── 📂 locationEntity
│   │   │   ├── 📄 IpAddress.kt
│   │   │   └── 📄 Location.kt
│   │   └── 📂 weatherEntity
│   │       ├── 📄 CurrentUnitsWeather.kt
│   │       ├── 📄 CurrentWeather.kt
│   │       ├── 📄 DailyUnitsWeather.kt
│   │       ├── 📄 DailyWeather.kt
│   │       ├── 📄 HourlyUnits.kt
│   │       ├── 📄 HourlyWeather.kt
│   │       └── 📄 Weather.kt
│   ├── 📂 repositories
│   │   ├── 📄 LocationRepository.kt
│   │   └── 📄 WeatherRepository.kt
│   ├── 📂 usecases
│   │   └── 📄 GetWeatherUseCase.kt
│   └── 📂 utils
│       └── 📂 exceptions
│           ├── 📄 LocationException.kt
│           ├── 📄 WeatherException.kt
│           └── 📄 WeatherExceptions.kt
└── 📂 ui
├── 📄 MainActivity.kt
├── 📂 screens
│   └── 📂 homeScreen
│       ├── 📄 HomeScreen.kt
│       ├── 📄 HomeUiStateMapper.kt
│       ├── 📄 HomeViewModel.kt
│       ├── 📂 composables
│       │   ├── 📄 CurrentWeatherSection.kt
│       │   ├── 📄 ExtraWeatherInfoItem.kt
│       │   ├── 📄 ExtraWeatherSection.kt
│       │   ├── 📄 LocationSection.kt
│       │   ├── 📄 MinMaxTemperature.kt
│       │   ├── 📄 SectionLabel.kt
│       │   ├── 📄 Spacer.kt
│       │   ├── 📄 TodaySection.kt
│       │   ├── 📄 TodayWeatherItem.kt
│       │   ├── 📄 WeatherForecastCard.kt
│       │   └── 📄 WeatherForecastItem.kt
│       └── 📂 uiStates
│           ├── 📄 CurrentWeatherUiState.kt
│           ├── 📄 DailyForecast.kt
│           ├── 📄 ExtraWeatherInfoUiState.kt
│           ├── 📄 HomeUiState.kt
│           ├── 📄 HourlyWeatherUiState.kt
│           ├── 📄 TodayWeatherUiState.kt
│           └── 📄 WeeklyWeatherUiState.kt

LICENSE


Copyright (c) 2025 khaatteerr

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages