Android Jetpack is a set of libraries which is launched by Google in 2018 to write high-quality apps easily, following the best practices and writing the boilerplate code, making complex things very simple. supporting older versions of the Android OS. The Android Jetpack components divided into four categories:-
- Foundation Components
- Architecture Components
- Behavior Components
- UI Components
categories of android architecture
Foundation components:–The foundation components help in providing the Backward compatibility, Testing and Kotlin language support. The foundation components divided into following:-
- AppCompat
When new versions of android application are published, Google will have to support the older versions of android. So AppCompat is a set of support libraries which to Degrade on old versions of Android with user interface implementation support of material design .
2. Android KTX
It help to provide the Set of Kotlin extensions which help to write more idiomatic Kotlin and concise code.
3. Test
It provide a testing framework for UI and unit tests in Android.
4. Multidex
It help to provide support for multiple dex files for android application and remove limitation of 64K methods in a particular DEX file.
Architecture Components:-The architecture components help us in building Maintainable Apps, Testable Apps, and Robust Apps. The architecture components divided into following: –
- Room
Room is an object-mapping library which wrapping SQLite to make your Fluent SQLite database access, database management concise and painless.
2. WorkManager
Manage every background jobs in Android with the circumstances we choose. WorkManager API provides an optimal solution to manage the background jobs in Android. it is also compatible with API level 14.
3. Lifecycle
It has the ability to detect the change in the lifecycle state of activity and fragment and respond accordingly. management of application lifecycles is a tough task that can lead to severe issues like memory leaks and app crashing.
4. ViewModel
Manage UI-related data in a lifecycle-conscious way. It hold and manage the UI related data in a lifecycle-conscious way like configuration changes like screen rotations. it help to prevent to loss data when any configuration change in Android devices happened .
5. LiveData
Notify views of any database changes. Live data is an observable data holder class lifecycle-aware component thus it performs its functions accordingly to the lifecycle state of activity and fragment .
6. Navigation
The navigation component is a framework for designing the in-app UI. Navigation reduce the complexity related to the fragment transactions in the application. It also provide features to display transitions and Back behavior.
7. Paging
Paging is a very helpful library for those applications in which the already exist data is updating continuously. it load information on request from your data source.
8. Data Binding
Data Binding library provides the feature of Declaratively bind UI components in an activity/fragment to the model of the application.
Behavior Components:- The behavior components divided into following: –
- DownloadManager
Schedule and manage large downloads in background with auto retry support. The DownloadManager helps in downloading large files in the background thread. It handle only HTTP downloads, and it is also responsible for avoiding problem of connectivity. Since Download Manager is a system service, users can easily start a download and must have listen for a broadcast event to handle the finished download.
2. Media & Playback
It help to integrate audio, video, and image files into an application. Its Playback libraries allow user to playback video and audio using sessions and media controllers in android apps.
3. Permissions
It provide Compatibility APIs for checking and requesting permissions in app. if an application requires network access to carry out a task, it will define permission for the user. Developers have to declare the permissions for an application in its manifest file.
4. Notifications
From the very beginning Andriod provided the Notification service. In this Developers can use various kinds of images and buttons in the notification area which makes them more expressive. Android TV and wearables also use the notification feature to control their media operations beside mobile phones.
5. Sharing
Sharing is responsible for sharing and receiving contents with different applications. In this ShareActionProvider class is used to carry out the task of sharing contents and information in app.
6. Slices
Slice is the UI component that displays the contents from an application to the Google Search app or in different platforms like Google Assistant or Google Assistant devices. it is available in Android 4.4
UI Components:- The behavior components divided into following: –
- Animation & Transition
Move widgets and transition between screens. Jetpack allow APIs to set up different kinds of animations and transition for Android apps. This allow us to move widgets and switching between screens with animation and transition in android app. It help to improve the user experience by using animations that are used to animate the changes occurring in an app and the transition framework helps to gives the power to configure the appearance for that change
2. Auto
Google announce this Auto case and developed Android Auto with an intention to minimize the driver’s interaction with the phone as well as to assure safety plus security on the road. The task gives the most practical applications to the user’s smartphone or on the compatible car display.
3. Emoji
Google has announced a new library which is called EmojiCompat to handle emoji characters and to use downloadable font support. EmojiCompat has ability to identifies an emoji with the help of its CharSequence and replaces them with EmojiSpans to assure that the sender and receiver will observe the emoji in the exact same way or not.
4. Fragment
Fragments allow dividing the UI into pieces that brings reusability and modularity into the UI of an activity . A Fragment is depends on Activity without activity there is no existence of fragments. So Fragment is depend upon Activity .
5. Layout
User interface like activity and fragment of an application is defined by Layout. It defines the View and ViewGroup objects inside the layout.
6. Palette
Android Jetpack announced a new Palette support library. It has ability of extracting a small set of colors from an image. The extracted color gives style to the UI controls of the app and update the icons of app based on the background image’s color.
7. TV
Jetpack gives several key components which assist to the developers in building apps for Android Smart TVs. The structure for developed Android TV application is the same as the mobile/tablet apps, however, there are some little differences. The hardware and controllers component of a TV are very much different than mobile devices.
8. Wear
Android version which is for wearable devices is called Wear OS. Android Jetpack provides the Wear UI library that enables developers to create apps that can play and control media from a wearable watch.