blob: 83c8eb52558a2d3941d1c0156f83ef184f88a184 [file] [log] [blame] [view]
Louis Pullen-Freilich4e59c692020-10-26 18:03:32 +00001# Compose Readme
2
3Jetpack Compose makes it easy to write and manage an application's frontend by providing a declarative API that allows users to update their Android application UI without imperatively mutating frontend views.
4
5A Compose application is comprised of `@Composable` functions, which are functions that transform application data into a UI hierarchy. When the underlying data changes, the Composable functions can be re-invoked to generate an updated UI hierarchy.
6
7```
Louis Pullen-Freilich051800b2020-10-30 19:26:32 +00008import androidx.compose.material.*
Louis Pullen-Freilich4e59c692020-10-26 18:03:32 +00009import androidx.compose.runtime.*
Louis Pullen-Freilich4e59c692020-10-26 18:03:32 +000010
11@Composable
12fun Greeting(name: String) {
13 Text(text = "Hello $name!")
14}
15```
16
17Compose functions should be side-effect free, and should only read data that was explicitly passed into the composable function from the caller (eg. do not read from globals).
18
19Compose is still experimental and should not be used in a production application. Furthermore, Compose requires enabling the new/experimental IR (Intermediate Representation) backend to the Kotlin compiler, so you will likely encounter language bugs related to the new backend.
20
21The compose compiler plugin makes use of some experimental extension points to the Kotlin compiler. In particular, an extension point that allows us to intercept the invocation of composable functions. You may also see some references to an XML-like syntax (known internally as KTX) which is our old syntax from before the method interception was a thing. We are transitioning from the KTX syntax to using a Kotlin DSL based on intercepted function calls.
22
23## Feedback
24To provide feedback or report bugs, please refer to the main AndroidX contribution guide and report your bugs [here](https://issuetracker.google.com/issues/new?component=610764)
25
26