Cool Weather

Weather App that uses Android best practices. Android Jetpack, clean architecture. Written in Kotlin

Mobile App DevelopmentKotlinApache-2.0

Abstract

Cool Weather is an open-source Mobile App Development project. Weather App that uses Android best practices. Android Jetpack, clean architecture. Written in Kotlin. An Android Clean Architecture app written in Kotlin, using Kotlin Coroutines and Android Architecture Components using Hilt for Dependency Injection. It is built using Kotlin, Android, Java. The complete source code is publicly available on GitHub under the Apache License 2.0, making it a useful reference for students building a Mobile App Development mini project or final-year project.

1. Introduction

An Android Clean Architecture app written in Kotlin, using Kotlin Coroutines and Android Architecture Components using Hilt for Dependency Injection.

MVVM with ViewModels exposing LiveData that the Views consume. The ViewModel does not know anything about it's consumers. It exposes a single source of truth as a LiveData that the consumers can observe to get the events emitted. These events consist of entities, that are wrapped in a Result class that leverages the powerful Kotlin feature of sealed classes. This enables us to express the different states of the application's individual screens in an concise an expressive manner.

The domain layer contains the UseCases that encapsulate a single and very specific task that can be performed. This task is part of the business logic of the application. A UseCase exposes suspend operator fun invoke that returns a Result after invocation. The ViewModels of the presentation layer use the UseCases to complete a business case. This layer also contains the Repository interfaces and the domain entities. These are the basic building blocks of the application and the ones that are least likely to change when something external changes. That also means that this layer should not depend on any other layer. The other layers must depend and reference the domain layer.

2. Objective

Weather App that uses Android best practices. Android Jetpack, clean architecture. Written in Kotlin

This project demonstrates how Kotlin, Android, Java can be applied to a real-world Mobile App Development problem.

4. Technology Stack

KotlinAndroidJava

5. System Requirements

General requirements for this technology stack — check the README for exact versions.

  • Android Studio (latest)
  • JDK 17
  • Android device or emulator
  • JDK 11 or later
  • Maven / Gradle
  • IntelliJ IDEA, Eclipse or Android Studio
  • Git (to clone the repository)

6. Installation & Setup

git clone https://github.com/akoufa/CoolWeather.git
cd CoolWeather

Full setup instructions are in the project README.

7. Future Enhancements

Suggested extensions you can add to make this your own project.

  • Add push notifications with Firebase Cloud Messaging
  • Add offline support with local caching
  • Publish an internal test build on the Play Store

8. Viva / Review Questions

Common questions examiners ask for projects in this domain.

  1. Which framework is used and why (native vs cross-platform)?
  2. How is app state managed across screens?
  3. Where is the data stored — locally, Firebase or a REST backend?
  4. How are permissions (camera, location, storage) handled?
  5. How would you publish this app to the Play Store / App Store?

9. Source Code & License

This project is developed by akoufa and published on GitHub under the Apache License 2.0. Please follow the license terms and credit the original author when you use or modify this code.

Want to build this as your internship project?

Work on a Mobile App Development project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.

Apply for Mobile App Development Internship