Weather App - Compose Multiplatform

Cross-platform weather application for Android & iOS

Kotlin Multiplatform Jetpack Compose MVVM Architecture

✨ Key Features

🌍 Location-Based Weather

Automatic detection of current location with GPS permissions handling

🔍 City Search

Search for weather information in any city worldwide

🌬️ Air Quality Index

Detailed PM2.5 and air quality monitoring with color-coded indicators

📊 Weather Details

Hourly forecasts, humidity, wind speed, and UV index

📁 Project Structure

📁 org.weather.de.app
📁 dataLayer # Data management layer
📁 offlineWeather
📄 OfflineWeatherRepository.kt
📁 onlineWeather
📄 KtorFitClient.kt
📄 OneCallOnlineResponse.kt
📄 OnlineWeatherRepository.kt
📁 theme
📄 Color.kt
📄 Theme.kt
📁 ui
📁 components
📄 AirQualityDetails.kt
📄 LocationInfoDialog.kt
📄 WeatherDetailRow.kt
📁 screens
📄 CurrentWeatherScreen.kt
📄 ErrorScreen.kt
📄 LoadingScreen.kt
📄 SuccessScreen.kt
📁 viewmodel
📄 CurrentLocationWeatherViewModel.kt
📄 CurrentWeatherState.kt
📁 weatherLocation
📄 LocationData.kt
📄 LocationServices.kt
📄 LocationServicesHandler.kt

⚙️ Setup & Installation

Android Setup

  1. Clone the repository
  2. Open in Android Studio Electric Eel or newer
  3. Add local.properties with Android SDK path
  4. Build and run with Gradle:
    ./gradlew :composeApp:assembleDebug

iOS Setup

  1. Install Xcode 15+
  2. Open iosApp/iosApp.xcodeproj
  3. Configure signing team in Xcode
  4. Build and run on simulator/device

🤝 How to Contribute

🚧 Current Limitations

🔮 Future Roadmap

📝 Contribution Guidelines

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/AmazingFeature)
  3. Commit changes (git commit -m 'Add some AmazingFeature')
  4. Push to branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request