What's new in Android Jetpack?

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: 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 execution.

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: 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.