CloudCast is a modern weather application built with Kotlin Multiplatform and Jetpack Compose, providing a seamless weather experience across multiple platforms.
- 🌡️ Real-time weather information
- 📱 Cross-platform support (Android, iOS, Desktop)
- 🎨 Modern Material 3 design
- 🔄 Automatic weather updates
- 🌦️ Detailed weather conditions
- 💨 Wind speed information
- 💧 Humidity levels
- 🌡️ Temperature in both Celsius and Fahrenheit
- 🚀 Built with Kotlin Multiplatform and Jetpack Compose
- Kotlin Multiplatform: For cross-platform development
- Jetpack Compose: For modern UI development
- Kotlin Coroutines: For asynchronous programming
- Kotlin Flow: For reactive programming
- Material 3: For modern design system
- Clean Architecture: For maintainable and scalable codebase
composeApp/
├── src/
│ ├── commonMain/ # Shared code
│ │ ├── kotlin/
│ │ │ └── com/ovais/cloudcast/
│ │ │ ├── core/ # Core functionality
│ │ │ ├── home/ # Home screen
├── settings/ # Settings screen
│ │ │ └── utils/ # Utility functions
│ │ ├── androidMain/ # Android-specific code
│ └── desktopMain/ # Desktop-specific code
└── build.gradle.kts # Project configuration
- Kotlin 1.9.0 or higher
- Android Studio Hedgehog or higher
- JDK 17 or higher
- Gradle 8.0 or higher
- Clone the repository:
git clone https://github.com/yourusername/CloudCast.git-
Open the project in Android Studio
-
Sync the project with Gradle files
-
Run the application:
- For Android: Select an Android device/emulator and click Run
- For Desktop: Select the desktop configuration and click Run
./gradlew :composeApp:assembleDebug./gradlew :composeApp:runThe project follows Clean Architecture principles:
- Presentation Layer: Contains UI components and ViewModels
- Domain Layer: Contains business logic and use cases
- Data Layer: Handles data operations and network calls
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the MIT LICENSE file for details.
- Weather data provided by OpenWeatherMap
Syed Ovais Akhtar - @syedovaisakhtar