Jetpack is a suite of Android libraries to help Android app developers like New Media Aid to follow best practices and to allow our custom Android app developers to write code that works consistently across Android versions and devices.
Jetpack libraries ship separately from the Android operating system (Android OS), so updates to the libraries can happen independently and more frequently.
Jetpack libraries may be used alone or in combination to address different needs in the apps we develop. Here below are some of the main libraries we may use in the bespoke Android apps we develop for you in order to reduce coding time (and therefore cost to you) and to make sure the apps work consistently across Android versions and devices.
WorkManager - for background scheduling
WorkManager is an API that makes it easy to schedule deferrable, asynchronous tasks that are expected to run even if the app exits or the device restarts. The WorkManager API is a suitable and recommended replacement for all previous Android background scheduling APIs, including FirebaseJobDispatcher, GcmNetworkManager, and Job Scheduler. WorkManager incorporates the features of its predecessors in a modern, consistent API that works back to API level 14 while also being conscious of battery life.
WorkManager is intended for work that is deferrable—that is, not required
to run immediately—and required to run reliably even if the app exits or the
device restarts. For example:
Sending logs or analytics to backend services
Periodically syncing application data with a server
WorkManager is not intended for in-process background work that can safely be
terminated if the app process goes away or for work that requires immediate
Room - for data storage persistence
Apps that handle non-trivial amounts of structured data can benefit greatly from
persisting that data locally. The most common use case is to cache relevant
pieces of data so that when the device cannot access the network, the user can
still browse that content while they are offline.
The Room persistence library provides an abstraction layer over SQLite to allow
fluent database access while harnessing the full power of SQLite. In particular,
Room provides the following benefits:
Compile-time verification of SQL queries.
Convenience annotations that minimize repetitive and error-prone boilerplate
Streamlined database migration paths.
The Android team at Google recommend that our Android app developers use Room instead
of using the SQLite APIs directly.
Navigation to manage application navigation flow
Navigation refers to the interactions that allow users to navigate across, into, and back out from the different pieces of content within your app. Android Jetpack's Navigation component helps us to implement navigation, from simple button clicks to more complex patterns, such as app bars and the navigation drawer. The Navigation component also ensures a consistent and predictable user experience by adhering to an established set of principles.
CameraX for your camera app needs
CameraX is a Jetpack support library that provides a consistent API that works across most Android devices, with backward-compatibility to Android 5.0 (API level 21).
While CameraX leverages the capabilities of camera2, it uses a simpler approach that is lifecycle-aware and is based on use cases. It also resolves device compatibility issues for you so that you don't have to include device-specific code in your code base. These features reduce the amount of code you need to write when adding camera capabilities to your app.
Lastly, CameraX enables developers to leverage the same camera experiences and features that preinstalled camera apps provide, with as little as two lines of code. CameraX Extensions are optional add-ons that enable you to add effects on supported devices. These effects include Portrait, HDR, Night, and Beauty.
Android is a trademark of Google LLC. The Android robot is reproduced or modified from work created and shared by
Google and portions of this page are modifications based on work created and
shared by the Android Open Source Project
and used according to terms described in the Creative Commons 3.0 Attribution License.