Weather is an Android application developed in Kotlin using Jetpack libraries (Room, ViewModel, Compose), coroutines, flow, livedata, and Material Design, based on Clean Architecture with an MVVM presentation model.
- Minimum SDK: 28.
- Kotlin with Coroutines, Flow and Livedata for asynchronous operations.
- Jetpack libraries:
- Jetpack Compose: Modern Android toolkit for building declarative UIs.
- ViewModel: Handles UI-related logic and survives configuration changes.
- Navigation: Simplifies screen navigation. Integrated with Hilt Navigation Compose for dependency injection, particularly with
SharedViewModel. - Room: Builds a database layer over SQLite to access city data efficiently.
- Hilt: Simplifies dependency injection.
- Architecture:
- MVVM (Model - View - ViewModel): Promotes separation of concerns and improves maintainability.
- Clean Arquitecture: Separates logic into layers (data, domain, and presentation) for better structure and scalability.
- Retrofit2 & OkHttp3: For HTTP requests to the REST API.
- Kotlin Serialization: Reflection-free, multiplatform, multi-format serialization.
- ksp: Kotlin Symbol Processing for code generation and analysis.
- SplashScreen: For creating launch screens.
Weather information is provided by the OpenWeather API.
Designed and developed by AnnaSolox in 2025.
This project is licensed under the Apache 2.0.
You may not use this file except in compliance with the License.
You may obtain a copy of the License at:
https://opensource.org/license/apache-2-0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and limitations under the License.