This is a jetpack practice app.
Jetpack is a suite of libraries developed by Google, that can help developers write less code that works consistently across Android versions and devices.
Jetpack has a lot of libraries, by the time of creating this project, it has 85 libraries. A huge number.
This project will show examples of how to use these libraries.
Examples will be in alphabetic order with is listed below. Each example will be a submodule and is in a separate branch in git.
All the libraries ar listed here: (names with a * means it's a popular and often-used library)
Library | Description |
---|---|
activity * | Access composable APIs built on top of Activity. |
ads | Get an advertising ID with or without Play Services. |
annotation | Expose metadata that helps tools and other developers understand your app's code. |
appcompat * | Allows access to new APIs on older API versions of the platform (many using Material Design). |
arch.core | Helper for other arch dependencies, including JUnit test rules that can be used with LiveData. |
asynclayoutinflater | Inflate layouts asynchronously to avoid jank in the UI. |
autofill | Improve autofill accuracy via extending hints. |
benchmark | Accurately measure your code's performance within Android Studio. |
biometric | Authenticate with biometrics or device credentials, and perform cryptographic operations. |
browser | Display webpages in the user's default browser. |
camera * | Build mobile camera apps. |
car | Develop driving-friendly applications for an Android-powered car. |
cardview | Implement the Material Design card pattern with round corners and drop shadows. |
collection | Reduce the memory impact of existing and new collections that are small. |
compose * | Define your UI programmatically with composable functions that describe its shape and data dependencies. |
compose.animation | Build animations in their Jetpack Compose applications to enrich the user experience. |
compose.compiler | Transform @Composable functions and enable optimizations with a Kotlin compiler plugin. |
compose.foundation | Write Jetpack Compose applications with ready to use building blocks and extend foundation to build your own design system pieces. |
compose.material | Build Jetpack Compose UIs with ready to use Material Design Components. This is the higher level entry point of Compose, designed to provide components that match those described at www.material.io. |
compose.runtime | Fundamental building blocks of Compose's programming model and state management, and core runtime for the Compose Compiler Plugin to target. |
compose.ui | Fundamental components of compose UI needed to interact with the device, including layout, drawing, and input. |
concurrent | Move tasks off the main thread with coroutines and take advantage of ListenableFuture. |
constraintlayout | Position and size widgets in a flexible way with relative positioning. |
contentpager | Load and page across ContentProvider data in a background thread. |
coordinatorlayout | Position top-level application widgets, such as AppBarLayout and FloatingActionButton. |
core | Target the latest platform features and APIs while also supporting older devices. |
cursoradapter | Expose Cursor data to a ListView widget. |
customview | Implement custom views. |
databinding * | Bind UI components in your layouts to data sources in your app using a declarative format. |
datastore | Store data asynchronously, consistently, and transactionally, overcoming some of the drawbacks of SharedPreferences |
documentfile | View a file document. |
drawerlayout | Implement a Material Design drawer widget. |
dynamicanimation | Create smooth animations with a physics-based animation API. |
emoji | Display emoji in current and older devices. |
enterprise | Create enterprise-ready applications. |
exifinterface | Read and write image file EXIF tags. |
fragment * | Segment your app into multiple, independent screens that are hosted within an Activity. |
games | Use the Android Game SDK natively in your app to perform complex games tasks, like Frame Pacing. |
gridlayout | Implement a grid layout. |
heifwriter | Encode an image or image collection in HEIF format using the available codecs on the Android device. |
hilt * | Extend the functionality of Dagger Hilt to enable dependency injection of certain classes from the androidx libraries. |
interpolator | Use animation interpolators on older platforms. |
jetifier | A standalone tool that migrates a library's dependencies on the deprecated support library to equivalent AndroidX dependencies. |
leanback | Write apps for Android TV devices using dpad-friendly widgets and template fragments. |
legacy | This artifact and its classes are deprecated. Starting with Android 8, background check restrictions make this class no longer useful. |
lifecycle * | Build lifecycle-aware components that can adjust behavior based on the current lifecycle state of an activity or fragment. |
loader | Load data for your UI that survives configuration changes. |
localbroadcastmanager | This artifact and its classes are deprecated. Use LiveData or reactive streams instead. |
media | Share media contents and controls with other apps. Superseded by media2. |
media2 | Share media contents and controls with other apps. |
mediarouter | Enable media display and playback on remote receiver devices using a common user interface. |
multidex | Deploy applications with multiple dex files on pre-Android 5 devices. |
navigation * | Build and structure your in-app UI, handle deep links, and navigate between screens. |
paging * | Load data in pages, and present it in a RecyclerView. |
palette | Extract representative color palettes from images. |
percentlayout | This artifact and its classes are deprecated. Use ConstraintLayout and associated layouts instead. |
preference | Build interactive settings screens without needing to interact with device storage or manage the UI. |
Print photos, docs, and other graphics and images from your app. | |
recommendation | Promote content to the Android TV Launcher home screen. |
recyclerview | Display large sets of data in your UI while minimizing memory usage. |
remotecallback | Create a wrapper that makes it easier for developers to provide a PendingIntent. |
room * | Create, store, and manage persistent data backed by a SQLite database. |
savedstate | Write pluggable components that save the UI state when a process dies, and restore it when the process restarts. |
security | Safely manage keys and encrypt files and sharedpreferences. |
sharetarget | Provide backwards compatibility for using shortcuts as direct share targets. |
slice | Display templated UI elements outside your app. |
slidingpanelayout | Implement a sliding pane UI pattern. |
startup | Implement a straightforward, performant way to initialize components at app startup. |
sqlite | Work with local SQLite databases. If possible, use Room instead. |
swiperefreshlayout | Implement the swipe-to-refresh UI pattern. |
test * | Testing in Android. |
textclassifier | Identifies conversations, links, selections, and other similar constructs in text. |
tracing | Write trace events to the system trace buffer. |
transition | Animate motion in the UI with starting and ending layouts. |
tvprovider | Provide Android TV channels. |
ui | Works with the Jetpack Compose library. |
vectordrawable | Render vector graphics. |
versionedparcelable | Provides a stable and compact binary serialization format that can be passed across processes or persisted safely. |
viewpager | Display Views or Fragments in a swipeable format. If possible, use viewpager2 instead. |
viewpager2 | Display Views or Fragments in a swipeable format. |
wear | Create applications for Wear OS by Google smartwatches. |
webkit | Work with modern WebView APIs on Android 5 and above. |
window | Helps support different device form factors such as foldable devices. |
work * | Schedule and execute deferrable, constraint-based background tasks. |
Material Design Components * | Modular and customizable Material Design UI components for Android. |