Jetpack Compose ile Animasyonlu Mesaj Oluşturma

Bahadireray
2 min readAug 19, 2024

--

Jetpack Compose, Android uygulama geliştirmeyi daha eğlenceli ve verimli hale getiren bir UI toolkit’tir. Bu makalede, Jetpack Compose kullanarak bir butona tıkladığınızda animasyonlu bir mesaj oluşturmayı göstereceğim. Mesaj, kullanıcıya ek bilgi sağlayan küçük bir bilgi balonu olarak çalışır. Animasyonlar ise bu bilgi balonunun görünümünü ve kaybolmasını daha etkileyici hale getirir.

1. Proje Yapılandırması

Öncelikle, Jetpack Compose ile çalışmak için gerekli bağımlılıkları build.gradle dosyanıza eklemeniz gerekiyor:

dependencies {
implementation "androidx.compose.ui:ui:1.5.0"
implementation "androidx.compose.animation:animation:1.5.0"
implementation "androidx.compose.material:material:1.5.0"
}

Bu bağımlılıklar, Compose UI bileşenleri ve animasyonlar için gereklidir.

2. Basit Bir Mesaj Örneği

Şimdi, bir butona tıkladığınızda animasyonlu bir mesaj gösteren bir örnek yapalım. Bu örnekte, mesaj’in görünürlüğünü ve animasyonunu AnimatedVisibility bileşeni ile kontrol edeceğiz.

@Composable
fun MyApp() {
MaterialTheme {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
MessageExample()
}
}
}

@Composable
fun MessageExample() {
var messageisible by remember { mutableStateOf(false) }

Column(
modifier = Modifier
.fillMaxSize()
.padding(16.dp),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
Button(onClick = { messageisible = !messageisible }) {
Text(text = "Butona Tıkla")
}

Spacer(modifier = Modifier.height(16.dp))

AnimatedVisibility(
visible = messageisible,
enter = expandVertically(
expandFrom = Alignment.Top,
animationSpec = tween(durationMillis = 300)
) + fadeIn(
animationSpec = tween(durationMillis = 300)
),
exit = shrinkVertically(
shrinkTowards = Alignment.Top,
animationSpec = tween(durationMillis = 300)
) + fadeOut(
animationSpec = tween(durationMillis = 300)
)
) {
Box(
modifier = Modifier
.padding(top = 8.dp)
.background(Color.Gray, RoundedCornerShape(4.dp))
.padding(8.dp)
) {
Text(
text = "Bu bir animasyon mesajıdır!",
color = Color.White,
fontSize = 14.sp
)
}
}
}
}

3. Kod Açıklaması

  • AnimatedVisibility: Bu bileşen, bir öğenin görünürlüğünü animasyonlu bir şekilde değiştirmeye olanak tanır. visible parametresi, öğenin görünür olup olmadığını kontrol eder.
  • expandVertically ve shrinkVertically: Bu animasyonlar, mesajın yukarıdan aşağıya doğru genişlemesini ve daralmasını sağlar.
  • fadeIn ve fadeOut: Mesajın görünürken ve kaybolurken opaklığını animasyonlu olarak değiştirir.
  • Box: Mesajın stilini belirlemek için kullanılır; arka plan rengi, yuvarlak köşeler ve iç padding ekleriz.

4. Sonuç

Bu makalede, Jetpack Compose kullanarak butona tıklama ile animasyonlu bir mesaj oluşturduk. Mesajın açılma ve kapanma animasyonları, öğenin yukarıdan aşağıya doğru genişlemesini ve daralmasını sağlar. Bu örneği kendi uygulamanızda özelleştirerek farklı animasyonlar ve stiller deneyebilirsiniz.

Jetpack Compose ile animasyonlu UI bileşenleri oluşturmak, kullanıcı deneyimini daha çekici ve dinamik hale getirebilir. Bu tür özellikler, uygulamanızın görsel çekiciliğini artırmak için oldukça etkili olabilir.

--

--