A weather app illustrating several Android development best practices with Android Jetpack.
The app will consist of one screen. On this screen, the app will display a zip code (chosen and hard-coded by you, which is 94538 Fremont, CA), as well as details of the current weather for that zip code. The details will include: City, State, General Description, Current Temperature and Icon
Android Jetpack is a set of components, tools and guidance to make great Android apps. They bring together the existing Support Library and Architecture Components and arrange them into four categories:
This project uses the Gradle build system.
For more resources on learning Android development, visit the Developer Guides at developer.android.com.
- Architecture - A collection of libraries that help you design robust, testable, and
maintainable apps. Start with classes for managing your UI component lifecycle and handling data
persistence.
- Data Binding - Declaratively bind observable data to UI elements.
- Lifecycles - Create a UI that automatically responds to lifecycle events.
- LiveData - Build data objects that notify views when the underlying database changes.
- Navigation - Handle everything needed for in-app navigation.
- ViewModel - Store UI-related data that isn't destroyed on app rotations. Easily schedule asynchronous tasks for optimal execution.
- Third party
- Glide for image loading
- Kotlin Coroutines for managing background threads with simplified code and reducing needs for callbacks
- Add Room database for offline experience
- Add Repository pattern
- Add an edittext to query any place by zipcode
For development, the latest version of Android Studio is required. The latest version can be downloaded from here.

