TUGAS 3 PPB - KEYSA ANADEA 5025211028

TUGAS 3 PPB

Deskripsi Proyek: Happy Birthday App 

Nama: Keysa Anadea Aqiva Ajie

NRP: 5025211028

Kelas: PPB A

Nama Proyek

Happy Birthday App

Fitur Aplikasi

1. Tampilan Ucapan Ulang Tahun

Aplikasi ini menampilkan pesan ulang tahun dengan teks yang besar dan jelas di tengah layar.
- Pesan utama: "Happy Birthday Keysa!"
- Pengirim ucapan: "From Daffa"
- Teks dirancang dengan ukuran font yang berbeda untuk kesan estetis

2. Implementasi Jetpack Compose

Aplikasi ini menggunakan Jetpack Compose untuk membangun UI dengan kode yang lebih sederhana dan deklaratif.
- Menggunakan fungsi Composable untuk membuat tampilan teks.
- Menggunakan Material 3 Theme untuk mengikuti desain modern Android.

Alur Kerja Aplikasi

  1. Saat aplikasi dibuka, MainActivity.kt akan dijalankan.
  2. setContent { HappyBirthdayTheme { ... } } akan menerapkan tema dari Theme.kt.
  3. Fungsi GreetingText() akan menampilkan teks "Happy Birthday Keysa!" dengan pengirim "From Daffa".
  4. UI ditampilkan dengan Jetpack Compose, menggunakan tata letak Column untuk menyusun teks secara vertikal di tengah layar.

Tujuan & Manfaat

1. Mendemonstrasikan Jetpack Compose dalam pembuatan aplikasi Android sederhana.
2. Menggunakan Material 3 untuk desain modern & responsif.
3. Dapat dikembangkan lebih lanjut, misalnya dengan menambahkan fitur seperti:

  • Input nama untuk membuat ucapan yang dinamis.
  • Gambar latar belakang atau animasi untuk memperindah tampilan.

HASIL KODE:



KODE:

MainActivity.kt

package com.example.happybirthday

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.example.happybirthday.ui.theme.HappyBirthdayTheme

class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
HappyBirthdayTheme {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
GreetingText(
message = "Happy Birthday Keysa!",
from = "From Daffa"
)
}
}
}
}
}

@Composable
fun GreetingText(message: String, from: String, modifier: Modifier = Modifier) {
Column(
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.fillMaxSize()
) {
Text(text = message, fontSize = 36.sp)
Spacer(modifier = Modifier.height(16.dp))
Text(text = from, fontSize = 24.sp)
}
}

@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
HappyBirthdayTheme {
GreetingText(message = "Happy Birthday Keysa!", from = "From Daffa")
}
}

Theme.kt

package com.example.happybirthday.ui.theme

import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.material3.*
import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.LocalContext
import android.os.Build

private val DarkColorScheme = darkColorScheme(
primary = Purple80,
secondary = PurpleGrey80,
tertiary = Pink80
)

private val LightColorScheme = lightColorScheme(
primary = Purple40,
secondary = PurpleGrey40,
tertiary = Pink40
)

@Composable
fun HappyBirthdayTheme(
darkTheme: Boolean = isSystemInDarkTheme(),
dynamicColor: Boolean = true,
content: @Composable () -> Unit
) {
val colorScheme = when {
dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> {
val context = LocalContext.current
if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context)
}
darkTheme -> DarkColorScheme
else -> LightColorScheme
}

MaterialTheme(
colorScheme = colorScheme,
typography = Typography,
content = content
)
}

Color.kt

package com.example.happybirthday.ui.theme

import androidx.compose.ui.graphics.Color

val Purple80 = Color(0xFFD0BCFF)
val PurpleGrey80 = Color(0xFFCCC2DC)
val Pink80 = Color(0xFFEFB8C8)

val Purple40 = Color(0xFF6650a4)
val PurpleGrey40 = Color(0xFF625b71)
val Pink40 = Color(0xFF7D5260)

Komentar

Postingan populer dari blog ini

TUGAS 7 PPB - KEYSA ANADEA 5025211028

TUGAS 2 PPB - KEYSA ANADEA 5025211028