Creating an App with Jetpack Compose
- 2024/9/30
- ブログ
- 2024, Androidアプリ, app, ブログ
- Creating an App with Jetpack Compose はコメントを受け付けていません
Android app development has evolved significantly over the years. With Kotlin as an official language and the introduction of Jetpack Compose, building modern Android applications has become easier and more efficient. Let’s look at how to create an Android app using these technologies.
この記事の目次
What is Jetpack Compose?
Jetpack Compose is a modern UI toolkit for building native Android applications. It uses a declarative approach to define user interfaces, simplifying and accelerating UI development. Unlike the traditional View-based system, Compose allows developers to describe their UI as a function of the application state. This might sound complex, but as you keep learning you’ll realize that it’s a big benefit that simplifies everything massively.
Key features of Jetpack Compose include:
1. Declarative UI
2. Composable functions
3. Built-in state management
4. Interoperability with existing View-based UIs
5. Material Design support
Setting Up Your Project
To get started with Jetpack Compose, create a new Android project in Android Studio, choosing the “Empty Compose Activity” template. Ensure you’re using the latest version of Android Studio, as Compose requires specific versions of the IDE and Gradle plugin.
Once your project is set up, you’ll notice that the build.gradle
file for your app module includes the necessary dependencies for Jetpack Compose. Here’s a simplified version of what you might see:
android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion compose_version } } dependencies { implementation "androidx.compose.ui:ui:$compose_version" implementation "androidx.compose.material:material:$compose_version" implementation "androidx.compose.ui:ui-tooling-preview:$compose_version" implementation 'androidx.activity:activity-compose:1.4.0' // Other dependencies... }
This configuration sets up your project to use Jetpack Compose and includes the necessary dependencies.
Creating Your First Composable
Let’s start by creating a simple UI component using Jetpack Compose. We’ll make a greeting card that displays a name and a message.
@Composable fun GreetingCard(name: String) { Card( modifier = Modifier.padding(16.dp), elevation = 4.dp ) { Column(modifier = Modifier.padding(16.dp)) { Text( text = "Hello,", style = MaterialTheme.typography.h5 ) Text( text = name, style = MaterialTheme.typography.h4 ) } } }
In this piece of code:
– We define a GreetingCard
composable function that takes a name
parameter.
– We use Compose’s built-in Card
, Column
, and Text
composables to structure our UI.
– The Modifier
is used to add padding and elevation to our components.
To use this composable in your app, you would typically call it from your MainActivity
:
class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { MyAppTheme { Surface(color = MaterialTheme.colors.background) { GreetingCard(name = "Android Developer") } } } } }
This sets the content of the activity using the setContent
function, which is specific to Compose.
Adding State and Interactivity
Now, let’s make our app more interactive by adding a button that changes the greeting message. We’ll use Compose’s state management to handle this interaction.
@Composable fun InteractiveGreeting() { var name by remember { mutableStateOf("Android Developer") } var greetingCount by remember { mutableStateOf(0) } Column( modifier = Modifier.padding(16.dp), horizontalAlignment = Alignment.CenterHorizontally ) { GreetingCard(name = name) Spacer(modifier = Modifier.height(16.dp)) Button(onClick = { greetingCount++ name = "Developer #$greetingCount" }) { Text("Change Greeting") } } }
In this updated version:
1. We create mutable state variables for name
and greetingCount
using remember
and mutableStateOf
.
2. We add a Button
composable that updates the state when clicked.
3. The GreetingCard
is automatically updated whenever the name
state changes, demonstrating Compose’s reactive nature.
This example showcases how easy it is to manage state and create interactive UIs with Jetpack Compose. The declarative nature of Compose allows us to describe what our UI should look like for a given state, and the framework takes care of updating the UI when the state changes.
Conclusion
We looked at the basics of creating an Android app using Kotlin and Jetpack Compose. We saw how Compose simplifies UI development with its declarative approach and built-in components, and we created a simple interactive UI with state management, showing the power and simplicity of Compose.
As you continue to learn Compose, you’ll discover many more features such as lists, animations, and custom layouts. Remember to integrate Compose with other Jetpack libraries and as you build more complex apps.
カテゴリー: