Naufal Khairul Rizky - 5025221127
Birthday Card
Aplikasi ini merupakan aplikasi Android berbasis Jetpack Compose yang menampilkan kartu ucapan ulang tahun dengan teks yang telah ditentukan.
1. MainActivity
MainActivity
adalah entry point aplikasi yang menggunakan setContent {}
untuk menampilkan antarmuka dengan tema HappyBirthdayTheme. Komponen utama BirthdayCard
menampilkan pesan dan pengirim, ditempatkan dalam Surface.
2. BirthdayCard (Composable Function)
BirthdayCard
adalah fungsi Composable yang menampilkan kartu ucapan dengan tata letak berikut:
- Box sebagai kontainer utama dengan latar belakang gradasi gelap.
- Column menyusun elemen secara vertikal.
- Text pertama berisi pesan ulang tahun (48sp, bold, font Serif).
- Divider sebagai garis pemisah.
- Text kedua menampilkan nama pengirim (22sp, font SansSerif) dengan tampilan lebih ringan.
3. BirthdayCardPreview (Preview Mode)
Digunakan untuk menampilkan pratinjau kartu di Android Studio, mempermudah pengembangan tanpa menjalankan aplikasi.
Source code:
package com.example.happybirthday
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.*
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.shadow
import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
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 = Color(0xFF0D1117)
) {
BirthdayCard(
message = "Happy Birthday Arthur!",
from = "— Micah"
)
}
}
}
}
}
@Composable
fun BirthdayCard(message: String, from: String) {
Box(
modifier = Modifier
.fillMaxSize()
.background(
brush = Brush.verticalGradient(
colors = listOf(Color(0xFF0D1117), Color(0xFF161B22))
)
),
contentAlignment = Alignment.Center
) {
Column(
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier
.padding(24.dp)
.shadow(15.dp, RoundedCornerShape(25.dp))
.background(
brush = Brush.linearGradient(
colors = listOf(Color(0xFF1E3A8A), Color(0xFF0F172A))
),
shape = RoundedCornerShape(25.dp)
)
.padding(32.dp)
) {
Text(
text = message,
fontSize = 48.sp,
lineHeight = 58.sp,
textAlign = TextAlign.Center,
fontFamily = FontFamily.Serif,
fontWeight = FontWeight.Bold,
color = Color(0xFFDBEAFE),
modifier = Modifier.padding(bottom = 16.dp)
)
Divider(color = Color(0xFF60A5FA), thickness = 1.dp, modifier = Modifier.padding(vertical = 8.dp))
Text(
text = from,
fontSize = 22.sp,
textAlign = TextAlign.Center,
fontFamily = FontFamily.SansSerif,
fontWeight = FontWeight.Light,
color = Color(0xFF93C5FD),
modifier = Modifier.padding(top = 8.dp)
)
}
}
}
@Preview(showBackground = true)
@Composable
fun BirthdayCardPreview() {
HappyBirthdayTheme {
BirthdayCard(message = "Happy Birthday Arthur!", from = "— Micah")
}
}
Komentar
Posting Komentar