xref: /aosp_15_r20/external/accompanist/README.md (revision fa44fe6ae8e729aa3cfe5c03eedbbf98fb44e2c6)
1*fa44fe6aSInna Palant![Accompanist logo](docs/header.png)
2*fa44fe6aSInna Palant
3*fa44fe6aSInna PalantAccompanist is a group of libraries that aim to supplement [Jetpack Compose][compose] with features that are commonly required by developers but not yet available.
4*fa44fe6aSInna Palant
5*fa44fe6aSInna PalantAccompanist is a labs like environment for new Compose APIs. We use it to help fill known gaps in the Compose toolkit, experiment with new APIs and to gather insight into the development experience of developing a Compose library. The goal of these libraries is to upstream them into the official toolkit, at which point they will be deprecated and removed from Accompanist.
6*fa44fe6aSInna Palant
7*fa44fe6aSInna PalantFor more details like, why does this library exist? Why is it not part of AndroidX? Will you be releasing more libraries? Check out our [Accompanist FAQ](https://medium.com/p/b55117b02712).
8*fa44fe6aSInna Palant
9*fa44fe6aSInna Palant## Compose versions
10*fa44fe6aSInna Palant
11*fa44fe6aSInna PalantEach [release](https://github.com/google/accompanist/releases) outlines what version of the Compose UI libraries it depends on. We are currently releasing multiple versions of Accompanist for the different versions of Compose:
12*fa44fe6aSInna Palant
13*fa44fe6aSInna Palant<table>
14*fa44fe6aSInna Palant <tr>
15*fa44fe6aSInna Palant  <td>Compose 1.0 (1.0.x)</td><td><img alt="Maven Central" src="https://img.shields.io/maven-central/v/com.google.accompanist/accompanist-permissions?versionPrefix=0.20"></td>
16*fa44fe6aSInna Palant </tr>
17*fa44fe6aSInna Palant <tr>
18*fa44fe6aSInna Palant  <td>Compose 1.1 (1.1.x)</td><td><img alt="Maven Central" src="https://img.shields.io/maven-central/v/com.google.accompanist/accompanist-permissions?versionPrefix=0.23"></td>
19*fa44fe6aSInna Palant </tr>
20*fa44fe6aSInna Palant <tr>
21*fa44fe6aSInna Palant  <td>Compose UI 1.2 (1.2.x)</td><td><img alt="Maven Central" src="https://img.shields.io/maven-central/v/com.google.accompanist/accompanist-permissions?versionPrefix=0.25"></td>
22*fa44fe6aSInna Palant </tr>
23*fa44fe6aSInna Palant <tr>
24*fa44fe6aSInna Palant  <td>Compose UI 1.3 (1.3.x)</td><td><img alt="Maven Central" src="https://img.shields.io/maven-central/v/com.google.accompanist/accompanist-permissions?versionPrefix=0.28"></td>
25*fa44fe6aSInna Palant </tr>
26*fa44fe6aSInna Palant <tr>
27*fa44fe6aSInna Palant  <td>Compose UI 1.4 (1.4.x)</td><td><img alt="Maven Central" src="https://img.shields.io/maven-central/v/com.google.accompanist/accompanist-permissions?versionPrefix=0.30"></td>
28*fa44fe6aSInna Palant </tr>
29*fa44fe6aSInna Palant <tr>
30*fa44fe6aSInna Palant  <td>Compose UI 1.5 (1.5.x)</td><td><img alt="Maven Central" src="https://img.shields.io/maven-central/v/com.google.accompanist/accompanist-permissions?versionPrefix=0.32"></td>
31*fa44fe6aSInna Palant </tr>
32*fa44fe6aSInna Palant <tr>
33*fa44fe6aSInna Palant  <td>Compose UI 1.6 (1.6.x)</td><td><img alt="Maven Central" src="https://img.shields.io/maven-central/v/com.google.accompanist/accompanist-permissions"></td>
34*fa44fe6aSInna Palant </tr>
35*fa44fe6aSInna Palant</table>
36*fa44fe6aSInna Palant
37*fa44fe6aSInna PalantFor stable versions of Compose, we use the latest *stable* version of the Compose compiler. For non-stable versions (alpha, beta, etc), we use the latest compiler at the time of release.
38*fa44fe6aSInna Palant
39*fa44fe6aSInna Palant> :warning: **Ensure you are using the Accompanist version that matches with your Compose UI version**: If you upgrade Accompanist, it will upgrade your Compose libraries version via transitive dependencies.
40*fa44fe6aSInna Palant
41*fa44fe6aSInna Palant## Libraries
42*fa44fe6aSInna Palant
43*fa44fe6aSInna Palant### �� [Permissions](./permissions/)
44*fa44fe6aSInna PalantA library that provides [Android runtime permissions][runtimepermissions] support for Jetpack Compose.
45*fa44fe6aSInna Palant
46*fa44fe6aSInna Palant### ����️ [Navigation-Material](./navigation-material/)
47*fa44fe6aSInna PalantA library which provides [Compose Material](https://developer.android.com/jetpack/androidx/releases/compose-material) support, such as modal bottom sheets, for Jetpack Navigation Compose.
48*fa44fe6aSInna Palant
49*fa44fe6aSInna Palant### ��️ [Drawable Painter](./drawablepainter/)
50*fa44fe6aSInna PalantA library which provides a way to use Android Drawables as Jetpack Compose Painters.
51*fa44fe6aSInna Palant
52*fa44fe6aSInna Palant### �� [Adaptive](./adaptive/)
53*fa44fe6aSInna PalantA library providing a collection of utilities for adaptive layouts.
54*fa44fe6aSInna Palant
55*fa44fe6aSInna Palant### �� [Test Harness](./testharness/)
56*fa44fe6aSInna PalantUtilities for testing Compose layouts.
57*fa44fe6aSInna Palant
58*fa44fe6aSInna Palant### ⬇️ [Swipe to Refresh](./swiperefresh/) (Deprecated)
59*fa44fe6aSInna PalantSee our [Migration Guide](https://google.github.io/accompanist/swiperefresh/) for migrating to PullRefresh in Compose Material.
60*fa44fe6aSInna Palant
61*fa44fe6aSInna Palant### �� [AppCompat Theme Adapter](./appcompat-theme/) (Deprecated)
62*fa44fe6aSInna PalantSee our [Migration Guide](https://google.github.io/accompanist/appcompat-theme/) for migrating to the new artifact in Accompanist.
63*fa44fe6aSInna Palant
64*fa44fe6aSInna Palant### �� [Pager](./pager/) (Deprecated)
65*fa44fe6aSInna PalantSee our [Migration Guide](https://google.github.io/accompanist/pager/) for migrating to Pager in Compose.
66*fa44fe6aSInna Palant
67*fa44fe6aSInna Palant### �� [Flow Layouts](./flowlayout/) (Deprecated)
68*fa44fe6aSInna PalantSee our [Migration Guide](https://google.github.io/accompanist/flowlayout/) for migrating to FlowLayout in Compose.
69*fa44fe6aSInna Palant
70*fa44fe6aSInna Palant### ��✨[Navigation-Animation](./navigation-animation/) (Deprecated)
71*fa44fe6aSInna PalantSee our [Migration Guide](https://google.github.io/accompanist/navigation-animation/) for migrating to using built in support for animations in Jetpack Navigation Compose.
72*fa44fe6aSInna Palant
73*fa44fe6aSInna Palant### ⏳ [Placeholder](./placeholder/) (Deprecated)
74*fa44fe6aSInna PalantA library that provides easy-to-use modifiers for displaying a placeholder UI while content is loading.
75*fa44fe6aSInna Palant
76*fa44fe6aSInna Palant### �� [System UI Controller](./systemuicontroller/) (Deprecated)
77*fa44fe6aSInna PalantWe recommend migrating to edge to edge. See our [Migration Guide](https://google.github.io/accompanist/systemuicontroller/) for more details.
78*fa44fe6aSInna Palant
79*fa44fe6aSInna Palant### �� [AppCompat Theme Adapter](./themeadapter-appcompat/) (Deprecated)
80*fa44fe6aSInna PalantA library that enables the reuse of [AppCompat][appcompat] XML themes, for theming in Jetpack Compose.
81*fa44fe6aSInna Palant
82*fa44fe6aSInna Palant### �� [Material Theme Adapter](./themeadapter-material/) (Deprecated)
83*fa44fe6aSInna PalantA library that enables the reuse of [MDC-Android][mdc] Material 2 XML themes, for theming in Jetpack Compose.
84*fa44fe6aSInna Palant
85*fa44fe6aSInna Palant### �� [Material 3 Theme Adapter](./themeadapter-material3/) (Deprecated)
86*fa44fe6aSInna PalantA library that enables the reuse of [MDC-Android][mdc] Material 3 XML themes, for theming in Jetpack Compose.
87*fa44fe6aSInna Palant
88*fa44fe6aSInna Palant### �� [Web](./web/) (Deprecated)
89*fa44fe6aSInna PalantA wrapper around WebView for basic WebView support in Jetpack Compose.
90*fa44fe6aSInna Palant
91*fa44fe6aSInna Palant### �� [Insets](./insets/) (Deprecated & Removed)
92*fa44fe6aSInna PalantSee our [Migration Guide](https://google.github.io/accompanist/insets/) for migrating to Insets in Compose.
93*fa44fe6aSInna Palant
94*fa44fe6aSInna Palant---
95*fa44fe6aSInna Palant
96*fa44fe6aSInna Palant## Future?
97*fa44fe6aSInna Palant
98*fa44fe6aSInna PalantAny of the features available in this group of libraries may become obsolete in the future, at which point they will (probably) become deprecated.
99*fa44fe6aSInna Palant
100*fa44fe6aSInna PalantWe will aim to provide a migration path (where possible), to whatever supersedes the functionality.
101*fa44fe6aSInna Palant
102*fa44fe6aSInna Palant## Snapshots
103*fa44fe6aSInna Palant
104*fa44fe6aSInna PalantSnapshots of the current development version of Accompanist are available, which track the latest commit. See [here](docs/using-snapshot-version.md) for more information.
105*fa44fe6aSInna Palant
106*fa44fe6aSInna Palant---
107*fa44fe6aSInna Palant
108*fa44fe6aSInna Palant### Why the name?
109*fa44fe6aSInna Palant
110*fa44fe6aSInna PalantThe library is all about adding some utilities around Compose. Music composing is done by a
111*fa44fe6aSInna Palantcomposer, and since this library is about supporting composition, the supporting role of an [accompanist](https://en.wikipedia.org/wiki/Accompaniment) felt like a good name.
112*fa44fe6aSInna Palant
113*fa44fe6aSInna Palant## Contributions
114*fa44fe6aSInna Palant
115*fa44fe6aSInna PalantPlease contribute! We will gladly review any pull requests.
116*fa44fe6aSInna PalantMake sure to read the [Contributing](CONTRIBUTING.md) page first though.
117*fa44fe6aSInna Palant
118*fa44fe6aSInna Palant## License
119*fa44fe6aSInna Palant
120*fa44fe6aSInna Palant```
121*fa44fe6aSInna PalantCopyright 2020 The Android Open Source Project
122*fa44fe6aSInna Palant
123*fa44fe6aSInna PalantLicensed under the Apache License, Version 2.0 (the "License");
124*fa44fe6aSInna Palantyou may not use this file except in compliance with the License.
125*fa44fe6aSInna PalantYou may obtain a copy of the License at
126*fa44fe6aSInna Palant
127*fa44fe6aSInna Palant    https://www.apache.org/licenses/LICENSE-2.0
128*fa44fe6aSInna Palant
129*fa44fe6aSInna PalantUnless required by applicable law or agreed to in writing, software
130*fa44fe6aSInna Palantdistributed under the License is distributed on an "AS IS" BASIS,
131*fa44fe6aSInna PalantWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
132*fa44fe6aSInna PalantSee the License for the specific language governing permissions and
133*fa44fe6aSInna Palantlimitations under the License.
134*fa44fe6aSInna Palant```
135*fa44fe6aSInna Palant
136*fa44fe6aSInna Palant[appcompat]: https://developer.android.com/jetpack/androidx/releases/appcompat
137*fa44fe6aSInna Palant[compose]: https://developer.android.com/jetpack/compose
138*fa44fe6aSInna Palant[snap]: https://oss.sonatype.org/content/repositories/snapshots/com/google/accompanist/
139*fa44fe6aSInna Palant[mdc]: https://github.com/material-components/material-components-android
140*fa44fe6aSInna Palant[windowinsets]: https://developer.android.com/reference/kotlin/android/view/WindowInsets
141*fa44fe6aSInna Palant[viewpager]: https://developer.android.com/reference/kotlin/androidx/viewpager/widget/ViewPager
142*fa44fe6aSInna Palant[runtimepermissions]: https://developer.android.com/guide/topics/permissions/overview
143